21.8. Изменение процедуры проведения документа ОказаниеУслуги

Когда создавались движения документа «ОказаниеУслуги» по регистру накопления «ОстаткиМатериалов», мы сказали, что они не совсем правильные, поскольку в регистр будут попадать не только записи об израсходованных материалах, но и записи об оказанных услугах.

Теперь доработаем документ таким образом, чтобы в регистре появлялись только записи, относящиеся к расходу материалов. Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре «ОстаткиМатериалов».

136. Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги. Для этого в обработчик события «ОбработкаПроведения», расположенный в модуле документа «ОказаниеУслуги», добавим следующий текст (добавленный текст выделен жирным шрифтом): в окне Конфигуратора выберите на дереве объект Документы, выберите ОказаниеУслуги, МП, выберите Открыть Модуль объекта, добавьте строки кода

Пример 21.3.

Для Каждого ТекСтрокаПереченьНоменклатуры Из
ПереченьНоменклатуры Цикл
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры<>
Перечисления.ВидыНоменклатуры.Материал тогда Продолжить; 
КонецЕсли;
// регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченъНоменклатуры.Номенклатура;
Движение.Склад = Склад:
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;


Добавленный текст исключает из выполнения операторов цикла те строки документа, в которых номенклатура не является материалом. К значению перечисления «Материал» мы обращаемся используя менеджер перечисления «ВидыНоменклатуры» (Перечисления.ВидыНоменклатуры), указывая в качестве его свойства имя нужного нам значения перечисления.

137 . Выберите Отладка | Начать отладку, на появившийся вопрос: редактируемая конфигурация отличается от конфигурации базы данных. Обновить конфигурацию базы данных? выберите Да, в окне Реорганизация информации выберите Принять.

138. Откроем документ Оказание услуги №1 и внесем в него следующие изменения: введите один материал и одну услугу, измените время документа.

139. Перед тем, как провести документ, откроем список регистра ОстаткиМатериалов, содержащий движения этого документа. Для этого выполним команду Перейти | Остатки материалов из командной панели документа.

140. Проведем документ и убедимся, что в движения по регистру ОстаткиМатериалов включаются только строки, содержащие материалы

Рисунок 21.10. Документ ОказаниеУслуги

Документ ОказаниеУслуги

Рисунок 21.11. Движения по регистру ОстаткиМатериала

Движения по регистру ОстаткиМатериала