Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 11:47
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Остановка выполнения при невыполнении условия  (Прочитано 5267 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн serkus

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-14
  • Сайт: 
  • Профессия: Ученик 1С
Как остановить выполнение заполнения документа если в его ячейках не выполняется условие? То есть есть такая проблема: операторы (кто попало) заносят документы в базу данных 1С 7.7; Подскажите, как остановить ввод данных до исправления ошибки? (до проведения документа). Какую функцию или оператор нужно вставить в модуль проведения документа?

Пример:

Процедура ОбработкаПроведения()
   
   Спр=СоздатьОбъект("Справочник.Пацієнти");
   Спр.НайтиПоКоду(Пацієнт.Код);
   Если Спр.Выбран()=1 Тогда
      _сума=Спр.СВЛфакт+Сума;
      _квр=Спр.КРвідпущених+КілВідРец;
      Если Спр.КРвідпущених<_квр   тогда 
         сообщить ("Количество выданных рецептов превышает превышает выписанные.");
      // ..... что сюда вставить, чтобы работа продолжилась после выполнения условия?
      КонецЕсли;   
      Спр.СВЛфакт=_сума;
      Спр.КРвідпущених=_квр;
      Спр.Записать();
   КонецЕсли;
   
КонецПроцедуры




Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
СтатусВозврата(0);

Ну а, если честно, то не совсем понятно что вам нужно.


Оффлайн serkus

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-14
  • Сайт: 
  • Профессия: Ученик 1С
чтобы при вводе данных оператор мог сразу исправить ошибку и она не перенеслась в справочник
Добавлено: 29 Авг 2013, 15:45

бывают ситуации, когда справочник загружается из редактированного Екселевского файла, и там врадываются такие ошибки, когда количество отоваренных рецептов превышает количество выписанных.
Прошу прощения, маленькая неточность была:

Процедура ОбработкаПроведения()
   
   Спр=СоздатьОбъект("Справочник.Пацієнти");
   Спр.НайтиПоКоду(Пацієнт.Код);
   Если Спр.Выбран()=1 Тогда
      _сума=Спр.СВЛфакт+Сума;
      _квр=Спр.КРвідпущених+КілВідРец;
      Если Спр.КРвиписаних<_квр   тогда 
         сообщить ("Количество отоваренных рецептов превышает превышает выписанные.");
            // ..... что сюда вставить, чтобы работа продолжилась после выполнения условия?
      КонецЕсли;   
      Спр.СВЛфакт=_сума;
      Спр.КРвідпущених=_квр;
      Спр.Записать();
   КонецЕсли;
   
КонецПроцедуры

Последний раз редактировалось: serkus; 29 Авг 2013, 15:56

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
это не в модуле проведения нужно делать.
При вводе данных следует делать проверку.

Или перед проведением или при записи делать проверку, если все нормально - Провести()/записать, иначе не проводим/не записываем.

Оффлайн serkus

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-14
  • Сайт: 
  • Профессия: Ученик 1С
А не подскажете? я не очень силен в программировании. Хотя бы набросок проверки ...

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
ну проверку вы сами должны написать, я не телепат, и не знаю что именно вам нужно проверять.

Ну а так, достаточно в предопределенную процедуру ПриЗаписи() добавить вашу проверку:

Если ...... (проверка не выполнена) Тогда
 СтатусВозврата(0);
 Возврат;
КонецЕсли;

и тогда у вас документ и не запишется и не проведется.

Оффлайн serkus

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-14
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо буду пробовать. Отпишусь завтра.


Теги: остановка 
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 838
  • Точка Скрытых: 0
  • Точка Пользователей: 12
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal