ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Сначала в режиме Конфигуратор изменим процедуру проведения документа так, чтобы в регистр попадали записи только о той номенклатуре, которая является материалом, а потом в режиме 1С:Предприятие заново проведем (перепроведем) все документы Оказание услуги, чтобы данные в регистре изменились в соответствии с новым алгоритмом проведения документа.
Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре ОстаткиМатериалов.
Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги.
Для этого откроем в конфигураторе модуль документа ОказаниеУспуги (контекстное меню документа - Открыть модуль объекта) и добавим в обработчик события ОбработкаПроведения это условие.
Текст следует добавить в начало цикла обхода табличной части документа после строки Для КаждогоТекСтрокаПереченьНоменклатурыИз ПереченьНоменклатурыЦикл.
В результате процедура ОбработкаПроведения должна выглядеть следующим образом:
Листинг 10.1. Скорректируем движения документа
Добавленный текст исключает выполнение операторов цикла для тех строк табличной части документа, в которых номенклатура не является материалом.
Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа Оказание услуги.
Откроем список документов, выполнив команду Оказание услуг в панели навигации раздела Оказание услуг.
Откроем документ Оказание услуги № 1 и внесем в него изменения:
- удалим из табличной части строку какого-нибудь материала;
- добавим новую услугу;
- добавим материал для этой услуги.
Обратите внимание, что цены подставляются автоматически из регистра сведений Цены.
Нажмем кнопку Провести в командной панели формы документа.
Затем выполним команду Остатки материалов в панели навигации формы, чтобы перейти к записям регистра Остатки материалов, связанным с данным документом.
Как мы видим, в движения по регистру Остатки материалов включаются только строки, содержащие материалы. Запись про новую услугу в движения не попала.