Загрузка данных
Функция ТекстЗапросаБезНДС()
Возврат
"ВЫБРАТЬ
| ОстаткиТоваров.Номенклатура КАК Номенклатура
|ПОМЕСТИТЬ ВТ_Остатки
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ОстаткиТоваров
|ГДЕ
| ОстаткиТоваров.ВНаличииОстаток > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Только перечень оснований. Регистратор в выборку не берём:
|// дубли УстановкаЦенНоменклатуры по одному поступлению размножали строки.
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УстановкаЦен.ДокументОснование КАК Основание
|ПОМЕСТИТЬ ВТ_ДокУстановкаЦен
|ИЗ
| РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен
| ПО ЦеныНоменклатуры25.Регистратор = УстановкаЦен.Ссылка
|ГДЕ
| УстановкаЦен.Проведен
| И УстановкаЦен.ДокументОснование ССЫЛКА Документ.ПриобретениеТоваровУслуг
| И ЦеныНоменклатуры25.ВидЦены = &ВидЦены
| И ЦеныНоменклатуры25.Номенклатура В
| (ВЫБРАТЬ
| ВТ_Остатки.Номенклатура
| ИЗ
| ВТ_Остатки КАК ВТ_Остатки)
|
|СГРУППИРОВАТЬ ПО
| УстановкаЦен.ДокументОснование
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Свёртка по документу: несколько строк одной номенклатуры в одном ПТиУ
|// должны дать одно наблюдение, а не несколько.
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТовары.Номенклатура КАК Номенклатура,
| Док.Ссылка КАК Ссылка,
| Док.Дата КАК Дата,
| СУММА(ВЫБОР
| КОГДА Док.ЦенаВключаетНДС
| ТОГДА ДокТовары.Сумма - ДокТовары.СуммаНДС
| ИНАЧЕ ДокТовары.Сумма
| КОНЕЦ) КАК СуммаБезНДС,
| СУММА(ДокТовары.Количество) КАК Количество
|ПОМЕСТИТЬ ВТ_ПоДокументам
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ДокТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК Док
| ПО ДокТовары.Ссылка = Док.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДокУстановкаЦен КАК ВТ_ДокУстановкаЦен
| ПО Док.Ссылка = ВТ_ДокУстановкаЦен.Основание
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
| ПО ДокТовары.Номенклатура = ВТ_Остатки.Номенклатура
|ГДЕ
| Док.Проведен
| И ДокТовары.Количество > 0
| И ДокТовары.Сумма > 0
|
|СГРУППИРОВАТЬ ПО
| ДокТовары.Номенклатура,
| Док.Ссылка,
| Док.Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Цена одного поступления
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ПоДокументам.Номенклатура КАК Номенклатура,
| ВТ_ПоДокументам.Дата КАК Дата,
| ВЫРАЗИТЬ(ВТ_ПоДокументам.СуммаБезНДС / ВТ_ПоДокументам.Количество КАК ЧИСЛО(15, 2)) КАК ЦенаДокумента
|ПОМЕСТИТЬ ВТ_ЦеныДокументов
|ИЗ
| ВТ_ПоДокументам КАК ВТ_ПоДокументам
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Средняя — простое среднее цен поступлений: (50 + 100) / 2 = 75
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(СРЕДНЕЕ(ВТ_ЦеныДокументов.ЦенаДокумента) КАК ЧИСЛО(15, 2)) КАК СредняяЦена
|ПОМЕСТИТЬ ВТ_СредняяЦена
|ИЗ
| ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
|
|СГРУППИРОВАТЬ ПО
| ВТ_ЦеныДокументов.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
| МАКСИМУМ(ВТ_ЦеныДокументов.Дата) КАК ДатаПоследнейЗаписи
|ПОМЕСТИТЬ ВТ_МаксДата
|ИЗ
| ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
|
|СГРУППИРОВАТЬ ПО
| ВТ_ЦеныДокументов.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// СРЕДНЕЕ, а не СУММА: два разных поступления с одинаковой датой
|// (например 25.02.2026 23:59:59) давали завышение в 2 раза, три — в 3.
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(СРЕДНЕЕ(ВТ_ЦеныДокументов.ЦенаДокумента) КАК ЧИСЛО(15, 2)) КАК ТекущаяЦенаБезНДС
|ПОМЕСТИТЬ ВТ_ПоследняяЦена
|ИЗ
| ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_МаксДата КАК ВТ_МаксДата
| ПО ВТ_ЦеныДокументов.Номенклатура = ВТ_МаксДата.Номенклатура
| И ВТ_ЦеныДокументов.Дата = ВТ_МаксДата.ДатаПоследнейЗаписи
|
|СГРУППИРОВАТЬ ПО
| ВТ_ЦеныДокументов.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_СредняяЦена.Номенклатура КАК Номенклатура,
| ВТ_СредняяЦена.Номенклатура.Код КАК Код,
| ВТ_СредняяЦена.Номенклатура.Артикул КАК Артикул,
| ВТ_СредняяЦена.Номенклатура.Марка КАК Марка,
| ВТ_СредняяЦена.СредняяЦена КАК СредняяЦена,
| ВТ_ПоследняяЦена.ТекущаяЦенаБезНДС КАК Цена
|ИЗ
| ВТ_СредняяЦена КАК ВТ_СредняяЦена
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследняяЦена КАК ВТ_ПоследняяЦена
| ПО ВТ_СредняяЦена.Номенклатура = ВТ_ПоследняяЦена.Номенклатура
|ГДЕ
| НЕ ВТ_СредняяЦена.Номенклатура.ПометкаУдаления
| И ВТ_СредняяЦена.СредняяЦена > 0
|
|УПОРЯДОЧИТЬ ПО
| Код";
КонецФункции