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