Код-ревью Middle Платформа и объекты конфигурации обновлено
Ревью кода удаления
Вопрос
Обработка чистит ненужную номенклатуру. Найдите проблемы.
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Наименование = "" Тогда
Объект = Выборка.ПолучитьОбъект();
Объект.Удалить();
КонецЕсли;
КонецЦикла;
Коротко
Безопасная схема: запрос отбирает кандидатов, ставится пометка удаления, затем стандартная обработка удаления помеченных проверяет ссылки. Прямой Удалить() оправдан только для данных, на которые гарантированно никто не ссылается.
Что должен найти ревьюер
- Производительностьстрока 1Выборка всего справочника с проверкой в коде: отбор пустых наименований нужно сделать запросом.
- Ошибкастрока 3Пустое наименование не значит «ненужная»: на элемент могут ссылаться документы.
- Ошибкастрока 5Непосредственное удаление без контроля ссылочной целостности оставит битые ссылки в документах и регистрах. Обычно ставят пометку удаления, а удаляют через «Удаление помеченных объектов» с проверкой ссылок.
Разбор
Безопасная схема: запрос отбирает кандидатов, ставится пометка удаления, затем стандартная обработка удаления помеченных проверяет ссылки. Прямой Удалить() оправдан только для данных, на которые гарантированно никто не ссылается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Платформа и объекты конфигурации»
- Индексы массива
- Перечисление
- Справочник, документ, регистр
- Изменение элемента справочника
- Иерархия справочника
- Объект для задачи
- Модули конфигурации
- Null и Неопределено