Регистр СтоимостьМатериалов совсем не сложен, поэтому мы не будем подробно останавливаться на его создании.
Расширенное представление списка зададим как Движения по регистру
Стоимость материалов. Этот заголовок будет отображаться в окне списка записей регистра.
На закладке Подсистемы отметим, что этот регистр будет отображаться в подсистемах Бухгалтерия, Учет материалов и Оказание услуг.
В дереве объектов конфигурации выделим ветвь Подсистемы, вызовем ее контекстное меню и выберем пункт Все подсистемы.
В открывшемся окне слева в списке Подсистемы выделим подсистему Бухгалтерия.
Справа в списке Командный интерфейс отразятся все команды выбранной подсистемы.
В группе Панель навигации.Обычное включим видимость у команды Стоимость материалов и мышью перетащим ее в группу Панель навигации.См.также (рис. 11.2).
На закладке Данные создадим для регистра одно измерение – Материал типа СправочникСсылка.Номенклатура и один ресурс – Стоимость типа Число длиной 15 и точностью 2.
После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации следующим образом (рис. 3.1):
Рис. 3.1. Регистр «СтоимостьМатериалов»
Теперь мы можем приступить к внесению изменений в процедуры проведения документов.
Аналогично, выделив подсистемы ОказаниеУслуг и УчетМатериалов, в группе Панель навигации.Обычное включим видимость у команды Стоимость материалов и перенесем ее в группу Панель навигации.См. также.
Теперь мы можем приступить к внесению изменений в процедуры проведения наших документов.
Начнем с самого простого – документа ПриходнаяНакладная.
Изменение процедуры проведения документа «Приходная накладная»
|
Откроем в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдем на закладку Движения. В списке регистров отметим, что документ будет создавать теперь движения и по регистру СтоимостьМатериалов. Запустим конструктор движений и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.
Перед нами откроется окно конструктора движений, которое будет содержать созданные нами ранее движения документа по регистру ОстаткиМатериалов. Добавим в список регистров, по которым формируются движения, еще один – СтоимостьМатериалов. Выберем для него ту же табличную часть Материалы и заполним выражения.
Для ресурса Стоимость выберем значения реквизита табличной части Сумма (рис. 3.2).
Рис. 3.2. Добавим в список регистров новый регистр
Нажмем OK и посмотрим на текст, который сформировал конструктор (листинг 3.1).
Листинг 3.1. Процедура ОбработкаПроведения()
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
// внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// Регистр ОстаткиМатериалов Приход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
КонецЦикла;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
|
// Регистр СтоимостьМатериалов Приход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Стоимость = ТекСтрокаМатериалы.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Как вы видите, конструктор создал два цикла обхода табличной части документа – отдельно для каждого регистра. Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра.
В нашем случае табличная часть всего одна, поэтому можно объединить эти два цикла в один, закомментировав следующие строки (листинг 3.2):
Листинг 3.2. Объединение двух циклов в один
// КонецЦикла;
// Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Запустим 1С:Предприятие в режиме отладки и перепроведем документы ПриходнаяНакладная №1 и №2.
Затем откроем Приходную накладную №1 и убедимся, что документ создает желаемые записи в регистрах накопления (рис. 3.3, 3.4, 3.5).
Рис. 3.3. «ПриходнаяНакладная №1»
Рис. 3.4. Записи регистра «ОстаткиМатериалов»
Рис. 3.5. Записи регистра «СтоимостьМатериалов»