Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

Откроем в конфигураторе модуль объекта конфигурации документ «ОказаниеУслуги» и найдем в нем процедуру обработчика события «ОбработкаПроведения».

Создадим еще один цикл обхода табличной части и команду записи движений регистра (добавления выделены жирным шрифтом):

 

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

//{{_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ //Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!!

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

Перечисления.ВидыНоменклатуры.Материал Тогда Продолжить;

КонецЕсли;

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

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

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

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

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

.Номенклатура; Движение.Склад = Склад;

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

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

// регистр СтоимостьМатериалов Расход

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

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

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

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

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

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

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

Цикл

// регистр Продажи КонецЦикла;

// записываем движения регистров Движения.ОстаткиМатериалов.Записать();

Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();
//}}_КОНСТРУКТОР^ВИЖЕНИЙ_РЕГИСТРОВ
Ко нецПроцедуры

 

Теперь в тело созданного нами цикла вставим команды создания движений регистра «Продажи»:

 

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

//{{_КОНСТРУКТОРЛВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!!

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

Перечислеиия.ВидыНоменклатуры.МатериалТогда

Продолжить; КонецЕсли;

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

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

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

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

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

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

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

//КонецЦикла;

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

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

КонецЦикла;

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

// регистр Продажи

Движение = Движения.Продажи.Добавить();

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

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

Движение.Клиент = Клиент;

Движение.Мастер = Мастер;

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

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

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

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

КонецЦикла;

// записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); Движения.Продажи.Записать();

//} }_КОНСТРУКТОР^ВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

 

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

Запустим 1С: Предприятие в режиме отладки и перепроведем все документы «Оказание услуги». Движения этих документов по регистру «Продажи» должны иметь следующий вид:

Движения документа Оказание услуги №1

 

Движения документа Оказание услуги №2

 


 

 

Теперь у нас есть практически вся необходимая информация для анализа деятельности OOO «На все руки мастер».

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.