Код-ревью Middle Платформа и объекты конфигурации обновлено

Ревью кода удаления

Вопрос

Обработка чистит ненужную номенклатуру. Найдите проблемы.

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
	Если Выборка.Наименование = "" Тогда
		Объект = Выборка.ПолучитьОбъект();
		Объект.Удалить();
	КонецЕсли;
КонецЦикла;

Коротко

Безопасная схема: запрос отбирает кандидатов, ставится пометка удаления, затем стандартная обработка удаления помеченных проверяет ссылки. Прямой Удалить() оправдан только для данных, на которые гарантированно никто не ссылается.

Что должен найти ревьюер

  1. Производительностьстрока 1
    Выборка всего справочника с проверкой в коде: отбор пустых наименований нужно сделать запросом.
  2. Ошибкастрока 3
    Пустое наименование не значит «ненужная»: на элемент могут ссылаться документы.
  3. Ошибкастрока 5
    Непосредственное удаление без контроля ссылочной целостности оставит битые ссылки в документах и регистрах. Обычно ставят пометку удаления, а удаляют через «Удаление помеченных объектов» с проверкой ссылок.

Разбор

Безопасная схема: запрос отбирает кандидатов, ставится пометка удаления, затем стандартная обработка удаления помеченных проверяет ссылки. Прямой Удалить() оправдан только для данных, на которые гарантированно никто не ссылается.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.