Загрузка данных
////////////////////////////////////////////////////////////////////////////////
// +++DimRa 17.09.26
// Один раз читаем строки для обоих периодов. Не исключаем строки,
// у которых дата регистра отличается от даты проведенного расходного ордера.
ВЫБРАТЬ
Реестр.Город КАК Город,
Реестр.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
Реестр.ЗаказчикИзБазы КАК ЗаказчикИзБазы,
Реестр.ИНН КАК ИНН,
Реестр.КАМ КАК КАМ,
Реестр.Количество КАК Количество,
Реестр.Номенклатура КАК Номенклатура,
Реестр.Партнер КАК Партнер,
Реестр.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Реестр.ПроектСсылка КАК ПроектСсылка,
Реестр.СерияНоменклатуры КАК СерияНоменклатуры,
Реестр.Ссылка КАК Ссылка,
Реестр.ТипДвижения КАК ТипДвижения,
Реестр.Цена КАК Цена,
Реестр.ЭтоРеализация КАК ЭтоРеализация
ПОМЕСТИТЬ ВТ_ДанныеРОТПериода
ИЗ
РегистрСведений.Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники КАК Реестр
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары КАК Ордер
ПО Реестр.Ссылка = Ордер.Ссылка
И Реестр.ЭтоРеализация
И Ордер.Проведен
ГДЕ
Реестр.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
ИЛИ Реестр.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
ИЛИ ВЫБОР
КОГДА Реестр.ЭтоРеализация
И НЕ Ордер.Ссылка ЕСТЬ NULL
ТОГДА Ордер.ДатаОтгрузки
ИНАЧЕ Реестр.ДатаОтгрузкиВСтроке
КОНЕЦ МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
ИЛИ ВЫБОР
КОГДА Реестр.ЭтоРеализация
И НЕ Ордер.Ссылка ЕСТЬ NULL
ТОГДА Ордер.ДатаОтгрузки
ИНАЧЕ Реестр.ДатаОтгрузкиВСтроке
КОНЕЦ МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
// ---DimRa
// +++DimRa 03.09.26
// Для старых строк регистра с нулевой ценой восстанавливаем стоимость
// комплекта из сводной части дистрибьюторского отчета.
ВЫБРАТЬ
Строки.Ссылка КАК Ссылка,
Строки.Номенклатура КАК Номенклатура,
Строки.Компания КАК Партнер,
Строки.ЗаказчикИзБазы КАК ЗаказчикИзБазы,
Строки.Город КАК Город,
Строки.ПроектСсылка КАК ПроектСсылка,
Строки.Дата КАК Дата,
Строки.СерийныйНомер КАК СерийныйНомер,
Строки.ТипДвижения КАК ТипДвижения,
ВЫБОР
КОГДА СУММА(ЕСТЬNULL(Строки.Количество, 0)) = 0
ТОГДА 0
ИНАЧЕ СУММА(
ВЫБОР
КОГДА ЕСТЬNULL(Строки.СуммаОтгрузки, 0) <> 0
ТОГДА Строки.СуммаОтгрузки
ИНАЧЕ ЕСТЬNULL(Строки.ЦенаОтгрузки, 0)
* ЕСТЬNULL(Строки.Количество, 0)
КОНЕЦ
) / СУММА(ЕСТЬNULL(Строки.Количество, 0))
КОНЕЦ КАК ЦенаКомплекта
ПОМЕСТИТЬ ВТ_ЦеныСтрокДистри
ИЗ
Документ.Катюша_ДистрибьюторскийОтчет_ERP.СводнаяРасход КАК Строки
ГДЕ
( Строки.Дата МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
ИЛИ Строки.Дата МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ)
И Строки.Ссылка В
(ВЫБРАТЬ Данные.Ссылка ИЗ ВТ_ДанныеРОТПериода КАК Данные)
СГРУППИРОВАТЬ ПО
Строки.Ссылка,
Строки.Номенклатура,
Строки.Компания,
Строки.ЗаказчикИзБазы,
Строки.Город,
Строки.ПроектСсылка,
Строки.Дата,
Строки.СерийныйНомер,
Строки.ТипДвижения
ИНДЕКСИРОВАТЬ ПО
Ссылка, Номенклатура, Партнер, ЗаказчикИзБазы
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы КАК Заказчик,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ КАК ПризнакФЗ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер КАК Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН КАК ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН КАК ПартнерИНН,
СУММА(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество) КАК Количество,
СУММА(ВЫБОР
КОГДА НЕ Гарантии.Ссылка ЕСТЬ NULL
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоГарантий,
Гарантии.СерийныйНомер КАК СерийныйНомер,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ КАК ГоловнойКонтрагент,
ВЫРАЗИТЬ(
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ
КАК СТРОКА(50)) КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура КАК Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ КАК КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И НЕ РасходныйОрдерНаТовары.Ссылка ЕСТЬ NULL
ТОГДА РасходныйОрдерНаТовары.ДатаОтгрузки
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке
КОНЕЦ КАК ДатаОтгрузкиВСтроке,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК СуммаПродаж,
// +++DimRa 21.09.26
// Цена комплекта нужна для выбора между стоимостью записи РОТ и ценами документов.
МАКСИМУМ(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
ИНАЧЕ 0
КОНЕЦ) КАК Цена,
// ---DimRa
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка КАК ДокументРОТ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка КАК ПроектИзРегистра
ПОМЕСТИТЬ ВТ_АП_Исходные
ИЗ
ВТ_ДанныеРОТПериода КАК Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
МАКСИМУМ(Катюша_ОборудованиеКатюшаНаГарантии.Ссылка) КАК Ссылка,
Катюша_ОборудованиеКатюшаНаГарантии.СерийныйНомер КАК СерийныйНомер
ИЗ
Документ.Катюша_ОборудованиеКатюшаНаГарантии КАК Катюша_ОборудованиеКатюшаНаГарантии
ГДЕ
Катюша_ОборудованиеКатюшаНаГарантии.Проведен
И Катюша_ОборудованиеКатюшаНаГарантии.Дата МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
СГРУППИРОВАТЬ ПО
Катюша_ОборудованиеКатюшаНаГарантии.СерийныйНомер) КАК Гарантии
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = Гарантии.СерийныйНомер
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка))
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры.Номер <> "")
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары КАК РасходныйОрдерНаТовары
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = РасходныйОрдерНаТовары.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И РасходныйОрдерНаТовары.Проведен
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныСтрокДистри КАК ЦеныСтрокДистри
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = ЦеныСтрокДистри.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = ЦеныСтрокДистри.Номенклатура
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер = ЦеныСтрокДистри.Партнер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЦеныСтрокДистри.ЗаказчикИзБазы
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Город = ЦеныСтрокДистри.Город
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка = ЦеныСтрокДистри.ПроектСсылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке = ЦеныСтрокДистри.Дата
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = ЦеныСтрокДистри.СерийныйНомер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения = ЦеныСтрокДистри.ТипДвижения
ГДЕ
(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_АппаратРМ = &Аппарат
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_АппаратРМ = &РМ)
И (ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация)
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Катюша)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Sindoh))
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа в дистрибьютора")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютеру")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютору")
И (ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И НЕ РасходныйОрдерНаТовары.Ссылка ЕСТЬ NULL
ТОГДА РасходныйОрдерНаТовары.ДатаОтгрузки
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке
КОНЕЦ МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
ИЛИ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И НЕ РасходныйОрдерНаТовары.Ссылка ЕСТЬ NULL
ТОГДА РасходныйОрдерНаТовары.ДатаОтгрузки
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке
КОНЕЦ МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ)
И ВЫБОР
КОГДА ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И НЕ РасходныйОрдерНаТовары.Ссылка ЕСТЬ NULL
ТОГДА РасходныйОрдерНаТовары.ДатаОтгрузки
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке
КОНЕЦ > ДАТАВРЕМЯ(2023, 1, 1)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания)
И ВЫБОР
КОГДА &Прошит
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры.Катюша_Прошит
ИНАЧЕ ИСТИНА
КОНЕЦ
СГРУППИРОВАТЬ ПО
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН,
Гарантии.СерийныйНомер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ,
ВЫРАЗИТЬ(
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ
КАК СТРОКА(50)),
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация
И НЕ РасходныйОрдерНаТовары.Ссылка ЕСТЬ NULL
ТОГДА РасходныйОрдерНаТовары.ДатаОтгрузки
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка
;
// +++DimRa 03.09.26
////////////////////////////////////////////////////////////////////////////////
// +++DimRa 11.09.26
// Проект ищем от фактического распоряжения ордера независимо от наличия сборки.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Исходные.ДокументРОТ КАК ДокументРОТ,
Исходные.Номенклатура КАК Номенклатура,
ЕСТЬNULL(Реализация.Ссылка, Сборка.Катюша_Реализация) КАК Реализация
ПОМЕСТИТЬ ВТ_АП_РеализацииРаспоряжений
ИЗ
ВТ_АП_Исходные КАК Исходные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК Распоряжения
ПО Исходные.ДокументРОТ = Распоряжения.Ссылка
И Исходные.Номенклатура = Распоряжения.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
ПО Распоряжения.Распоряжение = Реализация.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаТоваров КАК Сборка
ПО Распоряжения.Распоряжение = Сборка.Ссылка
ГДЕ
ЕСТЬNULL(Реализация.Ссылка, Сборка.Катюша_Реализация)
<> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
;
// Учитываем заказ в строках реализации и в шапке. Повторы не множат количество.
ВЫБРАТЬ
Распоряжения.ДокументРОТ КАК ДокументРОТ,
Распоряжения.Номенклатура КАК Номенклатура,
Товары.ЗаказКлиента КАК ЗаказКлиента
ПОМЕСТИТЬ ВТ_АП_ЗаказыРаспоряжений
ИЗ
ВТ_АП_РеализацииРаспоряжений КАК Распоряжения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
ПО Распоряжения.Реализация = Товары.Ссылка
И (Распоряжения.Номенклатура = Товары.Номенклатура
ИЛИ Распоряжения.Номенклатура = Товары.НоменклатураНабора)
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Распоряжения.ДокументРОТ,
Распоряжения.Номенклатура,
Распоряжения.Реализация.ЗаказКлиента
ИЗ
ВТ_АП_РеализацииРаспоряжений КАК Распоряжения
;
// Заказ может сам быть проектом либо ссылаться на него через документ-основание.
ВЫБРАТЬ
Распоряжения.ДокументРОТ КАК ДокументРОТ,
Распоряжения.Номенклатура КАК Номенклатура,
ВЫБОР
КОГДА Заказ.Катюша_ФормаОИР ИЛИ Заказ.Катюша_ФормаКатюши
ТОГДА Заказ.Ссылка
КОГДА Основание.Катюша_ФормаОИР ИЛИ Основание.Катюша_ФормаКатюши
ТОГДА Основание.Ссылка
КОГДА ОснованиеПроекта.Катюша_ФормаОИР ИЛИ ОснованиеПроекта.Катюша_ФормаКатюши
ТОГДА ОснованиеПроекта.Ссылка
ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
КОНЕЦ КАК Проект
ПОМЕСТИТЬ ВТ_АП_КандидатыПроектовРаспоряжений
ИЗ
ВТ_АП_ЗаказыРаспоряжений КАК Распоряжения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Заказ
ПО Распоряжения.ЗаказКлиента = Заказ.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Основание
ПО Заказ.ДокументОснование = Основание.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ОснованиеПроекта
ПО Основание.ДокументОснование = ОснованиеПроекта.Ссылка
;
// Используем только однозначно найденный проект, без выбора максимальной ссылки.
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Номенклатура КАК Номенклатура,
МАКСИМУМ(Кандидаты.Проект) КАК Проект
ПОМЕСТИТЬ ВТ_АП_ПроектыРаспоряжений
ИЗ
ВТ_АП_КандидатыПроектовРаспоряжений КАК Кандидаты
ГДЕ
Кандидаты.Проект <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Номенклатура
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Кандидаты.Проект) = 1
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
// Для аппаратов, записанных в РОТ без разборки сборки, читаем цену прямо из проекта.
ВЫБРАТЬ
Проекты.ДокументРОТ КАК ДокументРОТ,
Проекты.Номенклатура КАК Номенклатура,
// +++DimRa 11.09.26
// Цена строки приоритетнее суммы, делённой на количество.
ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяЦена, 0) > 0
ТОГДА ТоварыПроекта.Катюша_ФактическаяЦена * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяСумма, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Катюша_ФактическаяСумма / ТоварыПроекта.Количество
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяЦенаОтгрузки, 0) > 0
ТОГДА ТоварыПроекта.Катюша_ЗапрашиваемаяЦенаОтгрузки * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяСуммаОтгрузки, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Катюша_ЗапрашиваемаяСуммаОтгрузки / ТоварыПроекта.Количество
КОГДА ЕСТЬNULL(ТоварыПроекта.Цена, 0) > 0
ТОГДА ТоварыПроекта.Цена * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Сумма, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Сумма / ТоварыПроекта.Количество
ИНАЧЕ 0
КОНЕЦ КАК ЦенаЕдиницыПроекта,
// +++DimRa 21.09.26
// Авторизованную цену храним отдельно: РРЦ и запрашиваемые цены не заменяют ее.
ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяЦена, 0) > 1
ТОГДА ТоварыПроекта.Катюша_ФактическаяЦена * ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяСумма, 0) > 1
И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Катюша_ФактическаяСумма / ТоварыПроекта.Количество
ИНАЧЕ 0
КОНЕЦ КАК ЦенаАвторизованная
// ---DimRa
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_КандидатыЦенПрямойОтгрузки
ИЗ
ВТ_АП_ПроектыРаспоряжений КАК Проекты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ТоварыПроекта
ПО Проекты.Проект = ТоварыПроекта.Ссылка
И Проекты.Номенклатура = ТоварыПроекта.Номенклатура
ГДЕ
НЕ ТоварыПроекта.Отменено
;
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Номенклатура КАК Номенклатура,
МИНИМУМ(Кандидаты.ЦенаЕдиницыПроекта) КАК ЦенаЕдиницыПроекта,
// +++DimRa 21.09.26
МАКСИМУМ(Кандидаты.ЦенаАвторизованная) КАК ЦенаАвторизованная
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ЦеныПрямойОтгрузки
ИЗ
ВТ_АП_КандидатыЦенПрямойОтгрузки КАК Кандидаты
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Номенклатура
ИМЕЮЩИЕ
МИНИМУМ(Кандидаты.ЦенаЕдиницыПроекта) > 0
И МИНИМУМ(Кандидаты.ЦенаЕдиницыПроекта) = МАКСИМУМ(Кандидаты.ЦенаЕдиницыПроекта)
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
// Проект может быть указан в строке реализации, а не в ее шапке.
// +++DimRa 17.09.26
// Сборки ограничиваем номенклатурой исходных строк, а не датой сборки.
// Все подходящие реализации, проекты и составы комплектов сохраняются.
ВЫБРАТЬ
Сборки.ЗаказНаСборку КАК ЗаказНаСборку,
Сборки.Катюша_Реализация КАК Катюша_Реализация,
Сборки.Количество КАК Количество,
Сборки.Номенклатура КАК Номенклатура,
Сборки.Проведен КАК Проведен,
Сборки.Ссылка КАК Ссылка,
Сборки.Характеристика КАК Характеристика,
Сборки.ХозяйственнаяОперация КАК ХозяйственнаяОперация
ПОМЕСТИТЬ ВТ_АП_СборкиПериода
ИЗ
Документ.СборкаТоваров КАК Сборки
ГДЕ
Сборки.Номенклатура В
(ВЫБРАТЬ Исходные.Номенклатура ИЗ ВТ_АП_Исходные КАК Исходные)
И Сборки.Проведен
И Сборки.ХозяйственнаяОперация
= ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СборкаТоваров)
И Сборки.Катюша_Реализация
<> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
ИНДЕКСИРОВАТЬ ПО
Номенклатура, Катюша_Реализация
;
// ---DimRa
ВЫБРАТЬ
ТоварыРеализации.Ссылка КАК Реализация,
ВЫБОР
КОГДА ТоварыРеализации.НоменклатураНабора
<> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ТОГДА ТоварыРеализации.НоменклатураНабора
ИНАЧЕ ТоварыРеализации.Номенклатура
КОНЕЦ КАК Комплект,
МАКСИМУМ(ВЫРАЗИТЬ(
ТоварыРеализации.ЗаказКлиента КАК Документ.ЗаказКлиента
)) КАК Проект
ПОМЕСТИТЬ ВТ_АП_ПроектыРеализаций
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК ТоварыРеализации
ГДЕ
ТоварыРеализации.Ссылка В
(ВЫБРАТЬ Сборки.Катюша_Реализация ИЗ ВТ_АП_СборкиПериода КАК Сборки)
И ТИПЗНАЧЕНИЯ(ТоварыРеализации.ЗаказКлиента)
= ТИП(Документ.ЗаказКлиента)
И ТоварыРеализации.ЗаказКлиента
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
ТоварыРеализации.Ссылка,
ВЫБОР
КОГДА ТоварыРеализации.НоменклатураНабора
<> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ТОГДА ТоварыРеализации.НоменклатураНабора
ИНАЧЕ ТоварыРеализации.Номенклатура
КОНЕЦ
ИНДЕКСИРОВАТЬ ПО
Реализация, Комплект
;
// +++DimRa 24.09.26
// Проектную раскомплектацию выполняем только при одном документе сборки.
// Кандидаты строятся по уже отобранной ВТ сборок, без повторного чтения документов.
ВЫБРАТЬ
Связи.Комплект КАК Комплект,
Связи.Проект КАК Проект,
МАКСИМУМ(Связи.ДокументСборки) КАК ДокументСборки
ПОМЕСТИТЬ ВТ_АП_ОднозначныеСборкиПроектов
ИЗ
(ВЫБРАТЬ
Сборки.Номенклатура КАК Комплект,
ВЫРАЗИТЬ(
Сборки.ЗаказНаСборку.ДокументОснование
КАК Документ.ЗаказКлиента
) КАК Проект,
Сборки.Ссылка КАК ДокументСборки
ИЗ
ВТ_АП_СборкиПериода КАК Сборки
ГДЕ
ТИПЗНАЧЕНИЯ(Сборки.ЗаказНаСборку.ДокументОснование)
= ТИП(Документ.ЗаказКлиента)
И ВЫРАЗИТЬ(
Сборки.ЗаказНаСборку.ДокументОснование
КАК Документ.ЗаказКлиента
) <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Проекты.Комплект,
Проекты.Проект,
Сборки.Ссылка
ИЗ
ВТ_АП_СборкиПериода КАК Сборки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПроектыРеализаций КАК Проекты
ПО Сборки.Катюша_Реализация = Проекты.Реализация
И Сборки.Номенклатура = Проекты.Комплект
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Сборки.Номенклатура,
ВЫРАЗИТЬ(
Сборки.Катюша_Реализация.ЗаказКлиента
КАК Документ.ЗаказКлиента
),
Сборки.Ссылка
ИЗ
ВТ_АП_СборкиПериода КАК Сборки
ГДЕ
ТИПЗНАЧЕНИЯ(Сборки.Катюша_Реализация.ЗаказКлиента)
= ТИП(Документ.ЗаказКлиента)
И ВЫРАЗИТЬ(
Сборки.Катюша_Реализация.ЗаказКлиента
КАК Документ.ЗаказКлиента
) <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
) КАК Связи
СГРУППИРОВАТЬ ПО
Связи.Комплект,
Связи.Проект
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Связи.ДокументСборки) = 1
ИНДЕКСИРОВАТЬ ПО
Комплект, Проект
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
// В регистре РОТ хранится расходный ордер. Его распоряжением может быть
// сама сборка либо реализация, указанная в сборке.
ВЫБРАТЬ
Сборки.Ссылка КАК ДокументСборки,
Исходные.ДокументРОТ КАК ДокументРОТ,
Сборки.Катюша_Реализация КАК Реализация,
Сборки.Катюша_Реализация.Контрагент КАК КонтрагентРеализации,
Сборки.Номенклатура КАК Комплект,
Сборки.Характеристика КАК ХарактеристикаКомплекта,
Сборки.Катюша_Реализация.Дата КАК ДатаЦены,
ВЫБОР
КОГДА Исходные.ПроектИзРегистра
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА Исходные.ПроектИзРегистра
КОГДА Сборки.ЗаказНаСборку.ДокументОснование
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА Сборки.ЗаказНаСборку.ДокументОснование
КОГДА ПроектыРеализаций.Проект
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА ПроектыРеализаций.Проект
КОГДА ТИПЗНАЧЕНИЯ(Сборки.Катюша_Реализация.ЗаказКлиента)
= ТИП(Документ.ЗаказКлиента)
ТОГДА ВЫРАЗИТЬ(
Сборки.Катюша_Реализация.ЗаказКлиента
КАК Документ.ЗаказКлиента
)
ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
КОНЕЦ КАК Проект,
// +++DimRa 24.09.26
// Сохраняем исходный проект строки регистра как отдельный ключ раскомплектации.
Исходные.ПроектИзРегистра КАК ПроектИзРегистра,
// ---DimRa
ВЫБОР
КОГДА ЕСТЬNULL(Сборки.Количество, 0) = 0
ТОГДА 1
ИНАЧЕ Сборки.Количество
КОНЕЦ КАК КоличествоКомплектов
ПОМЕСТИТЬ ВТ_АП_Сборки
ИЗ
ВТ_АП_Исходные КАК Исходные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям
КАК Распоряжения
ПО Исходные.ДокументРОТ = Распоряжения.Ссылка
И Исходные.Номенклатура = Распоряжения.Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_СборкиПериода КАК Сборки
ПО Распоряжения.Распоряжение = Сборки.Ссылка
И Исходные.Номенклатура = Сборки.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ПроектыРеализаций КАК ПроектыРеализаций
ПО Сборки.Катюша_Реализация = ПроектыРеализаций.Реализация
И Сборки.Номенклатура = ПроектыРеализаций.Комплект
ГДЕ
ТИПЗНАЧЕНИЯ(Распоряжения.Распоряжение)
= ТИП(Документ.СборкаТоваров)
И Сборки.Проведен
И Сборки.ХозяйственнаяОперация
= ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СборкаТоваров)
И Сборки.Катюша_Реализация
<> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Сборки.Ссылка,
Исходные.ДокументРОТ,
Сборки.Катюша_Реализация,
Сборки.Катюша_Реализация.Контрагент,
Сборки.Номенклатура,
Сборки.Характеристика,
Сборки.Катюша_Реализация.Дата,
ВЫБОР
КОГДА Исходные.ПроектИзРегистра
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА Исходные.ПроектИзРегистра
КОГДА Сборки.ЗаказНаСборку.ДокументОснование
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА Сборки.ЗаказНаСборку.ДокументОснование
КОГДА ПроектыРеализаций.Проект
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА ПроектыРеализаций.Проект
КОГДА ТИПЗНАЧЕНИЯ(Сборки.Катюша_Реализация.ЗаказКлиента)
= ТИП(Документ.ЗаказКлиента)
ТОГДА ВЫРАЗИТЬ(
Сборки.Катюша_Реализация.ЗаказКлиента
КАК Документ.ЗаказКлиента
)
ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
КОНЕЦ,
Исходные.ПроектИзРегистра,
ВЫБОР
КОГДА ЕСТЬNULL(Сборки.Количество, 0) = 0
ТОГДА 1
ИНАЧЕ Сборки.Количество
КОНЕЦ
ИЗ
ВТ_АП_Исходные КАК Исходные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям
КАК Распоряжения
ПО Исходные.ДокументРОТ = Распоряжения.Ссылка
И Исходные.Номенклатура = Распоряжения.Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_СборкиПериода КАК Сборки
ПО Распоряжения.Распоряжение = Сборки.Катюша_Реализация
И Исходные.Номенклатура = Сборки.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ПроектыРеализаций КАК ПроектыРеализаций
ПО Сборки.Катюша_Реализация = ПроектыРеализаций.Реализация
И Сборки.Номенклатура = ПроектыРеализаций.Комплект
ГДЕ
ТИПЗНАЧЕНИЯ(Распоряжения.Распоряжение)
= ТИП(Документ.РеализацияТоваровУслуг)
И Сборки.Проведен
И Сборки.ХозяйственнаяОперация
= ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СборкаТоваров)
И Сборки.Катюша_Реализация
<> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
ОБЪЕДИНИТЬ
// Для строки дистрибьюторского отчета расходного ордера нет. Связываем
// комплект со сборкой через проект строки отчета и реализацию сборки.
ВЫБРАТЬ
Сборки.Ссылка,
Исходные.ДокументРОТ,
Сборки.Катюша_Реализация,
ВЫБОР
КОГДА Сборки.Катюша_Реализация.Контрагент
<> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Сборки.Катюша_Реализация.Контрагент
ИНАЧЕ Исходные.Партнер
КОНЕЦ,
Сборки.Номенклатура,
Сборки.Характеристика,
ВЫБОР
КОГДА Сборки.Катюша_Реализация.Дата > ДАТАВРЕМЯ(1, 1, 1)
ТОГДА Сборки.Катюша_Реализация.Дата
ИНАЧЕ Исходные.ДатаОтгрузкиВСтроке
КОНЕЦ,
Исходные.ПроектИзРегистра,
Исходные.ПроектИзРегистра,
ВЫБОР
КОГДА ЕСТЬNULL(Сборки.Количество, 0) = 0
ТОГДА 1
ИНАЧЕ Сборки.Количество
КОНЕЦ
ИЗ
ВТ_АП_Исходные КАК Исходные
// +++DimRa 24.09.26
// Сначала отбираем единственную проектную сборку, затем читаем ее данные.
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ОднозначныеСборкиПроектов КАК ОднозначныеСборки
ПО Исходные.Номенклатура = ОднозначныеСборки.Комплект
И Исходные.ПроектИзРегистра = ОднозначныеСборки.Проект
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_СборкиПериода КАК Сборки
ПО ОднозначныеСборки.ДокументСборки = Сборки.Ссылка
И Исходные.Номенклатура = Сборки.Номенклатура
// ---DimRa
ГДЕ
ТИПЗНАЧЕНИЯ(Исходные.ДокументРОТ)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
И Исходные.ПроектИзРегистра
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
И Сборки.Проведен
И Сборки.ХозяйственнаяОперация
= ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СборкаТоваров)
И Сборки.Катюша_Реализация
<> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
ИНДЕКСИРОВАТЬ ПО
Комплект
;
////////////////////////////////////////////////////////////////////////////////
// Нормализуем проект: если найден оперативный заказ, берем его основание-проект.
ВЫБРАТЬ
Сборки.ДокументСборки КАК ДокументСборки,
Сборки.ДокументРОТ КАК ДокументРОТ,
Сборки.Реализация КАК Реализация,
Сборки.КонтрагентРеализации КАК КонтрагентРеализации,
Сборки.Комплект КАК Комплект,
Сборки.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Сборки.ДатаЦены КАК ДатаЦены,
ВЫБОР
КОГДА Сборки.Проект.Катюша_ФормаОИР
ИЛИ Сборки.Проект.Катюша_ФормаКатюши
ТОГДА Сборки.Проект
КОГДА ТИПЗНАЧЕНИЯ(Сборки.Проект.ДокументОснование)
= ТИП(Документ.ЗаказКлиента)
И Сборки.Проект.ДокументОснование
<> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
ТОГДА ВЫРАЗИТЬ(
Сборки.Проект.ДокументОснование
КАК Документ.ЗаказКлиента
)
ИНАЧЕ Сборки.Проект
КОНЕЦ КАК Проект,
Сборки.ПроектИзРегистра КАК ПроектИзРегистра,
Сборки.КоличествоКомплектов КАК КоличествоКомплектов
ПОМЕСТИТЬ ВТ_АП_СборкиСПроектами
ИЗ
ВТ_АП_Сборки КАК Сборки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Сборки.ДокументРОТ КАК ДокументРОТ,
Сборки.Реализация КАК Реализация,
Сборки.Комплект КАК Комплект,
Сборки.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Сборки.Проект КАК Проект,
Сборки.ПроектИзРегистра КАК ПроектИзРегистра,
Сборки.КонтрагентРеализации КАК КонтрагентРеализации,
Сборки.ДатаЦены КАК ДатаЦены,
СУММА(Сборки.КоличествоКомплектов) КАК КоличествоКомплектов
ПОМЕСТИТЬ ВТ_АП_ИтогиСборок
ИЗ
ВТ_АП_СборкиСПроектами КАК Сборки
СГРУППИРОВАТЬ ПО
Сборки.ДокументРОТ,
Сборки.Реализация,
Сборки.Комплект,
Сборки.ХарактеристикаКомплекта,
Сборки.Проект,
Сборки.ПроектИзРегистра,
Сборки.КонтрагентРеализации,
Сборки.ДатаЦены
ИНДЕКСИРОВАТЬ ПО
Реализация, Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// +++DimRa 25.09.26
// Резервный состав берём только для уже отобранной номенклатуры из папки
// "SINDOH Комплекты". Документные сборки сохраняют приоритет.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Варианты.Ссылка КАК ВариантКомплектации,
Варианты.Владелец КАК Комплект,
ВЫБОР
КОГДА Варианты.Основной
ТОГДА 0
ИНАЧЕ 1
КОНЕЦ КАК ПриоритетВарианта
ПОМЕСТИТЬ ВТ_АП_КандидатыВариантовСправочника
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
Исходные.Номенклатура КАК Номенклатура
ИЗ
ВТ_АП_Исходные КАК Исходные) КАК ИспользуемаяНоменклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК Варианты
ПО ИспользуемаяНоменклатура.Номенклатура = Варианты.Владелец
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Состав
ПО Варианты.Ссылка = Состав.Ссылка
ГДЕ
НЕ Варианты.ПометкаУдаления
// +++DimRa 28.09.26
И (Варианты.Владелец.Родитель.Наименование В ("SINDOH Комплекты", "Катюша Комплекты")
ИЛИ Варианты.Владелец.Наименование В (
"МФУ Sindoh D332e c автоподатчиком DF-633",
"МФУ ""Катюша"" M335 (артикул: M335-pp+BMM348+HXM348+HKM348р)",
"Многофункциональное устройство (МФУ) Катюша",
"Монохромное многофункциональное устройство формата А4 ""Катюша"" М240",
"Монохромное многофункциональное устройство формата АЗ Катюша M450 с дополнительными лотками",
"Принтер Катюша Р140 (1ГГц)+BMM240",
"МФУ (тип 1)")
ИЛИ Варианты.Владелец.Наименование ПОДОБНО "МФУ%P140-pp+картридж"
ИЛИ Варианты.Владелец.Наименование ПОДОБНО "Принтер Страна происхождения:%Российская Федерация%10622218"
ИЛИ Варианты.Владелец.Наименование ПОДОБНО "МФУ Катюша М140 + модуль%BMM240"
ИЛИ Варианты.Владелец.Наименование ПОДОБНО "Принтер Катюша Р133 + модуль%BMM240"
ИЛИ Варианты.Владелец.Наименование ПОДОБНО "Принтер Катюша Р140 + модуль%BMM240")
// ---DimRa
И Состав.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И Состав.Номенклатура <> Варианты.Владелец
И ЕСТЬNULL(Состав.Количество, 0) > 0
ИНДЕКСИРОВАТЬ ПО
Комплект,
ВариантКомплектации
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.Комплект КАК Комплект,
МИНИМУМ(Кандидаты.ПриоритетВарианта) КАК ПриоритетВарианта
ПОМЕСТИТЬ ВТ_АП_ПриоритетВариантовСправочника
ИЗ
ВТ_АП_КандидатыВариантовСправочника КАК Кандидаты
СГРУППИРОВАТЬ ПО
Кандидаты.Комплект
ИНДЕКСИРОВАТЬ ПО
Комплект
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.Комплект КАК Комплект,
МИНИМУМ(Кандидаты.ВариантКомплектации) КАК ВариантКомплектации
ПОМЕСТИТЬ ВТ_АП_ВыбранныеВариантыСправочника
ИЗ
ВТ_АП_КандидатыВариантовСправочника КАК Кандидаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПриоритетВариантовСправочника КАК Приоритеты
ПО Кандидаты.Комплект = Приоритеты.Комплект
И Кандидаты.ПриоритетВарианта = Приоритеты.ПриоритетВарианта
СГРУППИРОВАТЬ ПО
Кандидаты.Комплект
ИНДЕКСИРОВАТЬ ПО
Комплект
;
////////////////////////////////////////////////////////////////////////////////
// +++DimRa 28.09.26
// Вариант комплектации может быть записан сразу на партию аппаратов.
// Для отчета приводим весь его состав к одному аппарату.
ВЫБРАТЬ
Выбранные.Комплект КАК Комплект,
Выбранные.ВариантКомплектации КАК ВариантКомплектации,
СУММА(ВЫБОР
КОГДА Состав.Номенклатура.Катюша_АппаратРМ =
ЗНАЧЕНИЕ(Перечисление.ITR_ВидыАппаратовРМ.Аппарат)
ТОГДА ЕСТЬNULL(Состав.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоАппаратов
ПОМЕСТИТЬ ВТ_АП_НормализаторыВариантовСправочника
ИЗ
ВТ_АП_ВыбранныеВариантыСправочника КАК Выбранные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Состав
ПО Выбранные.ВариантКомплектации = Состав.Ссылка
ГДЕ
Состав.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И Состав.Номенклатура <> Выбранные.Комплект
И ЕСТЬNULL(Состав.Количество, 0) > 0
СГРУППИРОВАТЬ ПО
Выбранные.Комплект,
Выбранные.ВариантКомплектации
ИНДЕКСИРОВАТЬ ПО
Комплект
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Выбранные.Комплект КАК Комплект,
Состав.Номенклатура КАК Комплектующая,
Состав.Характеристика КАК ХарактеристикаКомплектующей,
СУММА(ВЫБОР
// +++DimRa 28.09.26
КОГДА ЕСТЬNULL(Нормализаторы.КоличествоАппаратов, 0) > 0
ТОГДА ЕСТЬNULL(Состав.Количество, 0)
/ Нормализаторы.КоличествоАппаратов
КОГДА ЕСТЬNULL(Варианты.Количество, 0) = 0
ТОГДА ЕСТЬNULL(Состав.Количество, 0)
ИНАЧЕ ЕСТЬNULL(Состав.Количество, 0) / Варианты.Количество
// ---DimRa
КОНЕЦ) КАК КоличествоКомплектующей,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Состав.ДоляСтоимости, 0) > 0
ТОГДА Состав.ДоляСтоимости
ИНАЧЕ 0
КОНЕЦ) КАК ДоляСтоимости
ПОМЕСТИТЬ ВТ_АП_СоставВариантовСправочника
ИЗ
ВТ_АП_ВыбранныеВариантыСправочника КАК Выбранные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК Варианты
ПО Выбранные.ВариантКомплектации = Варианты.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Состав
ПО Выбранные.ВариантКомплектации = Состав.Ссылка
// +++DimRa 28.09.26
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_НормализаторыВариантовСправочника КАК Нормализаторы
ПО Выбранные.Комплект = Нормализаторы.Комплект
И Выбранные.ВариантКомплектации = Нормализаторы.ВариантКомплектации
// ---DimRa
ГДЕ
Состав.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И Состав.Номенклатура <> Выбранные.Комплект
И ЕСТЬNULL(Состав.Количество, 0) > 0
СГРУППИРОВАТЬ ПО
Выбранные.Комплект,
Состав.Номенклатура,
Состав.Характеристика
ИНДЕКСИРОВАТЬ ПО
Комплект
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Состав.Комплект КАК Комплект,
СУММА(Состав.КоличествоКомплектующей) КАК КоличествоСостава,
СУММА(Состав.ДоляСтоимости) КАК ДоляСтоимостиИтого
ПОМЕСТИТЬ ВТ_АП_ИтогиСоставаВариантовСправочника
ИЗ
ВТ_АП_СоставВариантовСправочника КАК Состав
СГРУППИРОВАТЬ ПО
Состав.Комплект
ИНДЕКСИРОВАТЬ ПО
Комплект
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
// Фактический состав комплекта.
ВЫБРАТЬ
Сборки.ДокументРОТ КАК ДокументРОТ,
Сборки.Реализация КАК Реализация,
Сборки.Комплект КАК Комплект,
Сборки.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Сборки.Проект КАК Проект,
Сборки.ПроектИзРегистра КАК ПроектИзРегистра,
Сборки.КонтрагентРеализации КАК КонтрагентРеализации,
Сборки.ДатаЦены КАК ДатаЦены,
Состав.Номенклатура КАК Комплектующая,
Состав.Характеристика КАК ХарактеристикаКомплектующей,
Состав.Серия КАК СерияКомплектующей,
СУММА(ЕСТЬNULL(Состав.Количество, 0))
/ ИтогиСборок.КоличествоКомплектов КАК КоличествоКомплектующей,
СУММА(
ЕСТЬNULL(Состав.ДоляСтоимости, 0)
* Сборки.КоличествоКомплектов
) / ИтогиСборок.КоличествоКомплектов КАК ДоляСтоимости
ПОМЕСТИТЬ ВТ_АП_Комплектующие
ИЗ
ВТ_АП_СборкиСПроектами КАК Сборки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СборкаТоваров.Товары КАК Состав
ПО Сборки.ДокументСборки = Состав.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиСборок КАК ИтогиСборок
ПО Сборки.ДокументРОТ = ИтогиСборок.ДокументРОТ
И Сборки.Реализация = ИтогиСборок.Реализация
И Сборки.Комплект = ИтогиСборок.Комплект
И Сборки.ХарактеристикаКомплекта = ИтогиСборок.ХарактеристикаКомплекта
И Сборки.Проект = ИтогиСборок.Проект
И Сборки.ПроектИзРегистра = ИтогиСборок.ПроектИзРегистра
И Сборки.КонтрагентРеализации = ИтогиСборок.КонтрагентРеализации
И Сборки.ДатаЦены = ИтогиСборок.ДатаЦены
ГДЕ
Состав.Номенклатура
<> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
Сборки.ДокументРОТ,
Сборки.Реализация,
Сборки.Комплект,
Сборки.ХарактеристикаКомплекта,
Сборки.Проект,
Сборки.ПроектИзРегистра,
Сборки.КонтрагентРеализации,
Сборки.ДатаЦены,
Состав.Номенклатура,
Состав.Характеристика,
Состав.Серия,
ИтогиСборок.КоличествоКомплектов
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Исходные.ДокументРОТ,
ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка),
Исходные.Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка),
Исходные.ПроектИзРегистра,
Исходные.ПроектИзРегистра,
ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка),
Исходные.ДатаОтгрузкиВСтроке,
СоставСправочника.Комплектующая,
СоставСправочника.ХарактеристикаКомплектующей,
ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка),
СоставСправочника.КоличествоКомплектующей,
ВЫБОР
КОГДА ИтогиСостава.ДоляСтоимостиИтого > 0
ТОГДА СоставСправочника.ДоляСтоимости / ИтогиСостава.ДоляСтоимостиИтого
КОГДА ИтогиСостава.КоличествоСостава > 0
ТОГДА СоставСправочника.КоличествоКомплектующей / ИтогиСостава.КоличествоСостава
ИНАЧЕ 0
КОНЕЦ
ИЗ
// +++DimRa 28.09.26
// Один комплект создает один набор строк состава, даже если исходный регистр
// содержит несколько серийных строк этого же документа.
(ВЫБРАТЬ
Строки.ДокументРОТ КАК ДокументРОТ,
Строки.Номенклатура КАК Номенклатура,
Строки.ПроектИзРегистра КАК ПроектИзРегистра,
МАКСИМУМ(Строки.ДатаОтгрузкиВСтроке) КАК ДатаОтгрузкиВСтроке
ИЗ
ВТ_АП_Исходные КАК Строки
СГРУППИРОВАТЬ ПО
Строки.ДокументРОТ,
Строки.Номенклатура,
Строки.ПроектИзРегистра) КАК Исходные
// ---DimRa
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_СоставВариантовСправочника КАК СоставСправочника
ПО Исходные.Номенклатура = СоставСправочника.Комплект
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиСоставаВариантовСправочника КАК ИтогиСостава
ПО СоставСправочника.Комплект = ИтогиСостава.Комплект
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_СборкиСПроектами КАК НайденнаяСборка
ПО Исходные.ДокументРОТ = НайденнаяСборка.ДокументРОТ
И Исходные.Номенклатура = НайденнаяСборка.Комплект
И Исходные.ПроектИзРегистра = НайденнаяСборка.ПроектИзРегистра
ГДЕ
НайденнаяСборка.ДокументРОТ ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Комплект
;
////////////////////////////////////////////////////////////////////////////////
// Кандидаты цен из проекта.
ВЫБРАТЬ
Комплектующие.ДокументРОТ КАК ДокументРОТ,
Комплектующие.Комплект КАК Комплект,
Комплектующие.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Комплектующие.Проект КАК Проект,
Комплектующие.КонтрагентРеализации КАК КонтрагентРеализации,
Комплектующие.ДатаЦены КАК ДатаЦены,
Комплектующие.Комплектующая КАК Комплектующая,
Комплектующие.ХарактеристикаКомплектующей
КАК ХарактеристикаКомплектующей,
ВЫБОР
КОГДА ТоварыПроекта.НоменклатураНабора
= Комплектующие.Комплект
И ТоварыПроекта.ХарактеристикаНабора
= Комплектующие.ХарактеристикаКомплекта
И ТоварыПроекта.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 1
КОГДА ТоварыПроекта.НоменклатураНабора
= Комплектующие.Комплект
И ТоварыПроекта.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 2
КОГДА ТоварыПроекта.НоменклатураНабора
= Комплектующие.Комплект
ТОГДА 3
КОГДА ТоварыПроекта.НоменклатураНабора
= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И ТоварыПроекта.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 4
КОГДА ТоварыПроекта.НоменклатураНабора
= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ТОГДА 5
КОГДА ТоварыПроекта.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 6
ИНАЧЕ 7
КОНЕЦ + ВЫБОР
КОГДА ТоварыПроекта.Ссылка = ПроектыРаспоряжений.Проект ТОГДА 0
ИНАЧЕ 10
КОНЕЦ КАК ПриоритетСоответствия,
// +++DimRa 11.09.26
// Цена строки приоритетнее суммы, делённой на количество.
ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяЦена, 0) > 0
ТОГДА ТоварыПроекта.Катюша_ФактическаяЦена * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяСумма, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Катюша_ФактическаяСумма / ТоварыПроекта.Количество
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяЦенаОтгрузки, 0) > 0
ТОГДА ТоварыПроекта.Катюша_ЗапрашиваемаяЦенаОтгрузки * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяСуммаОтгрузки, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Катюша_ЗапрашиваемаяСуммаОтгрузки / ТоварыПроекта.Количество
КОГДА ЕСТЬNULL(ТоварыПроекта.Цена, 0) > 0
ТОГДА ТоварыПроекта.Цена * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыПроекта.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыПроекта.КоличествоУпаковок / ТоварыПроекта.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыПроекта.Сумма, 0) > 0 И ЕСТЬNULL(ТоварыПроекта.Количество, 0) <> 0
ТОГДА ТоварыПроекта.Сумма / ТоварыПроекта.Количество
ИНАЧЕ 0
КОНЕЦ КАК ЦенаЕдиницыПроекта
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_КандидатыЦенПроекта
ИЗ
ВТ_АП_Комплектующие КАК Комплектующие
// +++DimRa 11.09.26
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ПроектыРаспоряжений КАК ПроектыРаспоряжений
ПО Комплектующие.ДокументРОТ = ПроектыРаспоряжений.ДокументРОТ
И Комплектующие.Комплект = ПроектыРаспоряжений.Номенклатура
// ---DimRa
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.ЗаказКлиента.Товары КАК ТоварыПроекта
ПО (Комплектующие.Проект = ТоварыПроекта.Ссылка
ИЛИ ПроектыРаспоряжений.Проект = ТоварыПроекта.Ссылка)
И Комплектующие.Комплектующая = ТоварыПроекта.Номенклатура
ГДЕ
НЕ ТоварыПроекта.Отменено
И (ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяЦена, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыПроекта.Катюша_ФактическаяСумма, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяЦенаОтгрузки, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыПроекта.Катюша_ЗапрашиваемаяСуммаОтгрузки, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыПроекта.Цена, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыПроекта.Сумма, 0) <> 0)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Комплект КАК Комплект,
Кандидаты.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Кандидаты.Проект КАК Проект,
Кандидаты.КонтрагентРеализации КАК КонтрагентРеализации,
Кандидаты.ДатаЦены КАК ДатаЦены,
Кандидаты.Комплектующая КАК Комплектующая,
Кандидаты.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
МИНИМУМ(Кандидаты.ПриоритетСоответствия) КАК ПриоритетСоответствия
ПОМЕСТИТЬ ВТ_АП_ПриоритетЦеныПроекта
ИЗ
ВТ_АП_КандидатыЦенПроекта КАК Кандидаты
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Комплект,
Кандидаты.ХарактеристикаКомплекта,
Кандидаты.Проект,
Кандидаты.КонтрагентРеализации,
Кандидаты.ДатаЦены,
Кандидаты.Комплектующая,
Кандидаты.ХарактеристикаКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Комплект КАК Комплект,
Кандидаты.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Кандидаты.Проект КАК Проект,
Кандидаты.КонтрагентРеализации КАК КонтрагентРеализации,
Кандидаты.ДатаЦены КАК ДатаЦены,
Кандидаты.Комплектующая КАК Комплектующая,
Кандидаты.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
МАКСИМУМ(Кандидаты.ЦенаЕдиницыПроекта) КАК ЦенаЕдиницыПроекта
ПОМЕСТИТЬ ВТ_АП_ЦеныПроекта
ИЗ
ВТ_АП_КандидатыЦенПроекта КАК Кандидаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПриоритетЦеныПроекта КАК Приоритет
ПО Кандидаты.ДокументРОТ = Приоритет.ДокументРОТ
И Кандидаты.Комплект = Приоритет.Комплект
И Кандидаты.ХарактеристикаКомплекта
= Приоритет.ХарактеристикаКомплекта
И Кандидаты.Проект = Приоритет.Проект
И Кандидаты.КонтрагентРеализации
= Приоритет.КонтрагентРеализации
И Кандидаты.ДатаЦены = Приоритет.ДатаЦены
И Кандидаты.Комплектующая = Приоритет.Комплектующая
И Кандидаты.ХарактеристикаКомплектующей
= Приоритет.ХарактеристикаКомплектующей
И Кандидаты.ПриоритетСоответствия
= Приоритет.ПриоритетСоответствия
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Комплект,
Кандидаты.ХарактеристикаКомплекта,
Кандидаты.Проект,
Кандидаты.КонтрагентРеализации,
Кандидаты.ДатаЦены,
Кандидаты.Комплектующая,
Кандидаты.ХарактеристикаКомплектующей
ИМЕЮЩИЕ
МИНИМУМ(Кандидаты.ЦенаЕдиницыПроекта) > 0
И МИНИМУМ(Кандидаты.ЦенаЕдиницыПроекта) = МАКСИМУМ(Кандидаты.ЦенаЕдиницыПроекта)
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Кандидаты цен из реализации.
ВЫБРАТЬ
Комплектующие.ДокументРОТ КАК ДокументРОТ,
Комплектующие.Комплект КАК Комплект,
Комплектующие.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Комплектующие.Проект КАК Проект,
Комплектующие.КонтрагентРеализации КАК КонтрагентРеализации,
Комплектующие.ДатаЦены КАК ДатаЦены,
Комплектующие.Комплектующая КАК Комплектующая,
Комплектующие.ХарактеристикаКомплектующей
КАК ХарактеристикаКомплектующей,
ВЫБОР
КОГДА ТоварыРеализации.НоменклатураНабора
= Комплектующие.Комплект
И ТоварыРеализации.ХарактеристикаНабора
= Комплектующие.ХарактеристикаКомплекта
И ТоварыРеализации.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 1
КОГДА ТоварыРеализации.НоменклатураНабора
= Комплектующие.Комплект
И ТоварыРеализации.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 2
КОГДА ТоварыРеализации.НоменклатураНабора
= Комплектующие.Комплект
ТОГДА 3
КОГДА ТоварыРеализации.НоменклатураНабора
= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И ТоварыРеализации.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 4
КОГДА ТоварыРеализации.НоменклатураНабора
= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ТОГДА 5
КОГДА ТоварыРеализации.Характеристика
= Комплектующие.ХарактеристикаКомплектующей
ТОГДА 6
ИНАЧЕ 7
КОНЕЦ КАК ПриоритетСоответствия,
// +++DimRa 11.09.26
// Цена строки приоритетнее суммы, делённой на количество.
ВЫБОР
КОГДА ЕСТЬNULL(ТоварыРеализации.Цена, 0) > 0
ТОГДА ТоварыРеализации.Цена * (ВЫБОР
КОГДА ЕСТЬNULL(ТоварыРеализации.Количество, 0) <> 0
И ЕСТЬNULL(ТоварыРеализации.КоличествоУпаковок, 0) <> 0
ТОГДА ТоварыРеализации.КоличествоУпаковок / ТоварыРеализации.Количество
ИНАЧЕ 1
КОНЕЦ)
КОГДА ЕСТЬNULL(ТоварыРеализации.Сумма, 0) > 0 И ЕСТЬNULL(ТоварыРеализации.Количество, 0) <> 0
ТОГДА ТоварыРеализации.Сумма / ТоварыРеализации.Количество
ИНАЧЕ 0
КОНЕЦ КАК ЦенаЕдиницыРеализации
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_КандидатыЦенРеализации
ИЗ
ВТ_АП_Комплектующие КАК Комплектующие
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.РеализацияТоваровУслуг.Товары КАК ТоварыРеализации
ПО ТоварыРеализации.Ссылка = Комплектующие.Реализация
И Комплектующие.Комплектующая = ТоварыРеализации.Номенклатура
ГДЕ
ЕСТЬNULL(ТоварыРеализации.Цена, 0) <> 0
ИЛИ ЕСТЬNULL(ТоварыРеализации.Сумма, 0) <> 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Комплект КАК Комплект,
Кандидаты.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Кандидаты.Проект КАК Проект,
Кандидаты.КонтрагентРеализации КАК КонтрагентРеализации,
Кандидаты.ДатаЦены КАК ДатаЦены,
Кандидаты.Комплектующая КАК Комплектующая,
Кандидаты.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
МИНИМУМ(Кандидаты.ПриоритетСоответствия) КАК ПриоритетСоответствия
ПОМЕСТИТЬ ВТ_АП_ПриоритетЦеныРеализации
ИЗ
ВТ_АП_КандидатыЦенРеализации КАК Кандидаты
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Комплект,
Кандидаты.ХарактеристикаКомплекта,
Кандидаты.Проект,
Кандидаты.КонтрагентРеализации,
Кандидаты.ДатаЦены,
Кандидаты.Комплектующая,
Кандидаты.ХарактеристикаКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Кандидаты.ДокументРОТ КАК ДокументРОТ,
Кандидаты.Комплект КАК Комплект,
Кандидаты.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Кандидаты.Проект КАК Проект,
Кандидаты.КонтрагентРеализации КАК КонтрагентРеализации,
Кандидаты.ДатаЦены КАК ДатаЦены,
Кандидаты.Комплектующая КАК Комплектующая,
Кандидаты.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
МАКСИМУМ(Кандидаты.ЦенаЕдиницыРеализации) КАК ЦенаЕдиницыРеализации
ПОМЕСТИТЬ ВТ_АП_ЦеныРеализации
ИЗ
ВТ_АП_КандидатыЦенРеализации КАК Кандидаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПриоритетЦеныРеализации КАК Приоритет
ПО Кандидаты.ДокументРОТ = Приоритет.ДокументРОТ
И Кандидаты.Комплект = Приоритет.Комплект
И Кандидаты.ХарактеристикаКомплекта
= Приоритет.ХарактеристикаКомплекта
И Кандидаты.Проект = Приоритет.Проект
И Кандидаты.КонтрагентРеализации
= Приоритет.КонтрагентРеализации
И Кандидаты.ДатаЦены = Приоритет.ДатаЦены
И Кандидаты.Комплектующая = Приоритет.Комплектующая
И Кандидаты.ХарактеристикаКомплектующей
= Приоритет.ХарактеристикаКомплектующей
И Кандидаты.ПриоритетСоответствия
= Приоритет.ПриоритетСоответствия
СГРУППИРОВАТЬ ПО
Кандидаты.ДокументРОТ,
Кандидаты.Комплект,
Кандидаты.ХарактеристикаКомплекта,
Кандидаты.Проект,
Кандидаты.КонтрагентРеализации,
Кандидаты.ДатаЦены,
Кандидаты.Комплектующая,
Кандидаты.ХарактеристикаКомплектующей
ИМЕЮЩИЕ
МИНИМУМ(Кандидаты.ЦенаЕдиницыРеализации) > 0
И МИНИМУМ(Кандидаты.ЦенаЕдиницыРеализации) = МАКСИМУМ(Кандидаты.ЦенаЕдиницыРеализации)
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Итоги документных цен для сохранения только нераспределённого остатка.
ВЫБРАТЬ
Комплектующие.ДокументРОТ КАК ДокументРОТ,
Комплектующие.Комплект КАК Комплект,
Комплектующие.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Комплектующие.Проект КАК Проект,
Комплектующие.КонтрагентРеализации КАК КонтрагентРеализации,
Комплектующие.ДатаЦены КАК ДатаЦены,
КОЛИЧЕСТВО(*) КАК КоличествоСтрок,
СУММА(
ВЫБОР
КОГДА ЕСТЬNULL(ЦеныПроекта.ЦенаЕдиницыПроекта, 0) > 0
ИЛИ ЕСТЬNULL(ЦеныРеализации.ЦенаЕдиницыРеализации, 0) > 0
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
) КАК КоличествоСтрокСЦенойДокумента ,
// +++DimRa 11.09.26
СУММА(Комплектующие.КоличествоКомплектующей * ВЫБОР
КОГДА ЕСТЬNULL(ЦеныПроекта.ЦенаЕдиницыПроекта, 0) > 0
ТОГДА ЦеныПроекта.ЦенаЕдиницыПроекта
ИНАЧЕ ЕСТЬNULL(ЦеныРеализации.ЦенаЕдиницыРеализации, 0)
КОНЕЦ) КАК СтоимостьДокументовНаКомплект
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ИтогиЦенДокументов
ИЗ
ВТ_АП_Комплектующие КАК Комплектующие
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПроекта КАК ЦеныПроекта
ПО Комплектующие.ДокументРОТ = ЦеныПроекта.ДокументРОТ
И Комплектующие.Комплект = ЦеныПроекта.Комплект
И Комплектующие.ХарактеристикаКомплекта
= ЦеныПроекта.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныПроекта.Проект
И Комплектующие.КонтрагентРеализации
= ЦеныПроекта.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныПроекта.ДатаЦены
И Комплектующие.Комплектующая = ЦеныПроекта.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей
= ЦеныПроекта.ХарактеристикаКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныРеализации КАК ЦеныРеализации
ПО Комплектующие.ДокументРОТ = ЦеныРеализации.ДокументРОТ
И Комплектующие.Комплект = ЦеныРеализации.Комплект
И Комплектующие.ХарактеристикаКомплекта
= ЦеныРеализации.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныРеализации.Проект
И Комплектующие.КонтрагентРеализации
= ЦеныРеализации.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныРеализации.ДатаЦены
И Комплектующие.Комплектующая = ЦеныРеализации.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей
= ЦеныРеализации.ХарактеристикаКомплектующей
СГРУППИРОВАТЬ ПО
Комплектующие.ДокументРОТ,
Комплектующие.Комплект,
Комплектующие.ХарактеристикаКомплекта,
Комплектующие.Проект,
Комплектующие.КонтрагентРеализации,
Комплектующие.ДатаЦены
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Выбираем цену всего комплекта по контрагенту реализации:
// дистрибьюторскую, партнерскую либо РРЦ. Доли позиций ниже всегда
// рассчитываются отдельно по дистрибьюторским ценам.
ВЫБРАТЬ
Комплектующие.ДокументРОТ КАК ДокументРОТ,
Комплектующие.Комплект КАК Комплект,
Комплектующие.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Комплектующие.Проект КАК Проект,
Комплектующие.КонтрагентРеализации КАК КонтрагентРеализации,
Комплектующие.ДатаЦены КАК ДатаЦены,
Комплектующие.Комплектующая КАК Комплектующая,
Комплектующие.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Комплектующие.СерияКомплектующей КАК СерияКомплектующей,
Комплектующие.КоличествоКомплектующей КАК КоличествоКомплектующей,
Комплектующие.ДоляСтоимости КАК ДоляСтоимости,
ВидыЦен.Ссылка КАК ВидЦены,
ВЫБОР
КОГДА ВидыНоменклатуры.НастройкиКлючаЦенПоХарактеристике
= ЗНАЧЕНИЕ(Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать)
ИЛИ Комплектующие.ХарактеристикаКомплектующей
= ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
ТОГДА ЗНАЧЕНИЕ(
Справочник.ХарактеристикиНоменклатурыДляЦенообразования.ПустаяСсылка
)
ИНАЧЕ Комплектующие.ХарактеристикаКомплектующей.ХарактеристикаНоменклатурыДляЦенообразования
КОНЕЦ КАК ХарактеристикаЦО,
ВЫБОР
КОГДА ВидыНоменклатуры.НастройкиКлючаЦенПоСерии
= ЗНАЧЕНИЕ(Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать)
ИЛИ Комплектующие.СерияКомплектующей
= ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
ТОГДА ЗНАЧЕНИЕ(
Справочник.СерииНоменклатурыДляЦенообразования.ПустаяСсылка
)
ИНАЧЕ Комплектующие.СерияКомплектующей.СерияНоменклатурыДляЦенообразования
КОНЕЦ КАК СерияЦО
ПОМЕСТИТЬ ВТ_АП_КомплектующиеДляПрайса
ИЗ
ВТ_АП_Комплектующие КАК Комплектующие
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
ПО Комплектующие.Комплектующая.ВидНоменклатуры
= ВидыНоменклатуры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО ВидыЦен.Идентификатор = ВЫБОР
КОГДА Комплектующие.КонтрагентРеализации.Катюша_Дистрибьютор
ТОГДА "ЦенаДистриб"
КОГДА Комплектующие.КонтрагентРеализации.Катюша_Партнер
ТОГДА "ЦенаПартнерская"
ИНАЧЕ "ЦенаРРЦ"
КОНЕЦ
;
////////////////////////////////////////////////////////////////////////////////
// Последняя действующая цена 2.5 на дату реализации.
// +++DimRa 17.09.26
// Историю цен читаем один раз только для нужных комплектующих.
ВЫБРАТЬ
Цены.Активность КАК Активность,
Цены.ВидЦены КАК ВидЦены,
Цены.Номенклатура КАК Номенклатура,
Цены.Период КАК Период,
Цены.СерияЦО КАК СерияЦО,
Цены.Упаковка КАК Упаковка,
Цены.УпаковкаЦО КАК УпаковкаЦО,
Цены.ХарактеристикаЦО КАК ХарактеристикаЦО,
Цены.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ИсторияЦенРОТ25
ИЗ
РегистрСведений.ЦеныНоменклатуры25 КАК Цены
ГДЕ
Цены.Номенклатура В
(ВЫБРАТЬ Позиции.Комплектующая ИЗ ВТ_АП_КомплектующиеДляПрайса КАК Позиции)
ИНДЕКСИРОВАТЬ ПО
Номенклатура, ВидЦены, Период
;
ВЫБРАТЬ
Цены.Активность КАК Активность,
Цены.ВидЦены КАК ВидЦены,
Цены.Номенклатура КАК Номенклатура,
Цены.Период КАК Период,
Цены.Упаковка КАК Упаковка,
Цены.Характеристика КАК Характеристика,
Цены.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ИсторияЦенРОТСтарые
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК Цены
ГДЕ
Цены.Номенклатура В
(ВЫБРАТЬ Позиции.Комплектующая ИЗ ВТ_АП_КомплектующиеДляПрайса КАК Позиции)
ИНДЕКСИРОВАТЬ ПО
Номенклатура, ВидЦены, Период
;
// ---DimRa
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
Позиции.Комплектующая КАК Комплектующая,
Позиции.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей КАК СерияКомплектующей,
// +++DimRa 14.09.26
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены = Позиции.ВидЦены
ТОГДА Цены.Период
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ) КАК ПериодЦены,
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
ТОГДА Цены.Период
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ) КАК ПериодЦеныДистриб
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ПериодыЦен25
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсторияЦенРОТ25 КАК Цены
ПО Цены.Номенклатура = Позиции.Комплектующая
И Цены.ХарактеристикаЦО = Позиции.ХарактеристикаЦО
И Цены.СерияЦО = Позиции.СерияЦО
И Цены.УпаковкаЦО
= ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
// +++DimRa 14.09.26
И (Цены.ВидЦены = Позиции.ВидЦены
ИЛИ Цены.ВидЦены.Идентификатор = "ЦенаДистриб")
// ---DimRa
И Цены.Период <= КОНЕЦПЕРИОДА(Позиции.ДатаЦены, ДЕНЬ)
И Цены.Активность
СГРУППИРОВАТЬ ПО
Позиции.ДокументРОТ,
Позиции.Комплект,
Позиции.ХарактеристикаКомплекта,
Позиции.Проект,
Позиции.КонтрагентРеализации,
Позиции.ДатаЦены,
Позиции.Комплектующая,
Позиции.ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
Позиции.Комплектующая КАК Комплектующая,
Позиции.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей КАК СерияКомплектующей,
// +++DimRa 14.09.26
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены = Позиции.ВидЦены
ТОГДА ЕСТЬNULL(Цены.Цена, 0) * ВЫБОР
КОГДА ЕСТЬNULL(Цены.Упаковка.Числитель, 0) > 0
И ЕСТЬNULL(Цены.Упаковка.Знаменатель, 0) > 0
ТОГДА Цены.Упаковка.Знаменатель / Цены.Упаковка.Числитель
ИНАЧЕ 1
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ) КАК ЦенаПрайса25,
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
ТОГДА ЕСТЬNULL(Цены.Цена, 0) * ВЫБОР
КОГДА ЕСТЬNULL(Цены.Упаковка.Числитель, 0) > 0
И ЕСТЬNULL(Цены.Упаковка.Знаменатель, 0) > 0
ТОГДА Цены.Упаковка.Знаменатель / Цены.Упаковка.Числитель
ИНАЧЕ 1
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ) КАК ЦенаДистриб25
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ЦеныПрайса25
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПериодыЦен25 КАК Периоды
ПО Позиции.ДокументРОТ = Периоды.ДокументРОТ
И Позиции.Комплект = Периоды.Комплект
И Позиции.ХарактеристикаКомплекта = Периоды.ХарактеристикаКомплекта
И Позиции.Проект = Периоды.Проект
И Позиции.КонтрагентРеализации = Периоды.КонтрагентРеализации
И Позиции.ДатаЦены = Периоды.ДатаЦены
И Позиции.Комплектующая = Периоды.Комплектующая
И Позиции.ХарактеристикаКомплектующей
= Периоды.ХарактеристикаКомплектующей
И Позиции.СерияКомплектующей = Периоды.СерияКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсторияЦенРОТ25 КАК Цены
ПО Цены.Номенклатура = Позиции.Комплектующая
И Цены.ХарактеристикаЦО = Позиции.ХарактеристикаЦО
И Цены.СерияЦО = Позиции.СерияЦО
И Цены.УпаковкаЦО
= ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
// +++DimRa 14.09.26
И ((Цены.ВидЦены = Позиции.ВидЦены
И Цены.Период = Периоды.ПериодЦены)
ИЛИ (Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
И Цены.Период = Периоды.ПериодЦеныДистриб))
// ---DimRa
И Цены.Активность
СГРУППИРОВАТЬ ПО
Позиции.ДокументРОТ,
Позиции.Комплект,
Позиции.ХарактеристикаКомплекта,
Позиции.Проект,
Позиции.КонтрагентРеализации,
Позиции.ДатаЦены,
Позиции.Комплектующая,
Позиции.ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Последняя цена прежнего механизма ценообразования.
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
Позиции.Комплектующая КАК Комплектующая,
Позиции.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей КАК СерияКомплектующей,
// +++DimRa 14.09.26
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены = Позиции.ВидЦены
ТОГДА Цены.Период
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ) КАК ПериодЦены,
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
ТОГДА Цены.Период
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ) КАК ПериодЦеныДистриб
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ПериодыСтарыхЦен
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсторияЦенРОТСтарые КАК Цены
ПО Цены.Номенклатура = Позиции.Комплектующая
И Цены.Характеристика = Позиции.ХарактеристикаКомплектующей
// +++DimRa 14.09.26
И (Цены.ВидЦены = Позиции.ВидЦены
ИЛИ Цены.ВидЦены.Идентификатор = "ЦенаДистриб")
// ---DimRa
И Цены.Период <= КОНЕЦПЕРИОДА(Позиции.ДатаЦены, ДЕНЬ)
И Цены.Активность
СГРУППИРОВАТЬ ПО
Позиции.ДокументРОТ,
Позиции.Комплект,
Позиции.ХарактеристикаКомплекта,
Позиции.Проект,
Позиции.КонтрагентРеализации,
Позиции.ДатаЦены,
Позиции.Комплектующая,
Позиции.ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
Позиции.Комплектующая КАК Комплектующая,
Позиции.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей КАК СерияКомплектующей,
// +++DimRa 14.09.26
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены = Позиции.ВидЦены
ТОГДА ЕСТЬNULL(Цены.Цена, 0) * ВЫБОР
КОГДА ЕСТЬNULL(Цены.Упаковка.Числитель, 0) > 0
И ЕСТЬNULL(Цены.Упаковка.Знаменатель, 0) > 0
ТОГДА Цены.Упаковка.Знаменатель / Цены.Упаковка.Числитель
ИНАЧЕ 1
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ) КАК ЦенаСтарогоПрайса,
МАКСИМУМ(ВЫБОР
КОГДА Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
ТОГДА ЕСТЬNULL(Цены.Цена, 0) * ВЫБОР
КОГДА ЕСТЬNULL(Цены.Упаковка.Числитель, 0) > 0
И ЕСТЬNULL(Цены.Упаковка.Знаменатель, 0) > 0
ТОГДА Цены.Упаковка.Знаменатель / Цены.Упаковка.Числитель
ИНАЧЕ 1
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ) КАК ЦенаДистрибСтарогоПрайса
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_СтарыеЦеныПрайса
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ПериодыСтарыхЦен КАК Периоды
ПО Позиции.ДокументРОТ = Периоды.ДокументРОТ
И Позиции.Комплект = Периоды.Комплект
И Позиции.ХарактеристикаКомплекта = Периоды.ХарактеристикаКомплекта
И Позиции.Проект = Периоды.Проект
И Позиции.КонтрагентРеализации = Периоды.КонтрагентРеализации
И Позиции.ДатаЦены = Периоды.ДатаЦены
И Позиции.Комплектующая = Периоды.Комплектующая
И Позиции.ХарактеристикаКомплектующей
= Периоды.ХарактеристикаКомплектующей
И Позиции.СерияКомплектующей = Периоды.СерияКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсторияЦенРОТСтарые КАК Цены
ПО Цены.Номенклатура = Позиции.Комплектующая
И Цены.Характеристика = Позиции.ХарактеристикаКомплектующей
// +++DimRa 14.09.26
И ((Цены.ВидЦены = Позиции.ВидЦены
И Цены.Период = Периоды.ПериодЦены)
ИЛИ (Цены.ВидЦены.Идентификатор = "ЦенаДистриб"
И Цены.Период = Периоды.ПериодЦеныДистриб))
// ---DimRa
И Цены.Активность
СГРУППИРОВАТЬ ПО
Позиции.ДокументРОТ,
Позиции.Комплект,
Позиции.ХарактеристикаКомплекта,
Позиции.Проект,
Позиции.КонтрагентРеализации,
Позиции.ДатаЦены,
Позиции.Комплектующая,
Позиции.ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
Позиции.Комплектующая КАК Комплектующая,
Позиции.ХарактеристикаКомплектующей КАК ХарактеристикаКомплектующей,
Позиции.СерияКомплектующей КАК СерияКомплектующей,
ВЫБОР
КОГДА ЕСТЬNULL(Цены25.ЦенаПрайса25, 0) > 0
ТОГДА Цены25.ЦенаПрайса25
ИНАЧЕ ЕСТЬNULL(СтарыеЦены.ЦенаСтарогоПрайса, 0)
КОНЕЦ КАК ЦенаПрайса,
// +++DimRa 14.09.26
ВЫБОР
КОГДА ЕСТЬNULL(Цены25.ЦенаДистриб25, 0) > 0
ТОГДА Цены25.ЦенаДистриб25
ИНАЧЕ ЕСТЬNULL(СтарыеЦены.ЦенаДистрибСтарогоПрайса, 0)
КОНЕЦ КАК ЦенаДистриб
// ---DimRa
ПОМЕСТИТЬ ВТ_АП_ЦеныПрайса
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПрайса25 КАК Цены25
ПО Позиции.ДокументРОТ = Цены25.ДокументРОТ
И Позиции.Комплект = Цены25.Комплект
И Позиции.ХарактеристикаКомплекта = Цены25.ХарактеристикаКомплекта
И Позиции.Проект = Цены25.Проект
И Позиции.КонтрагентРеализации = Цены25.КонтрагентРеализации
И Позиции.ДатаЦены = Цены25.ДатаЦены
И Позиции.Комплектующая = Цены25.Комплектующая
И Позиции.ХарактеристикаКомплектующей
= Цены25.ХарактеристикаКомплектующей
И Позиции.СерияКомплектующей = Цены25.СерияКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_СтарыеЦеныПрайса КАК СтарыеЦены
ПО Позиции.ДокументРОТ = СтарыеЦены.ДокументРОТ
И Позиции.Комплект = СтарыеЦены.Комплект
И Позиции.ХарактеристикаКомплекта = СтарыеЦены.ХарактеристикаКомплекта
И Позиции.Проект = СтарыеЦены.Проект
И Позиции.КонтрагентРеализации = СтарыеЦены.КонтрагентРеализации
И Позиции.ДатаЦены = СтарыеЦены.ДатаЦены
И Позиции.Комплектующая = СтарыеЦены.Комплектующая
И Позиции.ХарактеристикаКомплектующей
= СтарыеЦены.ХарактеристикаКомплектующей
И Позиции.СерияКомплектующей = СтарыеЦены.СерияКомплектующей
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Знаменатель распределения включает весь состав: аппараты, РМ, опции и ЗИП.
ВЫБРАТЬ
Позиции.ДокументРОТ КАК ДокументРОТ,
Позиции.Комплект КАК Комплект,
Позиции.ХарактеристикаКомплекта КАК ХарактеристикаКомплекта,
Позиции.Проект КАК Проект,
Позиции.КонтрагентРеализации КАК КонтрагентРеализации,
Позиции.ДатаЦены КАК ДатаЦены,
КОЛИЧЕСТВО(*) КАК КоличествоСтрок,
СУММА(ВЫБОР
// +++DimRa 14.09.26
КОГДА ЕСТЬNULL(Цены.ЦенаПрайса, 0) > 0
// ---DimRa
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоСтрокСЦеной,
// +++DimRa 14.09.26
СУММА(
ЕСТЬNULL(Цены.ЦенаДистриб, 0)
* Позиции.КоличествоКомплектующей
) КАК ОбщаяСтоимостьПоПрайсу,
СУММА(
ЕСТЬNULL(Цены.ЦенаПрайса, 0)
* Позиции.КоличествоКомплектующей
) КАК ОбщаяЦенаКомплекта,
// ---DimRa
СУММА(ЕСТЬNULL(Позиции.ДоляСтоимости, 0)) КАК ДоляСтоимостиИтого
ПОМЕСТИТЬ ВТ_АП_ИтогиПрайса
ИЗ
ВТ_АП_КомплектующиеДляПрайса КАК Позиции
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПрайса КАК Цены
ПО Позиции.ДокументРОТ = Цены.ДокументРОТ
И Позиции.Комплект = Цены.Комплект
И Позиции.ХарактеристикаКомплекта = Цены.ХарактеристикаКомплекта
И Позиции.Проект = Цены.Проект
И Позиции.КонтрагентРеализации = Цены.КонтрагентРеализации
И Позиции.ДатаЦены = Цены.ДатаЦены
И Позиции.Комплектующая = Цены.Комплектующая
И Позиции.ХарактеристикаКомплектующей
= Цены.ХарактеристикаКомплектующей
И Позиции.СерияКомплектующей = Цены.СерияКомплектующей
СГРУППИРОВАТЬ ПО
Позиции.ДокументРОТ,
Позиции.Комплект,
Позиции.ХарактеристикаКомплекта,
Позиции.Проект,
Позиции.КонтрагентРеализации,
Позиции.ДатаЦены
ИНДЕКСИРОВАТЬ ПО
Комплект, ХарактеристикаКомплекта
;
////////////////////////////////////////////////////////////////////////////////
// Общая таблица раскомплекта. Цена документа применяется, только если она
// найдена для всего состава. Иначе сумма комплекта распределяется по выбранному
// прайсу (дистрибьюторскому, партнерскому или РРЦ).
// +++DimRa 07.09.26
// При неполных ценах и долях сохраняем стоимость на исходном комплекте.
// Ключи выделяются до соединения с составом: сумма не повторяется у комплектующих.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Исходные.ДокументРОТ КАК ДокументРОТ,
Исходные.Номенклатура КАК Номенклатура,
Исходные.ПроектИзРегистра КАК ПроектИзРегистра
ПОМЕСТИТЬ ВТ_НераспределенныеКомплекты
ИЗ
ВТ_АП_Исходные КАК Исходные
// +++DimRa 21.09.26
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПрямойОтгрузки КАК ЦеныКомплекта
ПО Исходные.ДокументРОТ = ЦеныКомплекта.ДокументРОТ
И Исходные.Номенклатура = ЦеныКомплекта.Номенклатура
// ---DimRa
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_Комплектующие КАК Комплектующие
ПО Исходные.ДокументРОТ = Комплектующие.ДокументРОТ
И Исходные.Номенклатура = Комплектующие.Комплект
И ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(Исходные.ДокументРОТ)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА Исходные.ПроектИзРегистра = Комплектующие.Проект
ИЛИ Исходные.ПроектИзРегистра.ДокументОснование = Комплектующие.Проект
ИНАЧЕ ИСТИНА
КОНЕЦ
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиЦенДокументов КАК ИтогиДокументов
ПО Комплектующие.ДокументРОТ = ИтогиДокументов.ДокументРОТ
И Комплектующие.Комплект = ИтогиДокументов.Комплект
И Комплектующие.ХарактеристикаКомплекта = ИтогиДокументов.ХарактеристикаКомплекта
И Комплектующие.Проект = ИтогиДокументов.Проект
И Комплектующие.КонтрагентРеализации = ИтогиДокументов.КонтрагентРеализации
И Комплектующие.ДатаЦены = ИтогиДокументов.ДатаЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиПрайса КАК ИтогиПрайса
ПО Комплектующие.ДокументРОТ = ИтогиПрайса.ДокументРОТ
И Комплектующие.Комплект = ИтогиПрайса.Комплект
И Комплектующие.ХарактеристикаКомплекта = ИтогиПрайса.ХарактеристикаКомплекта
И Комплектующие.Проект = ИтогиПрайса.Проект
И Комплектующие.КонтрагентРеализации = ИтогиПрайса.КонтрагентРеализации
И Комплектующие.ДатаЦены = ИтогиПрайса.ДатаЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПроекта КАК ЦеныПроекта
ПО Комплектующие.ДокументРОТ = ЦеныПроекта.ДокументРОТ
И Комплектующие.Комплект = ЦеныПроекта.Комплект
И Комплектующие.ХарактеристикаКомплекта = ЦеныПроекта.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныПроекта.Проект
И Комплектующие.КонтрагентРеализации = ЦеныПроекта.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныПроекта.ДатаЦены
И Комплектующие.Комплектующая = ЦеныПроекта.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей = ЦеныПроекта.ХарактеристикаКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныРеализации КАК ЦеныРеализации
ПО Комплектующие.ДокументРОТ = ЦеныРеализации.ДокументРОТ
И Комплектующие.Комплект = ЦеныРеализации.Комплект
И Комплектующие.ХарактеристикаКомплекта = ЦеныРеализации.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныРеализации.Проект
И Комплектующие.КонтрагентРеализации = ЦеныРеализации.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныРеализации.ДатаЦены
И Комплектующие.Комплектующая = ЦеныРеализации.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей = ЦеныРеализации.ХарактеристикаКомплектующей
ГДЕ
ЕСТЬNULL(ЦеныПроекта.ЦенаЕдиницыПроекта, 0) = 0
И ЕСТЬNULL(ЦеныРеализации.ЦенаЕдиницыРеализации, 0) = 0
И НЕ (
(ЕСТЬNULL(ИтогиПрайса.КоличествоСтрок, 0) > 0
И ЕСТЬNULL(ИтогиПрайса.КоличествоСтрокСЦеной, 0) = ИтогиПрайса.КоличествоСтрок
И ЕСТЬNULL(ЦеныКомплекта.ЦенаАвторизованная, 0) > 1
И ЕСТЬNULL(ИтогиПрайса.ОбщаяЦенаКомплекта, 0) > 0)
ИЛИ (ЕСТЬNULL(ЦеныКомплекта.ЦенаАвторизованная, 0) > 1
И ЕСТЬNULL(ИтогиПрайса.ДоляСтоимостиИтого, 0) > 0)
// +++DimRa 28.09.26
// При отсутствии цен комплектующих распределяем исходную сумму строки РОТ.
ИЛИ (ЕСТЬNULL(Исходные.СуммаПродаж, 0) <> 0
И ЕСТЬNULL(ИтогиПрайса.ДоляСтоимостиИтого, 0) > 0)
// ---DimRa
)
ИНДЕКСИРОВАТЬ ПО
Номенклатура, ПроектИзРегистра
;
// +++DimRa 11.09.26
// Сумму, уже отнесённую на позиции по документам, не повторяем в строке комплекта.
ВЫБРАТЬ
Ключи.ДокументРОТ КАК ДокументРОТ,
Ключи.Номенклатура КАК Номенклатура,
Ключи.ПроектИзРегистра КАК ПроектИзРегистра,
СУММА(Итоги.СтоимостьДокументовНаКомплект) КАК СтоимостьДокументовНаКомплект
ПОМЕСТИТЬ ВТ_АП_УчтеннаяСтоимостьКомплектов
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
Исходные.ДокументРОТ КАК ДокументРОТ,
Исходные.Номенклатура КАК Номенклатура,
Исходные.ПроектИзРегистра КАК ПроектИзРегистра
ИЗ ВТ_АП_Исходные КАК Исходные) КАК Ключи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиЦенДокументов КАК Итоги
ПО Ключи.ДокументРОТ = Итоги.ДокументРОТ
И Ключи.Номенклатура = Итоги.Комплект
И ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(Ключи.ДокументРОТ) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА Ключи.ПроектИзРегистра = Итоги.Проект
ИЛИ Ключи.ПроектИзРегистра.ДокументОснование = Итоги.Проект
ИНАЧЕ ИСТИНА
КОНЕЦ
СГРУППИРОВАТЬ ПО
Ключи.ДокументРОТ,
Ключи.Номенклатура,
Ключи.ПроектИзРегистра
ИНДЕКСИРОВАТЬ ПО
Номенклатура, ПроектИзРегистра
;
// ---DimRa
ВЫБРАТЬ
Исходные.Заказчик КАК Заказчик,
Исходные.ПризнакФЗ КАК ПризнакФЗ,
Исходные.Партнер КАК Партнер,
Исходные.ИНН КАК ИНН,
Исходные.ПартнерИНН КАК ПартнерИНН,
Исходные.Количество КАК Количество,
Исходные.КоличествоГарантий КАК КоличествоГарантий,
Исходные.СерийныйНомер КАК СерийныйНомер,
Исходные.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
Исходные.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Исходные.Номенклатура КАК Номенклатура,
Исходные.КАМ КАК КАМ,
Исходные.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Исходные.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
ВЫБОР КОГДА (Исходные.СуммаПродаж - Исходные.Количество * ЕСТЬNULL(Учтено.СтоимостьДокументовНаКомплект, 0)) * Исходные.СуммаПродаж > 0 ТОГДА Исходные.СуммаПродаж - Исходные.Количество * ЕСТЬNULL(Учтено.СтоимостьДокументовНаКомплект, 0) ИНАЧЕ 0 КОНЕЦ КАК СуммаПродаж,
Исходные.ДокументРОТ КАК ДокументРОТ,
Исходные.ПроектИзРегистра КАК ПроектИзРегистра
ПОМЕСТИТЬ ВТ_НераспределеннаяСтоимость
ИЗ
ВТ_АП_Исходные КАК Исходные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_НераспределенныеКомплекты КАК Нераспределенные
ПО Исходные.ДокументРОТ = Нераспределенные.ДокументРОТ
И Исходные.Номенклатура = Нераспределенные.Номенклатура
И Исходные.ПроектИзРегистра = Нераспределенные.ПроектИзРегистра
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_УчтеннаяСтоимостьКомплектов КАК Учтено
ПО Исходные.ДокументРОТ = Учтено.ДокументРОТ
И Исходные.Номенклатура = Учтено.Номенклатура
И Исходные.ПроектИзРегистра = Учтено.ПроектИзРегистра
ГДЕ
(ВЫБОР КОГДА (Исходные.СуммаПродаж - Исходные.Количество * ЕСТЬNULL(Учтено.СтоимостьДокументовНаКомплект, 0)) * Исходные.СуммаПродаж > 0 ТОГДА Исходные.СуммаПродаж - Исходные.Количество * ЕСТЬNULL(Учтено.СтоимостьДокументовНаКомплект, 0) ИНАЧЕ 0 КОНЕЦ) <> 0
;
// ---DimRa
ВЫБРАТЬ
Исходные.Заказчик КАК Заказчик,
Исходные.ПризнакФЗ КАК ПризнакФЗ,
Исходные.Партнер КАК Партнер,
Исходные.ИНН КАК ИНН,
Исходные.ПартнерИНН КАК ПартнерИНН,
ВЫБОР
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
ТОГДА Исходные.Количество
* Комплектующие.КоличествоКомплектующей
ИНАЧЕ Исходные.Количество
КОНЕЦ КАК Количество,
ВЫБОР
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Исходные.КоличествоГарантий
КОНЕЦ КАК КоличествоГарантий,
Исходные.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
Исходные.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВЫБОР
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
ТОГДА Комплектующие.Комплектующая
ИНАЧЕ Исходные.Номенклатура
КОНЕЦ КАК Номенклатура,
ВЫБОР
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
И (Исходные.Партнер = ""
ИЛИ Исходные.Партнер = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Исходные.Партнер ЕСТЬ NULL)
ТОГДА Комплектующие.Комплектующая
ИНАЧЕ Исходные.Номенклатура
КОНЕЦ КАК НоменклатураДляОтбора,
Исходные.КАМ КАК КАМ,
Исходные.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Исходные.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
Комплектующие.Комплектующая КАК Комплектующая,
ВЫБОР
// +++DimRa 21.09.26
// Сначала распределяем авторизованную цену комплекта из проекта.
// Доля позиции определяется по выбранному прайсу с учетом количества в комплекте.
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
И ЕСТЬNULL(ЦеныПрямойОтгрузки.ЦенаАвторизованная, 0) > 1
И ИтогиПрайса.КоличествоСтрок > 0
И ИтогиПрайса.КоличествоСтрокСЦеной = ИтогиПрайса.КоличествоСтрок
И ИтогиПрайса.ОбщаяЦенаКомплекта > 0
ТОГДА Исходные.Количество
* ЦеныПрямойОтгрузки.ЦенаАвторизованная
* Комплектующие.КоличествоКомплектующей
* ЕСТЬNULL(ЦеныПрайса.ЦенаПрайса, 0)
/ ИтогиПрайса.ОбщаяЦенаКомплекта
// Если авторизованная цена комплекта не найдена, используем цену позиции из документов.
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
И (ЕСТЬNULL(ЦеныПроекта.ЦенаЕдиницыПроекта, 0) > 0
ИЛИ ЕСТЬNULL(ЦеныРеализации.ЦенаЕдиницыРеализации, 0) > 0)
ТОГДА Исходные.Количество
* Комплектующие.КоличествоКомплектующей
* ВЫБОР
КОГДА ЕСТЬNULL(ЦеныПроекта.ЦенаЕдиницыПроекта, 0) > 0
ТОГДА ЦеныПроекта.ЦенаЕдиницыПроекта
ИНАЧЕ ЕСТЬNULL(ЦеныРеализации.ЦенаЕдиницыРеализации, 0)
КОНЕЦ
КОГДА НЕ Нераспределенные.ДокументРОТ ЕСТЬ NULL ТОГДА 0
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
И ЕСТЬNULL(ЦеныПрямойОтгрузки.ЦенаАвторизованная, 0) > 1
И ИтогиПрайса.ДоляСтоимостиИтого > 0
ТОГДА Исходные.Количество
* ЦеныПрямойОтгрузки.ЦенаАвторизованная
* Комплектующие.ДоляСтоимости
/ ИтогиПрайса.ДоляСтоимостиИтого
// ---DimRa
// +++DimRa 25.09.26
// Если цены комплектующих не найдены, распределяем исходную сумму комплекта.
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
И Комплектующие.ДоляСтоимости > 0
ТОГДА Исходные.СуммаПродаж * Комплектующие.ДоляСтоимости
// ---DimRa
КОГДА НЕ Комплектующие.Комплектующая ЕСТЬ NULL
ТОГДА 0
// +++DimRa 11.09.26
КОГДА ЕСТЬNULL(ЦеныПрямойОтгрузки.ЦенаЕдиницыПроекта, 0) > 0
ТОГДА Исходные.Количество * ЦеныПрямойОтгрузки.ЦенаЕдиницыПроекта
// ---DimRa
ИНАЧЕ Исходные.СуммаПродаж
КОНЕЦ КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_АП_РаскомплектПолный
ИЗ
ВТ_АП_Исходные КАК Исходные
// +++DimRa 11.09.26
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПрямойОтгрузки КАК ЦеныПрямойОтгрузки
ПО Исходные.ДокументРОТ = ЦеныПрямойОтгрузки.ДокументРОТ
И Исходные.Номенклатура = ЦеныПрямойОтгрузки.Номенклатура
// ---DimRa
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НераспределенныеКомплекты КАК Нераспределенные
ПО Исходные.ДокументРОТ = Нераспределенные.ДокументРОТ
И Исходные.Номенклатура = Нераспределенные.Номенклатура
И Исходные.ПроектИзРегистра = Нераспределенные.ПроектИзРегистра
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_Комплектующие КАК Комплектующие
ПО Исходные.ДокументРОТ = Комплектующие.ДокументРОТ
И Исходные.Номенклатура = Комплектующие.Комплект
// +++DimRa 24.09.26
// Не допускаем перекрестного соединения состава строк с разными проектами.
И Исходные.ПроектИзРегистра = Комплектующие.ПроектИзРегистра
// ---DimRa
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПроекта КАК ЦеныПроекта
ПО Комплектующие.ДокументРОТ = ЦеныПроекта.ДокументРОТ
И Комплектующие.Комплект = ЦеныПроекта.Комплект
И Комплектующие.ХарактеристикаКомплекта = ЦеныПроекта.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныПроекта.Проект
И Комплектующие.КонтрагентРеализации = ЦеныПроекта.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныПроекта.ДатаЦены
И Комплектующие.Комплектующая = ЦеныПроекта.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей = ЦеныПроекта.ХарактеристикаКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныРеализации КАК ЦеныРеализации
ПО Комплектующие.ДокументРОТ = ЦеныРеализации.ДокументРОТ
И Комплектующие.Комплект = ЦеныРеализации.Комплект
И Комплектующие.ХарактеристикаКомплекта = ЦеныРеализации.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныРеализации.Проект
И Комплектующие.КонтрагентРеализации = ЦеныРеализации.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныРеализации.ДатаЦены
И Комплектующие.Комплектующая = ЦеныРеализации.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей = ЦеныРеализации.ХарактеристикаКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиЦенДокументов КАК ИтогиДокументов
ПО Комплектующие.ДокументРОТ = ИтогиДокументов.ДокументРОТ
И Комплектующие.Комплект = ИтогиДокументов.Комплект
И Комплектующие.ХарактеристикаКомплекта = ИтогиДокументов.ХарактеристикаКомплекта
И Комплектующие.Проект = ИтогиДокументов.Проект
И Комплектующие.КонтрагентРеализации = ИтогиДокументов.КонтрагентРеализации
И Комплектующие.ДатаЦены = ИтогиДокументов.ДатаЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ЦеныПрайса КАК ЦеныПрайса
ПО Комплектующие.ДокументРОТ = ЦеныПрайса.ДокументРОТ
И Комплектующие.Комплект = ЦеныПрайса.Комплект
И Комплектующие.ХарактеристикаКомплекта = ЦеныПрайса.ХарактеристикаКомплекта
И Комплектующие.Проект = ЦеныПрайса.Проект
И Комплектующие.КонтрагентРеализации = ЦеныПрайса.КонтрагентРеализации
И Комплектующие.ДатаЦены = ЦеныПрайса.ДатаЦены
И Комплектующие.Комплектующая = ЦеныПрайса.Комплектующая
И Комплектующие.ХарактеристикаКомплектующей = ЦеныПрайса.ХарактеристикаКомплектующей
И Комплектующие.СерияКомплектующей = ЦеныПрайса.СерияКомплектующей
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_ИтогиПрайса КАК ИтогиПрайса
ПО Комплектующие.ДокументРОТ = ИтогиПрайса.ДокументРОТ
И Комплектующие.Комплект = ИтогиПрайса.Комплект
И Комплектующие.ХарактеристикаКомплекта = ИтогиПрайса.ХарактеристикаКомплекта
И Комплектующие.Проект = ИтогиПрайса.Проект
И Комплектующие.КонтрагентРеализации = ИтогиПрайса.КонтрагентРеализации
И Комплектующие.ДатаЦены = ИтогиПрайса.ДатаЦены
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Раскомплект.Заказчик КАК Заказчик,
Раскомплект.ПризнакФЗ КАК ПризнакФЗ,
Раскомплект.Партнер КАК Партнер,
Раскомплект.ИНН КАК ИНН,
Раскомплект.ПартнерИНН КАК ПартнерИНН,
Раскомплект.Количество КАК Количество,
Раскомплект.КоличествоГарантий КАК КоличествоГарантий,
Раскомплект.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура КАК Номенклатура,
Раскомплект.НоменклатураДляОтбора КАК НоменклатураДляОтбора,
Раскомплект.КАМ КАК КАМ,
Раскомплект.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
Раскомплект.СуммаПродаж КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_АП_1
ИЗ
ВТ_АП_РаскомплектПолный КАК Раскомплект
ГДЕ
Раскомплект.Номенклатура.Катюша_АппаратРМ = &Аппарат
И Раскомплект.ДатаОтгрузкиВСтроке
МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Раскомплект.Заказчик КАК Заказчик,
Раскомплект.ПризнакФЗ КАК ПризнакФЗ,
Раскомплект.Партнер КАК Партнер,
Раскомплект.ИНН КАК ИНН,
Раскомплект.ПартнерИНН КАК ПартнерИНН,
СУММА(Раскомплект.Количество) КАК Количество,
Раскомплект.ГоловнойКонтрагент КАК ЗаказчикИзБазыГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура КАК Номенклатура,
Раскомплект.КАМ КАК КАМ,
Раскомплект.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(Раскомплект.СуммаПродаж) КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_РМ_Раскомплект
ИЗ
ВТ_АП_РаскомплектПолный КАК Раскомплект
ГДЕ
НЕ Раскомплект.Комплектующая ЕСТЬ NULL
И Раскомплект.Номенклатура.Катюша_АппаратРМ = &РМ
И (Раскомплект.Номенклатура.Катюша_ТипРМ
= ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Картридж)
ИЛИ Раскомплект.Номенклатура.Катюша_ТипРМ
= ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Барабан))
И Раскомплект.ДатаОтгрузкиВСтроке
МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
СГРУППИРОВАТЬ ПО
Раскомплект.Заказчик,
Раскомплект.ПризнакФЗ,
Раскомплект.Партнер,
Раскомплект.ИНН,
Раскомплект.ПартнерИНН,
Раскомплект.ГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура,
Раскомплект.КАМ,
Раскомплект.ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Раскомплект.Заказчик КАК Заказчик,
Раскомплект.ПризнакФЗ КАК ПризнакФЗ,
Раскомплект.Партнер КАК Партнер,
Раскомплект.ИНН КАК ИНН,
Раскомплект.ПартнерИНН КАК ПартнерИНН,
СУММА(Раскомплект.Количество) КАК Количество,
Раскомплект.ГоловнойКонтрагент КАК ЗаказчикИзБазыГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура КАК Номенклатура,
Раскомплект.КАМ КАК КАМ,
Раскомплект.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(Раскомплект.СуммаПродаж) КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_ЗИП_Раскомплект
ИЗ
ВТ_АП_РаскомплектПолный КАК Раскомплект
ГДЕ
НЕ Раскомплект.Комплектующая ЕСТЬ NULL
И Раскомплект.Номенклатура.Катюша_АппаратРМ
= ЗНАЧЕНИЕ(Перечисление.ITR_ВидыАппаратовРМ.ЗИП)
И Раскомплект.ДатаОтгрузкиВСтроке
МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
СГРУППИРОВАТЬ ПО
Раскомплект.Заказчик,
Раскомплект.ПризнакФЗ,
Раскомплект.Партнер,
Раскомплект.ИНН,
Раскомплект.ПартнерИНН,
Раскомплект.ГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура,
Раскомплект.КАМ,
Раскомплект.ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_АП_1.Заказчик КАК Заказчик,
ВТ_АП_1.ПризнакФЗ КАК ПризнакФЗ,
ВТ_АП_1.Партнер КАК Партнер,
ВТ_АП_1.ИНН КАК ИНН,
ВТ_АП_1.ПартнерИНН КАК ПартнерИНН,
СУММА(ВТ_АП_1.Количество) КАК Количество,
СУММА(ВТ_АП_1.КоличествоГарантий) КАК КоличествоГарантий,
ВТ_АП_1.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
ВТ_АП_1.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_АП_1.Номенклатура КАК Номенклатура,
ВТ_АП_1.НоменклатураДляОтбора КАК НоменклатураДляОтбора,
ВТ_АП_1.КАМ КАК КАМ,
ВТ_АП_1.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
ВТ_АП_1.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ЕСТЬNULL(ВТ_АП_1.СуммаПродаж, 0)) КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_АПГрупп
ИЗ
ВТ_АП_1 КАК ВТ_АП_1
СГРУППИРОВАТЬ ПО
ВТ_АП_1.Заказчик,
ВТ_АП_1.ПризнакФЗ,
ВТ_АП_1.Партнер,
ВТ_АП_1.ИНН,
ВТ_АП_1.ПартнерИНН,
ВТ_АП_1.ГоловнойКонтрагент,
ВТ_АП_1.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_АП_1.Номенклатура,
ВТ_АП_1.НоменклатураДляОтбора,
ВТ_АП_1.КАМ,
ВТ_АП_1.ПартнерскийМенеджер,
ВТ_АП_1.ДатаОтгрузкиВСтроке
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
СерииУстройствАппаратов.СерияУстройства КАК СерияУстройства
ПОМЕСТИТЬ ВТ_СерииПрошитыхАппаратов
ИЗ
ВТ_АПГрупп КАК ВТ_АПГрупп
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Катюша_СерииУстройства КАК СерииУстройствАппаратов
ПО (СерииУстройствАппаратов.Ссылка = ВТ_АПГрупп.Номенклатура)
ГДЕ
НЕ СерииУстройствАппаратов.СерияУстройства ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
СерияУстройства
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
СерииУстройствРМ.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ВТ_НоменклатураРМПоПрошитымСериям
ИЗ
Справочник.Номенклатура.Катюша_СерииУстройства КАК СерииУстройствРМ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СерииПрошитыхАппаратов КАК СерииПрошитыхАппаратов
ПО СерииУстройствРМ.СерияУстройства = СерииПрошитыхАппаратов.СерияУстройства
ГДЕ
НЕ СерииУстройствРМ.СерияУстройства ЕСТЬ NULL
И СерииУстройствРМ.Ссылка.Катюша_АппаратРМ = &РМ
И СерииУстройствРМ.Ссылка.Артикул ПОДОБНО "%TKB%"
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы КАК Заказчик,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ КАК ПризнакФЗ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер КАК Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН КАК ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН КАК ПартнерИНН,
СУММА(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество) КАК Количество,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагент,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура КАК Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ КАК КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК СуммаПродаж
ПОМЕСТИТЬ ВТ_РМ
ИЗ
ВТ_ДанныеРОТПериода КАК Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НоменклатураРМПоПрошитымСериям КАК НоменклатураРМПоПрошитымСериям
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = НоменклатураРМПоПрошитымСериям.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_Сборки КАК СборкиДляРаскомплекта
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = СборкиДляРаскомплекта.ДокументРОТ
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = СборкиДляРаскомплекта.Комплект
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныСтрокДистри КАК ЦеныСтрокДистри
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = ЦеныСтрокДистри.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = ЦеныСтрокДистри.Номенклатура
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер = ЦеныСтрокДистри.Партнер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЦеныСтрокДистри.ЗаказчикИзБазы
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Город = ЦеныСтрокДистри.Город
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка = ЦеныСтрокДистри.ПроектСсылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке = ЦеныСтрокДистри.Дата
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = ЦеныСтрокДистри.СерийныйНомер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения = ЦеныСтрокДистри.ТипДвижения
ГДЕ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_АппаратРМ = &РМ
И СборкиДляРаскомплекта.ДокументСборки ЕСТЬ NULL
И (ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация)
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Катюша)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Sindoh))
И НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_УбратьОтображениеВРОТ
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа в дистрибьютора")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютеру")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютору")
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Картридж)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Барабан))
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке > ДАТАВРЕМЯ(2023, 1, 1)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания)
И ВЫБОР
КОГДА &Прошит
ТОГДА НЕ НоменклатураРМПоПрошитымСериям.Номенклатура ЕСТЬ NULL
ИНАЧЕ ИСТИНА
КОНЕЦ
СГРУППИРОВАТЬ ПО
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Раскомплект.Заказчик,
Раскомплект.ПризнакФЗ,
Раскомплект.Партнер,
Раскомплект.ИНН,
Раскомплект.ПартнерИНН,
Раскомплект.Количество,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура,
Раскомплект.КАМ,
Раскомплект.ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке,
Раскомплект.СуммаПродаж
ИЗ
ВТ_РМ_Раскомплект КАК Раскомплект
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы КАК Заказчик,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ КАК ПризнакФЗ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер КАК Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН КАК ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН КАК ПартнерИНН,
СУММА(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество) КАК КоличествоКартридж,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагент,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура КАК Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ КАК КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК СуммаКартриджи
ПОМЕСТИТЬ ВТ_Картриджи
ИЗ
ВТ_ДанныеРОТПериода КАК Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НоменклатураРМПоПрошитымСериям КАК НоменклатураРМПоПрошитымСериям
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = НоменклатураРМПоПрошитымСериям.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_Сборки КАК СборкиДляРаскомплекта
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = СборкиДляРаскомплекта.ДокументРОТ
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = СборкиДляРаскомплекта.Комплект
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныСтрокДистри КАК ЦеныСтрокДистри
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = ЦеныСтрокДистри.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = ЦеныСтрокДистри.Номенклатура
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер = ЦеныСтрокДистри.Партнер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЦеныСтрокДистри.ЗаказчикИзБазы
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Город = ЦеныСтрокДистри.Город
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка = ЦеныСтрокДистри.ПроектСсылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке = ЦеныСтрокДистри.Дата
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = ЦеныСтрокДистри.СерийныйНомер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения = ЦеныСтрокДистри.ТипДвижения
ГДЕ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_АппаратРМ = &РМ
И СборкиДляРаскомплекта.ДокументСборки ЕСТЬ NULL
И (ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация)
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Катюша)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Sindoh))
И НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_УбратьОтображениеВРОТ
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа в дистрибьютора")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютеру")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютору")
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Картридж)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Барабан))
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = &ТипКартридж
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке > ДАТАВРЕМЯ(2023, 1, 1)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания)
И ВЫБОР
КОГДА &Прошит
ТОГДА НЕ НоменклатураРМПоПрошитымСериям.Номенклатура ЕСТЬ NULL
ИНАЧЕ ИСТИНА
КОНЕЦ
СГРУППИРОВАТЬ ПО
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы КАК Заказчик,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ КАК ПризнакФЗ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер КАК Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН КАК ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН КАК ПартнерИНН,
СУММА(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество) КАК КоличествоБарабан,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагент,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура КАК Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ КАК КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК СуммаБарабаны
ПОМЕСТИТЬ ВТ_Барабаны
ИЗ
ВТ_ДанныеРОТПериода КАК Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НоменклатураРМПоПрошитымСериям КАК НоменклатураРМПоПрошитымСериям
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = НоменклатураРМПоПрошитымСериям.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_Сборки КАК СборкиДляРаскомплекта
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = СборкиДляРаскомплекта.ДокументРОТ
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = СборкиДляРаскомплекта.Комплект
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныСтрокДистри КАК ЦеныСтрокДистри
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = ЦеныСтрокДистри.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = ЦеныСтрокДистри.Номенклатура
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер = ЦеныСтрокДистри.Партнер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЦеныСтрокДистри.ЗаказчикИзБазы
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Город = ЦеныСтрокДистри.Город
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка = ЦеныСтрокДистри.ПроектСсылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке = ЦеныСтрокДистри.Дата
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = ЦеныСтрокДистри.СерийныйНомер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения = ЦеныСтрокДистри.ТипДвижения
ГДЕ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_АппаратРМ = &РМ
И СборкиДляРаскомплекта.ДокументСборки ЕСТЬ NULL
И (ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация)
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Катюша)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ (&Sindoh))
И НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_УбратьОтображениеВРОТ
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа в дистрибьютора")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютеру")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютору")
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Картридж)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = ЗНАЧЕНИЕ(Перечисление.Катюша_ТипРМ.Барабан))
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_ТипРМ = &ТипБарабан
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке > ДАТАВРЕМЯ(2023, 1, 1)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания)
И ВЫБОР
КОГДА &Прошит
ТОГДА НЕ НоменклатураРМПоПрошитымСериям.Номенклатура ЕСТЬ NULL
ИНАЧЕ ИСТИНА
КОНЕЦ
СГРУППИРОВАТЬ ПО
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы КАК Заказчик,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ КАК ПризнакФЗ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер КАК Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН КАК ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН КАК ПартнерИНН,
СУММА(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество) КАК КоличествоЗИП,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагент,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура КАК Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ КАК КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена, 0) <> 0
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Цена
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
КОГДА ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка)
= ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ТОГДА ЕСТЬNULL(ЦеныСтрокДистри.ЦенаКомплекта, 0)
* ЕСТЬNULL(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Количество, 0)
ИНАЧЕ 0
КОНЕЦ) КАК СуммаЗИП
ПОМЕСТИТЬ ВТ_ЗИП
ИЗ
ВТ_ДанныеРОТПериода КАК Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АП_Сборки КАК СборкиДляРаскомплекта
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = СборкиДляРаскомплекта.ДокументРОТ
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = СборкиДляРаскомплекта.Комплект
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныСтрокДистри КАК ЦеныСтрокДистри
ПО Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка = ЦеныСтрокДистри.Ссылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура = ЦеныСтрокДистри.Номенклатура
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер = ЦеныСтрокДистри.Партнер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЦеныСтрокДистри.ЗаказчикИзБазы
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Город = ЦеныСтрокДистри.Город
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПроектСсылка = ЦеныСтрокДистри.ПроектСсылка
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке = ЦеныСтрокДистри.Дата
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.СерияНоменклатуры = ЦеныСтрокДистри.СерийныйНомер
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения = ЦеныСтрокДистри.ТипДвижения
ГДЕ
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура В ИЕРАРХИИ(&КатюшаЗИП)
И СборкиДляРаскомплекта.ДокументСборки ЕСТЬ NULL
И (ТИПЗНАЧЕНИЯ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Ссылка) = ТИП(Документ.Катюша_ДистрибьюторскийОтчет_ERP)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЭтоРеализация)
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура.Катюша_УбратьОтображениеВРОТ
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа в дистрибьютора")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютеру")
И НРЕГ(Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ТипДвижения) <> НРЕГ("Продажа дистрибьютору")
И Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке > ДАТАВРЕМЯ(2023, 1, 1)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_Дистрибьютор
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = NULL
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Катюша_СобственнаяКомпания
ИНАЧЕ ИСТИНА
КОНЕЦ
И (Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания ЕСТЬ NULL
ИЛИ НЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_СобственнаяКомпания)
СГРУППИРОВАТЬ ПО
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.ИНН,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА ""
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.ИНН
КОНЕЦ,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент.Катюша_Дистрибьютор
ТОГДА "Продажа без Заказчика"
ИНАЧЕ ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Партнер.Наименование + "(Партнер)"
ИНАЧЕ Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ГоловнойКонтрагент
КОНЕЦ
КОНЕЦ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.Номенклатура,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.КАМ,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ПартнерскийМенеджер,
Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ДатаОтгрузкиВСтроке,
ВЫБОР
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_223ФЗ
ТОГДА "Квазигосударственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_44ФЗ
ТОГДА "Государственная компания"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.Катюша_ЧастныйБизнес
ТОГДА "Частный бизнес"
КОГДА Катюша_ДанныеСведенийДляРеестраОтгруженнойТехники.ЗаказчикИзБазы.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
ТОГДА "Частное лицо"
ИНАЧЕ ""
КОНЕЦ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Раскомплект.Заказчик,
Раскомплект.ПризнакФЗ,
Раскомплект.Партнер,
Раскомплект.ИНН,
Раскомплект.ПартнерИНН,
Раскомплект.Количество,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагент,
Раскомплект.ЗаказчикИзБазыГоловнойКонтрагентИНН,
Раскомплект.Номенклатура,
Раскомплект.КАМ,
Раскомплект.ПартнерскийМенеджер,
Раскомплект.ДатаОтгрузкиВСтроке,
Раскомплект.СуммаПродаж
ИЗ
ВТ_ЗИП_Раскомплект КАК Раскомплект
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_АПГрупп.Заказчик КАК Заказчик,
ВТ_АПГрупп.ПризнакФЗ КАК ПризнакФЗ,
ВТ_АПГрупп.Партнер КАК Партнер,
ВТ_АПГрупп.ИНН КАК ИНН,
ВТ_АПГрупп.ПартнерИНН КАК ПартнерИНН,
ВТ_АПГрупп.Количество КАК КоличествоАппараты,
ВТ_АПГрупп.КоличествоГарантий КАК КоличествоГарантий,
ВТ_АПГрупп.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
ВТ_АПГрупп.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_АПГрупп.Номенклатура КАК Номенклатура,
ВТ_АПГрупп.НоменклатураДляОтбора КАК НоменклатураДляОтбора,
ВТ_АПГрупп.КАМ КАК КАМ,
ВТ_АПГрупп.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
NULL КАК КоличествоРМ,
NULL КАК КоличествоКартридж,
NULL КАК КоличествоБарабан,
NULL КАК КоличествоЗИП,
ВТ_АПГрупп.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
ВТ_АПГрупп.СуммаПродаж КАК СуммаАппараты,
NULL КАК СуммаРМ,
NULL КАК СуммаКартриджи,
NULL КАК СуммаБарабаны,
NULL КАК СуммаЗИП,
0 КАК СуммаНераспределенная
ПОМЕСТИТЬ ПредИтог
ИЗ
ВТ_АПГрупп КАК ВТ_АПГрупп
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_РМ.Заказчик,
ВТ_РМ.ПризнакФЗ,
ВТ_РМ.Партнер,
ВТ_РМ.ИНН,
ВТ_РМ.ПартнерИНН,
NULL,
NULL,
ВТ_РМ.ЗаказчикИзБазыГоловнойКонтрагент,
ВТ_РМ.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_РМ.Номенклатура,
ВТ_РМ.Номенклатура,
ВТ_РМ.КАМ,
ВТ_РМ.ПартнерскийМенеджер,
ВТ_РМ.Количество,
NULL,
NULL,
NULL,
ВТ_РМ.ДатаОтгрузкиВСтроке,
NULL,
ВТ_РМ.СуммаПродаж,
NULL,
NULL,
NULL,
0
ИЗ
ВТ_РМ КАК ВТ_РМ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_Картриджи.Заказчик,
ВТ_Картриджи.ПризнакФЗ,
ВТ_Картриджи.Партнер,
ВТ_Картриджи.ИНН,
ВТ_Картриджи.ПартнерИНН,
NULL,
NULL,
ВТ_Картриджи.ЗаказчикИзБазыГоловнойКонтрагент,
ВТ_Картриджи.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_Картриджи.Номенклатура,
ВТ_Картриджи.Номенклатура,
ВТ_Картриджи.КАМ,
ВТ_Картриджи.ПартнерскийМенеджер,
NULL,
ВТ_Картриджи.КоличествоКартридж,
NULL,
NULL,
ВТ_Картриджи.ДатаОтгрузкиВСтроке,
NULL,
NULL,
ВТ_Картриджи.СуммаКартриджи,
NULL,
NULL,
0
ИЗ
ВТ_Картриджи КАК ВТ_Картриджи
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_Барабаны.Заказчик,
ВТ_Барабаны.ПризнакФЗ,
ВТ_Барабаны.Партнер,
ВТ_Барабаны.ИНН,
ВТ_Барабаны.ПартнерИНН,
NULL,
NULL,
ВТ_Барабаны.ЗаказчикИзБазыГоловнойКонтрагент,
ВТ_Барабаны.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_Барабаны.Номенклатура,
ВТ_Барабаны.Номенклатура,
ВТ_Барабаны.КАМ,
ВТ_Барабаны.ПартнерскийМенеджер,
NULL,
NULL,
ВТ_Барабаны.КоличествоБарабан,
NULL,
ВТ_Барабаны.ДатаОтгрузкиВСтроке,
NULL,
NULL,
NULL,
ВТ_Барабаны.СуммаБарабаны,
NULL,
0
ИЗ
ВТ_Барабаны КАК ВТ_Барабаны
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ЗИП.Заказчик,
ВТ_ЗИП.ПризнакФЗ,
ВТ_ЗИП.Партнер,
ВТ_ЗИП.ИНН,
ВТ_ЗИП.ПартнерИНН,
NULL,
NULL,
ВТ_ЗИП.ЗаказчикИзБазыГоловнойКонтрагент,
ВТ_ЗИП.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ВТ_ЗИП.Номенклатура,
ВТ_ЗИП.Номенклатура,
ВТ_ЗИП.КАМ,
ВТ_ЗИП.ПартнерскийМенеджер,
NULL,
NULL,
NULL,
ВТ_ЗИП.КоличествоЗИП,
ВТ_ЗИП.ДатаОтгрузкиВСтроке,
NULL,
NULL,
NULL,
NULL,
ВТ_ЗИП.СуммаЗИП,
0
ИЗ
ВТ_ЗИП КАК ВТ_ЗИП
// +++DimRa 07.09.26
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Исходные.Заказчик,
Исходные.ПризнакФЗ,
Исходные.Партнер,
Исходные.ИНН,
Исходные.ПартнерИНН,
0,
0,
Исходные.ГоловнойКонтрагент,
Исходные.ЗаказчикИзБазыГоловнойКонтрагентИНН,
Исходные.Номенклатура,
Исходные.Номенклатура,
Исходные.КАМ,
Исходные.ПартнерскийМенеджер,
0,
0,
0,
0,
Исходные.ДатаОтгрузкиВСтроке,
0,
0,
0,
0,
0,
Исходные.СуммаПродаж
ИЗ
ВТ_НераспределеннаяСтоимость КАК Исходные
ГДЕ
&ПоСуммам И (
(Исходные.Номенклатура.Катюша_АппаратРМ = &Аппарат
И Исходные.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаАппараты И &ДатаОкончанияАппараты)
ИЛИ (Исходные.Номенклатура.Катюша_АппаратРМ = &РМ
И Исходные.ДатаОтгрузкиВСтроке МЕЖДУ &ДатаНачалаРМ И &ДатаОкончанияРМ))
;
// ---DimRa
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПредИтог.Заказчик КАК Заказчик,
ПредИтог.ПризнакФЗ КАК ПризнакФЗ,
ВЫБОР
КОГДА ПредИтог.Партнер = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ ПредИтог.Партнер = ""
ИЛИ ПредИтог.Партнер ЕСТЬ NULL
ТОГДА "Прямая продажа"
ИНАЧЕ ПредИтог.Партнер
КОНЕЦ КАК Партнер,
ПредИтог.ИНН КАК ИНН,
ПредИтог.ПартнерИНН КАК ПартнерИНН,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоАппараты, 0)) КАК КоличествоАппараты,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоГарантий, 0)) КАК КоличествоГарантий,
ПредИтог.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
ПредИтог.ЗаказчикИзБазыГоловнойКонтрагентИНН КАК ГоловнойКонтрагентИНН,
ПредИтог.Номенклатура КАК Номенклатура,
ПредИтог.НоменклатураДляОтбора КАК НоменклатураДляОтбора,
ПредИтог.КАМ КАК КАМ,
ПредИтог.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоРМ, 0)) КАК КоличествоРМ,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоКартридж, 0)) КАК КоличествоКартридж,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоБарабан, 0)) КАК КоличествоБарабан,
СУММА(ЕСТЬNULL(ПредИтог.КоличествоЗИП, 0)) КАК КоличествоЗИП,
ПредИтог.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
СУММА(ЕСТЬNULL(ПредИтог.СуммаАппараты, 0)) КАК СуммаАппараты,
СУММА(ЕСТЬNULL(ПредИтог.СуммаРМ, 0)) КАК СуммаРМ,
СУММА(ЕСТЬNULL(ПредИтог.СуммаКартриджи, 0)) КАК СуммаКартриджи,
СУММА(ЕСТЬNULL(ПредИтог.СуммаБарабаны, 0)) КАК СуммаБарабаны,
СУММА(ЕСТЬNULL(ПредИтог.СуммаЗИП, 0)) КАК СуммаЗИП,
СУММА(ЕСТЬNULL(ПредИтог.СуммаНераспределенная, 0)) КАК СуммаНераспределенная,
СУММА(ЕСТЬNULL(ПредИтог.СуммаНераспределенная, 0) + ЕСТЬNULL(ПредИтог.СуммаАппараты, 0) + ЕСТЬNULL(ПредИтог.СуммаРМ, 0) + ЕСТЬNULL(ПредИтог.СуммаЗИП, 0)) КАК ОбщаяСумма
ПОМЕСТИТЬ ВТ_ПредПредИтог
ИЗ
ПредИтог КАК ПредИтог
СГРУППИРОВАТЬ ПО
ПредИтог.Заказчик,
ПредИтог.ПризнакФЗ,
ПредИтог.ИНН,
ПредИтог.ПартнерИНН,
ПредИтог.ГоловнойКонтрагент,
ПредИтог.ЗаказчикИзБазыГоловнойКонтрагентИНН,
ПредИтог.Номенклатура,
ПредИтог.НоменклатураДляОтбора,
ПредИтог.КАМ,
ПредИтог.ПартнерскийМенеджер,
ВЫБОР
КОГДА ПредИтог.Партнер = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ИЛИ ПредИтог.Партнер = ""
ИЛИ ПредИтог.Партнер ЕСТЬ NULL
ТОГДА "Прямая продажа"
ИНАЧЕ ПредИтог.Партнер
КОНЕЦ,
ПредИтог.ДатаОтгрузкиВСтроке
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ПредПредИтог.Заказчик КАК Заказчик,
ВТ_ПредПредИтог.ПризнакФЗ КАК ПризнакФЗ,
ВТ_ПредПредИтог.Партнер КАК Партнер,
ВТ_ПредПредИтог.ИНН КАК ИНН,
ВТ_ПредПредИтог.ПартнерИНН КАК ПартнерИНН,
ВТ_ПредПредИтог.КоличествоАппараты КАК КоличествоАппараты,
ВТ_ПредПредИтог.КоличествоГарантий КАК КоличествоГарантий,
ВТ_ПредПредИтог.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
ВТ_ПредПредИтог.ГоловнойКонтрагентИНН КАК ГоловнойКонтрагентИНН,
ВТ_ПредПредИтог.Номенклатура КАК Номенклатура,
ВТ_ПредПредИтог.НоменклатураДляОтбора КАК НоменклатураДляОтбора,
ВТ_ПредПредИтог.КАМ КАК КАМ,
ВТ_ПредПредИтог.ПартнерскийМенеджер КАК ПартнерскийМенеджер,
ВТ_ПредПредИтог.КоличествоРМ КАК КоличествоРМ,
ВТ_ПредПредИтог.КоличествоКартридж КАК КоличествоКартридж,
ВТ_ПредПредИтог.КоличествоБарабан КАК КоличествоБарабан,
ВТ_ПредПредИтог.КоличествоЗИП КАК КоличествоЗИП,
ВЫБОР
КОГДА ВТ_ПредПредИтог.КоличествоКартридж <> 0
И ВТ_ПредПредИтог.КоличествоАппараты <> 0
ТОГДА ВТ_ПредПредИтог.КоличествоКартридж / ВТ_ПредПредИтог.КоличествоАппараты
ИНАЧЕ 0
КОНЕЦ КАК КоэффициентКартриджи,
ВЫБОР
КОГДА ВТ_ПредПредИтог.КоличествоБарабан <> 0
И ВТ_ПредПредИтог.КоличествоАппараты <> 0
ТОГДА ВТ_ПредПредИтог.КоличествоБарабан / ВТ_ПредПредИтог.КоличествоАппараты
ИНАЧЕ 0
КОНЕЦ КАК КоэффициентБарабаны,
ВЫБОР
КОГДА ВТ_ПредПредИтог.КоличествоЗИП <> 0
И ВТ_ПредПредИтог.КоличествоАппараты <> 0
ТОГДА ВТ_ПредПредИтог.КоличествоЗИП / ВТ_ПредПредИтог.КоличествоАппараты
ИНАЧЕ 0
КОНЕЦ КАК КоэффициентЗИП,
ВТ_ПредПредИтог.ДатаОтгрузкиВСтроке КАК ДатаОтгрузкиВСтроке,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаАппараты КАК ЧИСЛО(20, 2)) КАК СуммаАппараты,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаРМ КАК ЧИСЛО(20, 2)) КАК СуммаРМ,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаКартриджи КАК ЧИСЛО(20, 2)) КАК СуммаКартриджи,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаБарабаны КАК ЧИСЛО(20, 2)) КАК СуммаБарабаны,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаЗИП КАК ЧИСЛО(20, 2)) КАК СуммаЗИП,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.СуммаНераспределенная КАК ЧИСЛО(20, 2)) КАК СуммаНераспределенная,
ВЫРАЗИТЬ(ВТ_ПредПредИтог.ОбщаяСумма КАК ЧИСЛО(20, 2)) КАК ОбщаяСумма
ИЗ
ВТ_ПредПредИтог КАК ВТ_ПредПредИтог
ГДЕ
(НЕ &Прошит
ИЛИ ВТ_ПредПредИтог.КоличествоАппараты <> 0
ИЛИ ВТ_ПредПредИтог.СуммаНераспределенная <> 0)