ВЫБРАТЬ РАЗЛИЧНЫЕ Сегменты.Номенклатура, Сегменты.Характеристика, ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры ИЗ РегистрСведений.НоменклатураСегмента КАК Сегменты {ГДЕ Сегменты.Сегмент.* КАК СегментНоменклатуры, Сегменты.Номенклатура.* КАК Номенклатура, Сегменты.Характеристика.* КАК Характеристика} ИНДЕКСИРОВАТЬ ПО Сегменты.Номенклатура, Сегменты.Характеристика, ИспользуетсяОтборПоСегментуНоменклатуры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Характеристика КАК Характеристика, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК МаксимальнаяДата ПОМЕСТИТЬ ВременнаяТаблица_1 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата <= КОНЕЦПЕРИОДА(&ДатаДокумента, День) И ПоступлениеТоваровУслугТовары.Ссылка.Проведен И НЕ &ЭтоВводНаОсновании {ГДЕ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Характеристика КАК Характеристика} СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Характеристика, ПоступлениеТоваровУслугТовары.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Характеристика КАК Характеристика, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка) КАК ДокументПоступления ПОМЕСТИТЬ ВременнаяТаблица_2 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица_1 КАК Таблица ПО ПоступлениеТоваровУслугТовары.Номенклатура = Таблица.Номенклатура И ПоступлениеТоваровУслугТовары.Характеристика = Таблица.Характеристика И ПоступлениеТоваровУслугТовары.Ссылка.Дата = Таблица.МаксимальнаяДата ГДЕ НЕ &ЭтоВводНаОсновании И ПоступлениеТоваровУслугТовары.Ссылка.Проведен СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Характеристика, ПоступлениеТоваровУслугТовары.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыДокумента.Номенклатура КАК Номенклатура, ТоварыДокумента.Характеристика КАК Характеристика, ТоварыДокумента.Упаковка КАК Упаковка, ТоварыДокумента.КоличествоУпаковок КАК КоличествоУпаковок, ЕСТЬNULL(ТоварыДокумента.Упаковка.Коэффициент, 1) КАК Коэффициент, ВЫРАЗИТЬ(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС И ТоварыДокумента.Ссылка.ЦенаВключаетНДС ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокумента.Ссылка.ЦенаВключаетНДС ТОГДА ТоварыДокумента.Цена КОГДА ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокумента.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокумента.Сумма + ТоварыДокумента.СуммаНДС) / ТоварыДокумента.КоличествоУпаковок КОГДА НЕ ВидыЦен.ЦенаВключаетНДС И ТоварыДокумента.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокумента.Сумма - ТоварыДокумента.СуммаНДС) / ТоварыДокумента.КоличествоУпаковок КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Цена, ТоварыДокумента.Ссылка.Валюта КАК Валюта ПОМЕСТИТЬ ТаблицаЦены ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ТоварыДокумента ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица_2 КАК Таблица ПО ТоварыДокумента.Номенклатура = Таблица.Номенклатура И ТоварыДокумента.Характеристика = Таблица.Характеристика И ТоварыДокумента.Ссылка = Таблица.ДокументПоступления ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен ПО (ВидыЦен.Ссылка = &ВидЦены) ГДЕ НЕ &ЭтоВводНаОсновании И ТоварыДокумента.КоличествоУпаковок <> 0 И ТоварыДокумента.Ссылка.Проведен {ГДЕ ((ТоварыДокумента.Номенклатура, ТоварыДокумента.Характеристика) В (ВЫБРАТЬ ОтборПоСегментуНоменклатуры.Номенклатура, ОтборПоСегментуНоменклатуры.Характеристика ИЗ ОтборПоСегментуНоменклатуры ГДЕ ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))} ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика, ТоварыДокументаВводНаОсновании.Упаковка, ТоварыДокументаВводНаОсновании.КоличествоУпаковок, ЕСТЬNULL(ТоварыДокументаВводНаОсновании.Упаковка.Коэффициент, 1), ВЫРАЗИТЬ(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС И ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена КОГДА ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокументаВводНаОсновании.Сумма + ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок КОГДА НЕ ВидыЦен.ЦенаВключаетНДС И ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокументаВводНаОсновании.Сумма - ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок КОНЕЦ КАК ЧИСЛО(15, 2)), ТоварыДокументаВводНаОсновании.Ссылка.Валюта ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ТоварыДокументаВводНаОсновании ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен ПО (ВидыЦен.Ссылка = &ВидЦены) ГДЕ ТоварыДокументаВводНаОсновании.Ссылка = &Основание И ТоварыДокументаВводНаОсновании.КоличествоУпаковок <> 0 И ТоварыДокументаВводНаОсновании.Ссылка.Проведен И &ЭтоВводНаОсновании {ГДЕ ((ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика) В (ВЫБРАТЬ ОтборПоСегментуНоменклатуры.Номенклатура, ОтборПоСегментуНоменклатуры.Характеристика ИЗ ОтборПоСегментуНоменклатуры ГДЕ ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))} ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика, ТоварыДокументаВводНаОсновании.Упаковка, ТоварыДокументаВводНаОсновании.КоличествоУпаковок, ЕСТЬNULL(ТоварыДокументаВводНаОсновании.Упаковка.Коэффициент, 1), ВЫРАЗИТЬ(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС И ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена КОГДА ВидыЦен.ЦенаВключаетНДС И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокументаВводНаОсновании.Сумма + ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок КОГДА НЕ ВидыЦен.ЦенаВключаетНДС И ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС ТОГДА (ТоварыДокументаВводНаОсновании.Сумма - ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок КОНЕЦ КАК ЧИСЛО(15, 2)), ТоварыДокументаВводНаОсновании.Ссылка.Валюта ИЗ Документ.ЗаказПоставщику.Товары КАК ТоварыДокументаВводНаОсновании ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен ПО (ВидыЦен.Ссылка = &ВидЦены) ГДЕ ТоварыДокументаВводНаОсновании.Ссылка = &Основание И ТоварыДокументаВводНаОсновании.КоличествоУпаковок <> 0 И ТоварыДокументаВводНаОсновании.Ссылка.Проведен И &ЭтоВводНаОсновании {ГДЕ ((ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика) В (ВЫБРАТЬ ОтборПоСегментуНоменклатуры.Номенклатура, ОтборПоСегментуНоменклатуры.Характеристика ИЗ ОтборПоСегментуНоменклатуры ГДЕ ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))} ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыДокументаВводНаОсновании.НоменклатураОприходование, ТоварыДокументаВводНаОсновании.ХарактеристикаОприходование, ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка), ТоварыДокументаВводНаОсновании.Количество, 1, ВЫРАЗИТЬ(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена КОГДА НЕ ВидыЦен.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена - ТоварыДокументаВводНаОсновании.Цена * ВЫБОР КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18) ТОГДА 0.18 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10) ТОГДА 0.1 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0) ТОГДА 0 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) ТОГДА 0 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118) ТОГДА 0.18 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110) ТОГДА 0.1 ИНАЧЕ 0 КОНЕЦ КОНЕЦ КАК ЧИСЛО(15, 2)), Константы.ВалютаУправленческогоУчета ИЗ Документ.ПорчаТоваров.Товары КАК ТоварыДокументаВводНаОсновании ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен ПО (ВидыЦен.Ссылка = &ВидЦены) ЛЕВОЕ СОЕДИНЕНИЕ Константы КАК Константы ПО (ИСТИНА) ГДЕ ТоварыДокументаВводНаОсновании.Ссылка = &Основание И ТоварыДокументаВводНаОсновании.Количество <> 0 И ТоварыДокументаВводНаОсновании.Ссылка.Проведен И &ЭтоВводНаОсновании {ГДЕ ((ТоварыДокументаВводНаОсновании.НоменклатураОприходование, ТоварыДокументаВводНаОсновании.ХарактеристикаОприходование) В (ВЫБРАТЬ ОтборПоСегментуНоменклатуры.Номенклатура, ОтборПоСегментуНоменклатуры.Характеристика ИЗ ОтборПоСегментуНоменклатуры ГДЕ ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))} ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика, ТоварыДокументаВводНаОсновании.Упаковка, ТоварыДокументаВводНаОсновании.КоличествоУпаковок, ЕСТЬNULL(ТоварыДокументаВводНаОсновании.Упаковка.Коэффициент, 1), ВЫРАЗИТЬ(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена КОГДА НЕ ВидыЦен.ЦенаВключаетНДС ТОГДА ТоварыДокументаВводНаОсновании.Цена - ТоварыДокументаВводНаОсновании.Цена * ВЫБОР КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18) ТОГДА 0.18 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10) ТОГДА 0.1 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0) ТОГДА 0 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) ТОГДА 0 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118) ТОГДА 0.18 КОГДА ТоварыДокументаВводНаОсновании.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110) ТОГДА 0.1 ИНАЧЕ 0 КОНЕЦ КОНЕЦ КАК ЧИСЛО(15, 2)), Константы.ВалютаУправленческогоУчета ИЗ Документ.ПрочееОприходованиеТоваров.Товары КАК ТоварыДокументаВводНаОсновании ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен ПО (ВидыЦен.Ссылка = &ВидЦены) ЛЕВОЕ СОЕДИНЕНИЕ Константы КАК Константы ПО (ИСТИНА) ГДЕ ТоварыДокументаВводНаОсновании.Ссылка = &Основание И ТоварыДокументаВводНаОсновании.КоличествоУпаковок <> 0 И ТоварыДокументаВводНаОсновании.Ссылка.Проведен И &ЭтоВводНаОсновании {ГДЕ ((ТоварыДокументаВводНаОсновании.Номенклатура, ТоварыДокументаВводНаОсновании.Характеристика) В (ВЫБРАТЬ ОтборПоСегментуНоменклатуры.Номенклатура, ОтборПоСегментуНоменклатуры.Характеристика ИЗ ОтборПоСегментуНоменклатуры ГДЕ ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))} ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ТаблицаЦены.Номенклатура КАК Номенклатура, ТаблицаЦены.Характеристика КАК Характеристика, ТаблицаЦены.Упаковка КАК Упаковка, ТаблицаЦены.Коэффициент КАК Коэффициент, ВЫБОР КОГДА &ВыборЦены = 1 ТОГДА ВЫРАЗИТЬ(Цены.МаксимальнаяЦенаЗаЕдиницу * ТаблицаЦены.Коэффициент КАК ЧИСЛО(15, 2)) КОГДА &ВыборЦены = 2 ТОГДА ВЫРАЗИТЬ(Цены.МинимальнаяЦенаЗаЕдиницу * ТаблицаЦены.Коэффициент КАК ЧИСЛО(15, 2)) КОГДА &ВыборЦены = 3 ТОГДА ВЫРАЗИТЬ(Цены.СредняяЦенаЗаЕдиницу * ТаблицаЦены.Коэффициент КАК ЧИСЛО(15, 2)) ИНАЧЕ 0 КОНЕЦ КАК Цена, ТаблицаЦены.Валюта КАК Валюта ИЗ ТаблицаЦены КАК ТаблицаЦены ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТаблицаЦены.Номенклатура КАК Номенклатура, ТаблицаЦены.Характеристика КАК Характеристика, МАКСИМУМ(ВЫРАЗИТЬ(ТаблицаЦены.Цена / ТаблицаЦены.Коэффициент КАК ЧИСЛО(15, 2))) КАК МаксимальнаяЦенаЗаЕдиницу, МИНИМУМ(ВЫРАЗИТЬ(ТаблицаЦены.Цена / ТаблицаЦены.Коэффициент КАК ЧИСЛО(15, 2))) КАК МинимальнаяЦенаЗаЕдиницу, СУММА(ТаблицаЦены.Цена * ТаблицаЦены.КоличествоУпаковок) / СУММА(ТаблицаЦены.КоличествоУпаковок * ТаблицаЦены.Коэффициент) КАК СредняяЦенаЗаЕдиницу, ТаблицаЦены.Валюта КАК Валюта ИЗ ТаблицаЦены КАК ТаблицаЦены СГРУППИРОВАТЬ ПО ТаблицаЦены.Номенклатура, ТаблицаЦены.Характеристика, ТаблицаЦены.Валюта) КАК Цены ПО (Цены.Номенклатура = ТаблицаЦены.Номенклатура) И (Цены.Характеристика = ТаблицаЦены.Характеристика) И (Цены.Валюта = ТаблицаЦены.Валюта) ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТаблицаЦены.Номенклатура КАК Номенклатура, ТаблицаЦены.Характеристика КАК Характеристика, МАКСИМУМ(ТаблицаЦены.Коэффициент) КАК МаксимальныйКоэффициент, МИНИМУМ(ТаблицаЦены.Коэффициент) КАК МинимальныйКоэффициент ИЗ ТаблицаЦены КАК ТаблицаЦены СГРУППИРОВАТЬ ПО ТаблицаЦены.Номенклатура, ТаблицаЦены.Характеристика) КАК Коэффициенты ПО (Коэффициенты.Номенклатура = ТаблицаЦены.Номенклатура) И (Коэффициенты.Характеристика = ТаблицаЦены.Характеристика) ГДЕ ВЫБОР КОГДА &ВыборУпаковки = 1 ТОГДА ТаблицаЦены.Коэффициент = Коэффициенты.МаксимальныйКоэффициент КОГДА &ВыборУпаковки = 2 ТОГДА ТаблицаЦены.Коэффициент = Коэффициенты.МинимальныйКоэффициент ИНАЧЕ ЛОЖЬ КОНЕЦ