Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Процедура ОбработкаПроведения(Отказ, Режим)
- ВремяНачало = ТекущаяДата();
- Запрос = Новый Запрос(
- "ВЫБРАТЬ
- | ВложенныйЗапрос.Номенклатура,
- | ВложенныйЗапрос.Номенклатура.ДокументСостава КАК ДокументСостава,
- | ВложенныйЗапрос.Характеристика,
- | СУММА(ВложенныйЗапрос.Понедельник) КАК Понедельник,
- | СУММА(ВложенныйЗапрос.Вторник) КАК Вторник,
- | СУММА(ВложенныйЗапрос.Среда) КАК Среда,
- | СУММА(ВложенныйЗапрос.Четверг) КАК Четверг,
- | СУММА(ВложенныйЗапрос.Пятница) КАК Пятница,
- | СУММА(ВложенныйЗапрос.Суббота) КАК Суббота,
- | СУММА(ВложенныйЗапрос.Воскресенье) КАК Воскресенье
- |ИЗ
- | (ВЫБРАТЬ
- | ПланПроизводстваСрезПоследних.Продукция КАК Номенклатура,
- | ПланПроизводстваСрезПоследних.Характеристика КАК Характеристика,
- | 0 КАК Понедельник,
- | 0 КАК Вторник,
- | 0 КАК Среда,
- | 0 КАК Четверг,
- | 0 КАК Пятница,
- | 0 КАК Суббота,
- | 0 КАК Воскресенье
- | ИЗ
- | РегистрСведений.ЗаказВПроизводство.СрезПоследних(
- | &Дата,
- | (Понедельник + Вторник + Среда + Четверг + Пятница + Суббота + Воскресенье <> 0)
- | И (Склад = &Склад) И (Магазин = &СЕ)) КАК ПланПроизводстваСрезПоследних
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПланПроизводстваСостав.Номенклатура,
- | ПланПроизводстваСостав.Характеристика,
- | ПланПроизводстваСостав.Понедельник * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Вторник * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Среда * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Четверг * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Пятница * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Суббота * ПланПроизводстваСостав.Коэффициент,
- | ПланПроизводстваСостав.Воскресенье * ПланПроизводстваСостав.Коэффициент
- | ИЗ
- | Документ.ПериодическийЗаказВПроизводство.Состав КАК ПланПроизводстваСостав
- | ГДЕ
- | ПланПроизводстваСостав.Ссылка = &Ссылка) КАК ВложенныйЗапрос
- |
- |СГРУППИРОВАТЬ ПО
- | ВложенныйЗапрос.Номенклатура,
- | ВложенныйЗапрос.Характеристика");
- Запрос.УстановитьПараметр("Ссылка",Ссылка);
- Запрос.УстановитьПараметр("Дата",МоментВремени());
- Запрос.УстановитьПараметр("Склад",Склад);
- Запрос.УстановитьПараметр("СЕ",СтруктурнаяЕдиница);
- ТЗПланПроизводства = Запрос.Выполнить().Выгрузить();
- РазузлованиеПродукции = Обработки.РазузлованиеПродукции.Создать();
- РазузлованиеПродукции.ВидПроизводства = Перечисления.ВидыПроизводства.Приготовление;
- Для Каждого ТекСтрокаСостав Из ТЗПланПроизводства Цикл
- Движение = Движения.ЗаказВПроизводство.Добавить();
- Движение.Магазин = СтруктурнаяЕдиница;
- Движение.Характеристика = ТекСтрокаСостав.Характеристика;
- Движение.Период = Дата;
- Движение.Продукция = ТекСтрокаСостав.Номенклатура;
- Движение.Склад = Склад;
- Движение.Понедельник = ТекСтрокаСостав.Понедельник;
- Движение.Вторник = ТекСтрокаСостав.Вторник;
- Движение.Среда = ТекСтрокаСостав.Среда;
- Движение.Четверг = ТекСтрокаСостав.Четверг;
- Движение.Пятница = ТекСтрокаСостав.Пятница;
- Движение.Суббота = ТекСтрокаСостав.Суббота;
- Движение.Воскресенье = ТекСтрокаСостав.Воскресенье;
- //
- Если (ТекСтрокаСостав.Понедельник+ТекСтрокаСостав.Вторник+ТекСтрокаСостав.Среда+ТекСтрокаСостав.Четверг+ТекСтрокаСостав.Пятница+
- ТекСтрокаСостав.Суббота+ТекСтрокаСостав.Воскресенье) <>0 Тогда
- СтрПродукции = РазузлованиеПродукции.Продукция.Добавить();
- СтрПродукции.ЕдиницаИзмерения = ОмОбщиеПроцедурыИФункции.ПолучитьБазовуюЕдиницуИзмерения(ТекСтрокаСостав.Номенклатура);
- ТекКлюч = Строка(Новый УникальныйИдентификатор());
- СтрПродукции.Ключ = ТекКлюч;
- СтрПродукции.Количество = 1;
- СтрПродукции.Коэффициент = 1;
- СтрПродукции.Номенклатура = ТекСтрокаСостав.Номенклатура;
- СтрПродукции.ТехнологическаяКарта = ТекСтрокаСостав.ДокументСостава;
- СтрПродукции.флНеИнгредиентов = Истина;
- СтрПродукции.ХарактеристикаПартия = ТекСтрокаСостав.Характеристика;
- РазузлованиеПродукции.СтвТехКарта.Вставить(ТекКлюч ,Новый ДеревоЗначений());
- КонецЕсли;
- КонецЦикла;
- РазузлованиеПродукции.Разузлование();
- РазузлованиеПродукции.АвтоподборАналогов();
- МенВремТаблиц = Новый МенеджерВременныхТаблиц();
- РазузлованиеПродукции.ПеренестиРезультатыВоВременнуюТаблицу(МенВремТаблиц, "ТИнгредиенты");
- РазузлованиеПродукции = Неопределено;
- Запрос.Текст =
- "ВЫБРАТЬ
- | Выборка.Продукция,
- | Выборка.Номенклатура,
- | Выборка.Характеристика,
- | Выборка.Аналог,
- | СУММА(Выборка.Понедельник + Выборка.Вторник + Выборка.Среда + Выборка.Четверг + Выборка.Пятница + Выборка.Суббота + Выборка.Воскресенье) КАК общСумма
- |ПОМЕСТИТЬ вСрез
- |ИЗ
- | (ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних.Продукция КАК Продукция,
- | ПотребностьПроизводстваСрезПоследних.Ингредиент КАК Номенклатура,
- | ПотребностьПроизводстваСрезПоследних.Характеристика КАК Характеристика,
- | ПотребностьПроизводстваСрезПоследних.Аналог КАК Аналог,
- | ПотребностьПроизводстваСрезПоследних.Понедельник КАК Понедельник,
- | 0 КАК Вторник,
- | 0 КАК Среда,
- | 0 КАК Четверг,
- | 0 КАК Пятница,
- | 0 КАК Суббота,
- | 0 КАК Воскресенье
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Понедельник <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних2.Продукция,
- | ПотребностьПроизводстваСрезПоследних2.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних2.Характеристика,
- | ПотребностьПроизводстваСрезПоследних2.Аналог,
- | 0,
- | ПотребностьПроизводстваСрезПоследних2.Вторник,
- | 0,
- | 0,
- | 0,
- | 0,
- | 0
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Вторник <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних2
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних3.Продукция,
- | ПотребностьПроизводстваСрезПоследних3.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних3.Характеристика,
- | ПотребностьПроизводстваСрезПоследних3.Аналог,
- | 0,
- | 0,
- | ПотребностьПроизводстваСрезПоследних3.Среда,
- | 0,
- | 0,
- | 0,
- | 0
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Среда <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних3
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних4.Продукция,
- | ПотребностьПроизводстваСрезПоследних4.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних4.Характеристика,
- | ПотребностьПроизводстваСрезПоследних4.Аналог,
- | 0,
- | 0,
- | 0,
- | ПотребностьПроизводстваСрезПоследних4.Четверг,
- | 0,
- | 0,
- | 0
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Четверг <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних4
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних5.Продукция,
- | ПотребностьПроизводстваСрезПоследних5.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних5.Характеристика,
- | ПотребностьПроизводстваСрезПоследних5.Аналог,
- | 0,
- | 0,
- | 0,
- | 0,
- | ПотребностьПроизводстваСрезПоследних5.Пятница,
- | 0,
- | 0
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Пятница <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних5
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних6.Продукция,
- | ПотребностьПроизводстваСрезПоследних6.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних6.Характеристика,
- | ПотребностьПроизводстваСрезПоследних6.Аналог,
- | 0,
- | 0,
- | 0,
- | 0,
- | 0,
- | ПотребностьПроизводстваСрезПоследних6.Суббота,
- | 0
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Суббота <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних6
- |
- | ОБЪЕДИНИТЬ ВСЕ
- |
- | ВЫБРАТЬ
- | ПотребностьПроизводстваСрезПоследних7.Продукция,
- | ПотребностьПроизводстваСрезПоследних7.Ингредиент,
- | ПотребностьПроизводстваСрезПоследних7.Характеристика,
- | ПотребностьПроизводстваСрезПоследних7.Аналог,
- | 0,
- | 0,
- | 0,
- | 0,
- | 0,
- | 0,
- | ПотребностьПроизводстваСрезПоследних7.Воскресенье
- | ИЗ
- | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
- | &дата,
- | Воскресенье <> 0
- | И Склад = &Склад
- | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних7) КАК Выборка
- |
- |СГРУППИРОВАТЬ ПО
- | Выборка.Продукция,
- | Выборка.Номенклатура,
- | Выборка.Характеристика,
- | Выборка.Аналог
- |
- |ИНДЕКСИРОВАТЬ ПО
- | общСумма";
- Запрос.МенеджерВременныхТаблиц = МенВремТаблиц;
- Запрос.УстановитьПараметр("Склад", Склад);
- Запрос.УстановитьПараметр("СЕ",СтруктурнаяЕдиница);
- Запрос.Выполнить();
- Запрос.Текст =
- " ВЫБРАТЬ
- | Потребность.Продукция КАК Продукция,
- | Потребность.Номенклатура КАК Номенклатура,
- | Потребность.Характеристика КАК Характеристика,
- | Потребность.Аналог КАК Аналог,
- | Сумма(Понедельник) КАК Понедельник,
- | Сумма(Вторник) КАК Вторник,
- | Сумма(Среда) КАК Среда,
- | Сумма(Четверг) КАК Четверг,
- | Сумма(Пятница) КАК Пятница,
- | Сумма(Суббота) КАК Суббота,
- | Сумма(Воскресенье) КАК Воскресенье
- |ИЗ
- |(
- |ВЫБРАТЬ Продукция,
- | Номенклатура,
- | Характеристика,
- | Аналог,
- | 0 КАК Понедельник,
- | 0 КАК Вторник,
- | 0 КАК Среда,
- | 0 КАК Четверг,
- | 0 КАК Пятница,
- | 0 КАК Суббота,
- | 0 КАК Воскресенье
- |ИЗ ТСрезПотребностьПроизводстваПоЗаказам
- | ГДЕ общСумма<>0
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | ТИнгредиенты.Продукция,
- | ТИнгредиенты.Номенклатура,
- | ТИнгредиенты.ХарактеристикаСостава,
- | Выбор когда ТИнгредиенты.Ингредиент = Значение(Справочник.Номенклатура.ПустаяСсылка) тогда
- | ТИнгредиенты.Номенклатура
- | иначе
- | ТИнгредиенты.Ингредиент
- | конец,
- | Состав.Понедельник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Понедельник,
- | Состав.Вторник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Вторник,
- | Состав.Среда * Состав.Коэффициент * ТИнгредиенты.Количество КАК Среда,
- | Состав.Четверг * Состав.Коэффициент * ТИнгредиенты.Количество КАК Четверг,
- | Состав.Пятница * Состав.Коэффициент * ТИнгредиенты.Количество КАК Пятница,
- | Состав.Суббота * Состав.Коэффициент * ТИнгредиенты.Количество КАК Суббота,
- | Состав.Воскресенье * Состав.Коэффициент * ТИнгредиенты.Количество КАК Воскресенье
- | ИЗ Документ.ПериодическийЗаказВПроизводство.Состав КАК Состав
- | внутреннее соединение ТИнгредиенты по Состав.Номенклатура = ТИнгредиенты.Продукция
- | И Состав.Характеристика = ТИнгредиенты.Характеристика
- | Где состав.Ссылка = &ссылка
- | ) КАК Потребность
- | Сгруппировать по
- | Потребность.Продукция,
- | Потребность.Номенклатура,
- | Потребность.Характеристика,
- | Потребность.Аналог
- |";
- Запрос.УстановитьПараметр("ссылка", ссылка);
- СтрокаКарты = Запрос.Выполнить().Выбрать();
- Пока СтрокаКарты.Следующий() Цикл
- Запись = Движения.ПотребностьПроизводстваПоЗаказам.Добавить();
- Запись.Характеристика = СтрокаКарты.Характеристика;
- Запись.Период = Дата;
- Запись.Продукция = СтрокаКарты.Продукция;
- Запись.Склад = Склад;
- Запись.Ингредиент = СтрокаКарты.Номенклатура;
- Запись.Аналог = СтрокаКарты.Аналог;
- Запись.Понедельник = СтрокаКарты.Понедельник;
- Запись.Вторник = СтрокаКарты.Вторник;
- Запись.Среда = СтрокаКарты.Среда;
- Запись.Четверг = СтрокаКарты.Четверг;
- Запись.Пятница = СтрокаКарты.Пятница;
- Запись.Суббота = СтрокаКарты.Суббота;
- Запись.Воскресенье = СтрокаКарты.Воскресенье;
- Запись.Магазин = СтруктурнаяЕдиница;
- КонецЦикла;
- Если ОмЗаполнениеДанными.ОтладкаРазрешена() Тогда
- Время = ТекущаяДата()-ВремяНачало;
- Параметры = "Всего товаров - "+Состав.Количество();
- ОмПривилегированный.ЗаписьИнформацииОтладки("Проведение документа """+СокрЛП(ЭтотОбъект.Метаданные().Синоним)+"""",Параметры,Время,Номер);
- КонецЕсли;
- КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement