v8-code-style icon indicating copy to clipboard operation
v8-code-style copied to clipboard

Проверка Отсутствует обязательная проверка признака ОбменДанными.Загрузка в обработчике события "ПередЗаписью" работает не всегда корректно.

Open DmitryShvaika opened this issue 3 years ago • 2 comments

Проверка Отсутствует обязательная проверка признака ОбменДанными.Загрузка в обработчике события "ПередЗаписью" (аналогично и другие события "ПриЗаписи", и т.п....) работает не всегда корректно.

Следующий код Перед записью будет признан ошибочным:


Процедура ПередЗаписью()
	
	Если Не ОбменДанными.Загрузка Тогда
		ОбработчикПередЗаписью();
	КонецЕсли;
	
КонецПроцедуры

Если в обработчике используется ОбменДанными.Загрузка в любом из условий Если, считать, что проверка пройдена и ошибку не выдавать.

image

  • OS: Windows
  • Версия 1C:Code-Style-V8 0.1.0.119
  • Версия 1C:EDT Ruby 2021.2.5

DmitryShvaika avatar Sep 23 '21 17:09 DmitryShvaika

Я бы сказал, что код в таком стиле - это спагетти код (это же не нужно доказывать, что это плохой код?). Неплохо бы еще понимать зачем такой код писать?

Такой вот код - это тоже спагетти код - и тоже плохой паттерн. Хоть и проверка будет формально проходить.

Процедура ПередЗаписью()

   Если ОбменДанными.Загрузка Тогда
	Возврат;
   КонецЕсли;

   ОбработчикПередЗаписью();
КонецПроцедуры

marmyshev avatar Sep 23 '21 18:09 marmyshev

Согласен, ни один из вариантов не отличается красотой. Возвраты то же не нравятся. Помещать код обработки в такое условие - совсем плохой вариант. С чем-то приходится мириться.

DmitryShvaika avatar Sep 24 '21 14:09 DmitryShvaika