Имя: Пароль:
1C
1С v8
ут 11.5 отчет "цены на дату документа"
0 letovd
 
17.05.23
14:13
Задача: получать данные о продажах, где вместо себестоимость определенный вид цены + будет рассчитываться наценка.
Для решения задача решил использовать следующий запрос, насколько он оптимален для задачи?

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Период КАК Период,
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ вт_ЦеныВПериоде
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НачалоПериода, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
    ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЦеныНоменклатуры.Период,
    ЦеныНоменклатуры.Номенклатура,
    ЦеныНоменклатуры.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ
    ЦеныНоменклатуры.Период > &НачалоПериода
    И ЦеныНоменклатуры.Период <= &КонецПериода
    И ЦеныНоменклатуры.ВидЦены = &ВидЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦеныЗаПериод_Начало.Номенклатура КАК Номенклатура,
    ЦеныЗаПериод_Начало.Цена КАК Цена,
    ЦеныЗаПериод_Начало.Период КАК НачалоПериода,
    ЕСТЬNULL(МИНИМУМ(ЦеныЗаПериод_Конец.Период), &КонецПериода) КАК КонецПериода
ПОМЕСТИТЬ вт_ПериодыЦен
ИЗ
    вт_ЦеныВПериоде КАК ЦеныЗаПериод_Начало
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ЦеныВПериоде КАК ЦеныЗаПериод_Конец
        ПО ЦеныЗаПериод_Начало.Номенклатура = ЦеныЗаПериод_Конец.Номенклатура
            И ЦеныЗаПериод_Начало.Период < ЦеныЗаПериод_Конец.Период

СГРУППИРОВАТЬ ПО
    ЦеныЗаПериод_Начало.Номенклатура,
    ЦеныЗаПериод_Начало.Цена,
    ЦеныЗаПериод_Начало.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродаж.Период КАК Ссылка,
    ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Партнер КАК Клиент,
    ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
    1 КАК Цифра,
    вт_ПериодыЦен.Цена КАК Цена
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ПериодыЦен КАК вт_ПериодыЦен
        ПО ВыручкаИСебестоимостьПродаж.Период >= вт_ПериодыЦен.НачалоПериода
            И ВыручкаИСебестоимостьПродаж.Период < вт_ПериодыЦен.КонецПериода
            И ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = вт_ПериодыЦен.Номенклатура
ГДЕ
    ВыручкаИСебестоимостьПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода
1 Мультук
 
17.05.23
14:20
ИМХО тут всё сказно

Книга знаний: Срез последних на каждую дату в запросе

Запрос, сори не читал.

P.S.
Что только люди не делают, только чтобы ССТ не считать
2 mikecool
 
17.05.23
17:02
(0) состыкуйся с AIMAN - он как раз чатгпт на написание запросов прикручивает
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой