Добрый день!
Нужны последние цены на начало 2017 года. Поняла уже, что простой срез регистра дает много повторов с разными ценами. После всех размышлений получилось. Кажется, близко к правде, но все равно по некоторым позициям выдает странные повторы: номенклатура и характеристика совпадают, но первая цена правильная, а вторая вообще левая (с первой установки цены или вообще другая). Может, можно как-то подредактировать этот запрос?
Нужны последние цены на начало 2017 года. Поняла уже, что простой срез регистра дает много повторов с разными ценами. После всех размышлений получилось. Кажется, близко к правде, но все равно по некоторым позициям выдает странные повторы: номенклатура и характеристика совпадают, но первая цена правильная, а вторая вообще левая (с первой установки цены или вообще другая). Может, можно как-то подредактировать этот запрос?
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.ТипЦен,
ЦеныНоменклатурыСрезПоследних.Период КАК Период,
ЦеныНоменклатурыСрезПоследних.Валюта,
ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ПОМЕСТИТЬ ВТ_Цены
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследних.ТипЦен.Код КАК СТРОКА(9)) В (&ТипЦен)
И НЕ ЦеныНоменклатурыСрезПоследних.Номенклатура.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.ТипЦен,
ЦеныНоменклатурыСрезПоследних.Период,
ЦеныНоменклатурыСрезПоследних.Валюта,
ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Цены.Номенклатура,
МАКСИМУМ(ВТ_Цены.Период) КАК Период,
ВТ_Цены.ТипЦен,
ВТ_Цены.Валюта,
ВТ_Цены.СпособРасчетаЦены,
ВТ_Цены.ЕдиницаИзмерения,
ВТ_Цены.ХарактеристикаНоменклатуры
ПОМЕСТИТЬ ВТ_ДатыПоследнихЦен
ИЗ
ВТ_Цены КАК ВТ_Цены
ГДЕ
ВТ_Цены.Период <= &Дата
СГРУППИРОВАТЬ ПО
ВТ_Цены.Номенклатура,
ВТ_Цены.ТипЦен,
ВТ_Цены.Валюта,
ВТ_Цены.СпособРасчетаЦены,
ВТ_Цены.ЕдиницаИзмерения,
ВТ_Цены.ХарактеристикаНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_Цены.Номенклатура,
ВТ_Цены.Цена,
ВТ_Цены.ТипЦен,
ВТ_Цены.Период,
ВТ_ДатыПоследнихЦен.Валюта,
ВТ_ДатыПоследнихЦен.СпособРасчетаЦены,
ВТ_ДатыПоследнихЦен.ЕдиницаИзмерения,
ВТ_ДатыПоследнихЦен.ХарактеристикаНоменклатуры
ПОМЕСТИТЬ ВТ_ПоследниеЦены
ИЗ
ВТ_Цены КАК ВТ_Цены
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДатыПоследнихЦен КАК ВТ_ДатыПоследнихЦен
ПО ВТ_Цены.Номенклатура = ВТ_ДатыПоследнихЦен.Номенклатура
И ВТ_Цены.Период = ВТ_ДатыПоследнихЦен.Период
СГРУППИРОВАТЬ ПО
ВТ_Цены.Номенклатура,
ВТ_Цены.Цена,
ВТ_Цены.ТипЦен,
ВТ_Цены.Период,
ВТ_ДатыПоследнихЦен.Валюта,
ВТ_ДатыПоследнихЦен.СпособРасчетаЦены,
ВТ_ДатыПоследнихЦен.ЕдиницаИзмерения,
ВТ_ДатыПоследнихЦен.ХарактеристикаНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_ПоследниеЦены.Номенклатура,
МИНИМУМ(ВТ_ПоследниеЦены.Цена) КАК Цена,
ВТ_ПоследниеЦены.ТипЦен,
ВТ_ПоследниеЦены.Валюта,
ВТ_ПоследниеЦены.СпособРасчетаЦены,
ВТ_ПоследниеЦены.ЕдиницаИзмерения,
ВТ_ПоследниеЦены.ХарактеристикаНоменклатуры
ИЗ
ВТ_ПоследниеЦены КАК ВТ_ПоследниеЦены
СГРУППИРОВАТЬ ПО
ВТ_ПоследниеЦены.Номенклатура,
ВТ_ПоследниеЦены.ТипЦен,
ВТ_ПоследниеЦены.Валюта,
ВТ_ПоследниеЦены.СпособРасчетаЦены,
ВТ_ПоследниеЦены.ЕдиницаИзмерения,
ВТ_ПоследниеЦены.ХарактеристикаНоменклатуры
ПоказатьПо теме из базы знаний
- Срез последних на каждую дату в СКД и в запросе
- Заполнение цены реализации по последним ценам расходных накладных
- Валовая прибыль по ценам закупки на дату продажи. БП 3.0
- Валовая прибыль / потенциальные продажи по закупочным ценам на дату продажи
- Последний раз про срез последних (на каждую дату в запросе)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Условие по нужному типу цен поставьте
upd: может всё сократить до :
upd: может всё сократить до :
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.ТипЦен,
ЦеныНоменклатурыСрезПоследних.Период КАК Период,
ЦеныНоменклатурыСрезПоследних.Валюта,
ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
Показать
(1) делаешь вложенный запрос. В нем соединяешь с регистром цен по нужному типу и выводишь по максимуму только его период, с условием до даты документа.
Затем в итоговом запрос второй раз делаешь соединение уже по периоду. И все вот тебе и срез последних на каждую дату документа!
Затем в итоговом запрос второй раз делаешь соединение уже по периоду. И все вот тебе и срез последних на каждую дату документа!
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ТипЦен,
| ЦеныНоменклатурыСрезПоследних.Период КАК Период,
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
|ПОМЕСТИТЬ ВТ_Цены
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследних.ТипЦен.Код КАК СТРОКА(9)) В (&ТипЦен)
| И НЕ ЦеныНоменклатурыСрезПоследних.Номенклатура.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ТипЦен,
| ЦеныНоменклатурыСрезПоследних.Период,
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ВТ_Цены.Номенклатура,
| МАКСИМУМ(ВТ_Цены.Период) КАК Период,
| МАКСИМУМ(ВТ_Цены.ТипЦен) КАК ТипЦен,
| МАКСИМУМ(ВТ_Цены.Валюта) КАК Валюта,
| МАКСИМУМ(ВТ_Цены.СпособРасчетаЦены) КАК СпособРасчетаЦены,
| МАКСИМУМ(ВТ_Цены.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
| ВТ_Цены.ХарактеристикаНоменклатуры
|ПОМЕСТИТЬ ВТ_ДатыПоследнихЦен
|ИЗ
| ВТ_Цены КАК ВТ_Цены
|ГДЕ
| ВТ_Цены.Период <= &Дата
|
|СГРУППИРОВАТЬ ПО
| ВТ_Цены.Номенклатура,
| ВТ_Цены.ХарактеристикаНоменклатуры
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТ_ДатыПоследнихЦен.Номенклатура,
| МАКСИМУМ(ВТ_Цены.Цена) КАК Цена,
| МАКСИМУМ(ВТ_ДатыПоследнихЦен.Период) КАК Период,
| ВТ_ДатыПоследнихЦен.ХарактеристикаНоменклатуры
|ПОМЕСТИТЬ ВТ_ПоследниеЦены
|ИЗ
| ВТ_ДатыПоследнихЦен КАК ВТ_ДатыПоследнихЦен
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Цены КАК ВТ_Цены
| ПО (ВТ_Цены.Номенклатура = ВТ_ДатыПоследнихЦен.Номенклатура)
| И (ВТ_Цены.Период = ВТ_ДатыПоследнихЦен.Период)
| И ВТ_ДатыПоследнихЦен.ХарактеристикаНоменклатуры = ВТ_Цены.ХарактеристикаНоменклатуры
|
|СГРУППИРОВАТЬ ПО
| ВТ_ДатыПоследнихЦен.ХарактеристикаНоменклатуры,
| ВТ_ДатыПоследнихЦен.Номенклатура
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТ_ПоследниеЦены.Номенклатура,
| МИНИМУМ(ВТ_ПоследниеЦены.Цена) КАК Цена,
| ВТ_ПоследниеЦены.ХарактеристикаНоменклатуры
|ИЗ
| ВТ_ПоследниеЦены КАК ВТ_ПоследниеЦены
|
|СГРУППИРОВАТЬ ПО
| ВТ_ПоследниеЦены.Номенклатура,
| ВТ_ПоследниеЦены.ХарактеристикаНоменклатуры"
ПоказатьЕсли нужен тип цены, то сделай еще 1 пакет с получение его левым соединением по дате из последнего запроса
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот