Как правильнее выполнить настройку документа, что бы он не записался?

1. user1194102 06.03.20 14:21 Сейчас в теме
Мне нужно, при определенном условии, что бы документ и не записывался, не сохранился и не проводился. Данное условия я могу поставить в любой процедуре документа. (Если дата реквизита не заполнена или меньше даты другого определенного объекта). Каким образом и где правильнее поставить данный запрет? Если бы нужно было сохранить документ, но не проводить, то в процедуре проведения можно было бы написать простой код.

Отказ=истина;
Но что бы документ даже не записался и не сохранился, наверно этого будет недостаточно?

Может быть в событии
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

поставить этот код
Отказ=истина;


и тогда документ и не запишется и не проведется?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 06.03.20 14:23 Сейчас в теме
В ПередЗаписью() в модуле объекта
user1194102; +1 Ответить
3. AlexandrSmith 69 07.03.20 07:16 Сейчас в теме
https://its.1c.ru/db/v8std#content:686:hdoc
Думаю эта статья однозначно поможет
Работа с параметром «Отказ» в обработчиках событий
1. В обработчиках событий модулей объектов, наборов записей, форм и т.п., содержащих параметр Отказ (ПриЗаписи, ОбработкаПроверкиЗаполнения, ТоварыПередНачаломДобавления и т.п.), не следует присваивать этому параметру значение Ложь.
Это требование обусловлено тем, что, как правило, в коде обработчиков событий параметр Отказ может устанавливаться сразу в нескольких последовательных проверках (или в нескольких подписках на одно и то же событие). В таком случае к моменту выполнения очередной проверки параметр Отказ уже может заранее содержать значение Истина, и можно ошибочно сбросить его обратно в Ложь.
Кроме того, при доработках конфигурации на внедрении число этих проверок может увеличиться.
4. AlexandrSmith 69 07.03.20 07:33 Сейчас в теме
К ответу номер 2 необходимо добавить, что ПередЗаписью и в модуле формы и в модуле объекта объект не создастся. Но самое важное, что бы у вас объект не прошел все стадии проверок и записей движений, и не собрал кучу ошибок попутно, необходима следующая конструкция.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       ......
       Если ошибка тогда
               Отказ=истина;
               Возврат; // очень важно, некоторые разработчики забывают о возврате из процедуры и дальше выполняется ненужный код
       КонецЕлси;
       ......

КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот