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