Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Порядок проведения документа по нескольким регистрам
Сейчас созданная вами конфигурация позволяет учитывать только количественное движение материалов в ООО " Мастер". Для этих целей вы создали регистр накопления ОстаткиМатериалов. Однако, одного только количественного учета совершенно недостаточно для нужд ООО " Мастер". Очевидно, что необходимо также знать, какие денежные средства были затрачены на приобретение тех или иных материалов, и каковы материальные запасы ООО " Мастер" в денежном выражении. Предположим, что руководство ООО " Мастер" высказало пожелание, чтобы весь суммовой учет материалов велся бы теперь по средней стоимости. То есть при закупке материалов они должны учитываться в ценах приобретения, а при расходе – по средней стоимости, которая рассчитывается исходя из общей суммы закупок данного материала и общего количества этого материала, находящегося в ООО. Поскольку подобная информация имеет совершенно другую структуру, нежели количественный учет, для хранения данных об общей стоимости тех или иных материалов необходим еще один регистр накопления СтоимостьМатериалов. Таким образом, документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения не только в регистре ОстаткиМатериалов, но одновременно и в регистре СтоимостьМатериалов, отражая изменения суммового учета. 3.10.1. Создание регистра " Стоимость материалов" Откройте конфигуратор и создайте регистр накопления СтоимостьМатериалов. Создайте одно измерение регистра – Материал с типом СправочникСсылка.Номенклатура и один ресурс – Стоимость с длиной 15 и точностью 2. После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации следующим образом (рис. 80): Рис. 80. Регистр " СтоимостьМатериалов" 3.10.2. Изменение процедуры проведения документа " ПриходнаяНакладная" Откройте в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдите на закладку Движения. В списке регистров отметьте, что документ будет создавать теперь движения и по регистру СтоимостьМатериалов. Запустите конструктор движений и согласитесь с тем, что существующая процедура ОбработкаПроведения будет замещена. На экране появится окно конструктора движений, которое будет содержать созданные вами ранее движения документа по регистру ОстаткиМатериалов. Добавьте в список регистров, по которым формируются движения, еще один – СтоимостьМатериалов. Выберите для него ту же табличную часть Материалы и заполните выражения. Для ресурса Стоимость выберите значения реквизита табличной части Сумма (рис. 81). Рис. 81. Добавьте в список регистров новый регистр Нажмите кнопку " OK " и посмотрите на текст, который сформировал конструктор. Как вы видите, конструктор создал два цикла обхода табличной части документа – отдельно для каждого регистра. Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра. Так как вы используете одну табличную часть, можно объединить эти два цикла в один, закомментировав следующие строки: // КонецЦикла; // Для Каждого ТекСтрокаМатериалы Из Материалы Цикл Запустите 1С: Предприятие в режиме отладки и перепроведите документы ПриходнаяНакладная №1 и №2. Затем откройте Приходную накладную №1 и убедитесь, что документ создает желаемые записи в регистрах накопления (рис. 82, 83, 84). Рис. 82. " ПриходнаяНакладная №1" Рис. 83. Записи регистра " ОстаткиМатериалов" Рис. 84. Записи регистра " СтоимостьМатериалов" 3.10.3. Изменение процедуры проведения документа " ОказаниеУслуги" Предположим, что руководство ООО " Мастер" решило, что на первом этапе, при списании материалов, израсходованных в процессе оказания услуги, должна быть возможность указывать различную стоимость для одного и того же материала, которая рассчитана руководством исходя из текущих конъюнктурных соображений. Поскольку в документе ОказаниеУслуги отражена только цена номенклатуры, вам понадобится добавить в табличную часть документа еще одно поле, в котором будет указываться стоимость номенклатуры. Откройте в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги, перейдите на закладку Данные и создайте новый реквизит табличной части документа с именем Стоимость, типом Число, длиной 15 и точностью 2 (рис. 85). Рис. 85. Изменение документа " ОказаниеУслуги" После этого откройте форму ФормаДокумента документа ОказаниеУслуги и добавьте в табличное поле колонку, отображающую новый реквизит Стоимость, расположив ее после колонки Номенклатура (рис. 86). Для этого выделите табличное поле и выполните команду контекстного меню Размещение данных. В окне Размещение данных отметьте реквизит Стоимость и нажмите кнопку " ОK". После этого с помощью мыши перетащите колонку Стоимость после колонки Номенклатура. Рис. 86. Изменение формы документа " ОказаниеУслуги" Теперь создайте движения документа ОказаниеУслуги таким же образом, как делали это для документа ПриходнаяНакладная. Откройте в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги и укажите, что он будет создавать движения по регистру накопления СтоимостьМатериалов. Запустите конструктор движений документа и добавьте в список регистров регистр СтоимостьМатериалов. Опишите движения документа следующим образом (обратите внимание, что стоимость вычисляется как произведение стоимости и количества, указанных в табличной части) – рис. 87: Рис. 87. Конструктор движений документа Нажмите кнопку " OK" и в тексте, сформированном конструктором, восстановите изменения, внесенные вами ранее (не записывать движения, если номенклатура – не материал). Также объедините два цикла обхода табличной части документа в один: Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры < > Перечисления.ВидыНоменклатуры.Материал Тогда Продолжить; КонецЕсли; // Регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; // Регистр СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // Записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Запустите 1С: Предприятие в режиме отладки и укажите стоимость выбранных материалов в документе ОказаниеУслуги №1 (рис. 88). Рис. 88. Документ " ОказаниеУслуги №1" Проведите документ ОказаниеУслуги №1 и посмотрите на движения этого документа по регистру СтоимостьМатериалов (рис. 89). Рис.89. Записи регистра " СтоимостьМатериалов" Теперь создайте и проведите еще два документа ОказаниеУслуги. Эти документы понадобятся в дальнейшем, поэтому будьте внимательны и обратите внимание на то, что эти документы созданы другими датами (рис. 90, 91). Рис. 90. Документ " ОказаниеУслуги №2" Рис. 91. Документ " ОказаниеУслуги №3" Движения документов ОказаниеУслуги №2 и №3 должны выглядеть соответственно следующим образом (рис. 92, 93): Рис. 92. Движения документа " ОказаниеУслуги №2" Рис. 93. Движения документа " ОказаниеУслуги №3" Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 1168; Нарушение авторского права страницы