Если ТекСтрокаПереченьНоменклатуры.Номенклатура
ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
КонецЕсли;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
Добавленный текст исключает выполнение операторов цикла для тех строк табличной части документа, в которых номенклатура не является материалом. Поясним это условие.
В переменной ТекСтрокаПереченьНоменклатуры содержатся на каждом шаге цикла данные текущей строки табличной части ПереченьНоменклатуры.
Указывая через точку имя колонки Номенклатура (ТекСтрокаПереченьНоменклатуры.Номенклатура), мы обращаемся к ссылке на элемент номенклатуры, которая содержится в этой строке табличной части.
Затем, указывая через точку ВидНоменклатуры (ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры), мы обращаемся к реквизиту ВидНоменклатуры этого элемента справочника Номенклатура.
Полученное значение с помощью оператора сравнения (=) мы сравниваем со значением Материал перечисления ВидНоменклатуры (Перечисления.ВидыНоменклатуры.Материал).
Если значения совпадают, операторы цикла выполняются. Если нет, мы переходим к следующей итерации цикла, к следующей строке табличной части.
В режиме 1С:Предприятие
Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа Оказание услуги.
Откроем список документов, выполнив команду Оказание услуг в панели навигации раздела Оказание услуг.
Откроем документ Оказание услуги № 1 и внесем в него следующие изменения:
■ удалим из табличной части строку, содержащую Транзистор Philips;
■ добавим услугу - Подключение воды;
■ добавим материал - Шланг резиновый (рис. 4).
Рис. 4 Измененный документ «Оказание услуги №1»
Обратите внимание, что цены подставляются автоматически из регистра сведений Цены.
Нажмем кнопку Провести в командной панели формы документа.
Затем выполним команду Остатки материалов в панели навигации формы, чтобы перейти к записям регистра Остатки материалов, связанным с данным документом (рис. 5).
Рис. 5. Записи регистра «Остатки материалов»
Как мы видим, в движения по регистру Остатки материалов включаются только строки, содержащие материалы. Запись про услугу Подключение воды в движения не попала.
Контрольные вопросы
1. Для чего предназначен объект конфигурации Перечисление. Как создать новое перечисление.
2. Как с помощью перечисления задать принадлежность элементов справочника к той или иной смысловой группе.
3. Как обратиться к значению перечисления средствами встроенного языка.