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