Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПИС.-All in one =). 1С.doc
Скачиваний:
34
Добавлен:
13.11.2018
Размер:
9.75 Mб
Скачать

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"