Как правильнее выполнить настройку документа, что бы он не записался?
Мне нужно, при определенном условии, что бы документ и не записывался, не сохранился и не проводился. Данное условия я могу поставить в любой процедуре документа. (Если дата реквизита не заполнена или меньше даты другого определенного объекта). Каким образом и где правильнее поставить данный запрет? Если бы нужно было сохранить документ, но не проводить, то в процедуре проведения можно было бы написать простой код.
Но что бы документ даже не записался и не сохранился, наверно этого будет недостаточно?
Может быть в событии
поставить этот код
и тогда документ и не запишется и не проведется?
Отказ=истина;
Может быть в событии
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
поставить этот код
Отказ=истина;
и тогда документ и не запишется и не проведется?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Думаю эта статья однозначно поможет
Работа с параметром «Отказ» в обработчиках событий
1. В обработчиках событий модулей объектов, наборов записей, форм и т.п., содержащих параметр Отказ (ПриЗаписи, ОбработкаПроверкиЗаполнения, ТоварыПередНачаломДобавления и т.п.), не следует присваивать этому параметру значение Ложь.
Это требование обусловлено тем, что, как правило, в коде обработчиков событий параметр Отказ может устанавливаться сразу в нескольких последовательных проверках (или в нескольких подписках на одно и то же событие). В таком случае к моменту выполнения очередной проверки параметр Отказ уже может заранее содержать значение Истина, и можно ошибочно сбросить его обратно в Ложь.
Кроме того, при доработках конфигурации на внедрении число этих проверок может увеличиться.
Это требование обусловлено тем, что, как правило, в коде обработчиков событий параметр Отказ может устанавливаться сразу в нескольких последовательных проверках (или в нескольких подписках на одно и то же событие). В таком случае к моменту выполнения очередной проверки параметр Отказ уже может заранее содержать значение Истина, и можно ошибочно сбросить его обратно в Ложь.
Кроме того, при доработках конфигурации на внедрении число этих проверок может увеличиться.
К ответу номер 2 необходимо добавить, что ПередЗаписью и в модуле формы и в модуле объекта объект не создастся. Но самое важное, что бы у вас объект не прошел все стадии проверок и записей движений, и не собрал кучу ошибок попутно, необходима следующая конструкция.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
......
Если ошибка тогда
Отказ=истина;
Возврат; // очень важно, некоторые разработчики забывают о возврате из процедуры и дальше выполняется ненужный код
КонецЕлси;
......
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот