644 документа
← К списку

В режиме "Конфигуратор"

страница

В режиме «Конфигуратор»

Откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги.

Перейдем на закладку Движения и в списке регистров конфигурации отметим регистр накопления ОстаткиМатериалов.

Нажмем кнопку Конструктор движений.

В открывшемся окне конструктора изменим тип движения регистра на Расход, так как документ ОказаниеУслуги должен расходовать материалы. Пиктограмма слева от названия регистра изменится на знак —. В поле выбора Табличная часть выберем табличную часть нашего документа — ПереченьНоменклатуры.

Список реквизитов документа, который уже заполнен реквизитами шапки документа, автоматически дополнится реквизитами нашей табличной части.

Теперь нажмем кнопку Заполнить выражения.

В нижнем окне сформируется соответствие полей (измерений и ресурсов) регистра и выражений для их расчета. Однако при автоматическом заполнении поле Материал не заполнится.

Так происходит потому, что имя поля табличной части Номенклатура не совпадает с именем измерения регистра — Материал. Если мы оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра — расход номенклатура фиксироваться не будет.

Чтобы избежать этого, нужно выделить поле регистра Материал и в окне Реквизиты документа дважды щелкнуть по строке ТекСтрокаПереченьНоменклатуры.Номенклатура.

Таким образом, номенклатура для движений регистра накопления будет выбираться из табличной части документа (рис. 6.18).

Рис. 6.18. Выбор табличной части документа и заполнение выражений для расчета движений регистра

Нажмем кнопку OK.

Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ ОказаниеУслуги и поместил его в модуль объекта (листинг 6.2).

Листинг 6.2. Процедура «ОбработкаПроведения()»

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора внесенные вручную

// изменения будут утеряны!!!

 

// регистр ОстаткиМатериалов Расход

Движения.ОстаткиМатериалов.Записывать = Истина;

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл

Движение = Движения.ОстаткиМатериалов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;

КонецЦикла;

 

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

Обратите внимание, что строка Движение.ВидДвижения = ВидДвиженияНакопления.Расход определяет вид движения регистра накопления, производимый этим документом как Расход, а в остальном процедура обработчика ОбработкаПроведения документа ОказаниеУслуги идентична обработчику документа ПриходнаяНакладная (см. листинг 6.1), подробно разобранному нами ранее.

В заключение отредактируем командный интерфейс формы документа, чтобы в панели навигации формы иметь возможность переходить к списку записей регистра Остатки Материалов, связанному с документом.

Для этого откроем форму документа ОказаниеУслуги. В левом верхнем окне перейдем на закладку Командный интерфейс.

В разделе Панель навигации раскроем группу Перейти и установим видимость для команды открытия регистра накопления Остатки материалов.