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