|
Злой запрос | ☑ | ||
---|---|---|---|---|
0
al_zzz
28.03.12
✎
23:20
|
Требуется получить цену закупа на по каждой позиции из регистра накопления "Продажи" на момент продажи, а потом из регистра накопления "Себестоимость" получить себестоимость по сгруппированной по номенклатуре таблице. Прочитал Книга знаний: Срез последних на каждую дату в запросе , как это делается с помощью подзапроса, составил свой:
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество, СУММА(ПродажиОбороты.СтоимостьОборот) КАК Выручка, СУММА(СебестоимостьОбороты.СтоимостьОборот) КАК Себестоимость, СРЕДНЕЕ(ЦеныЗакупа.Цена) КАК Цена ПОМЕСТИТЬ _1_Продажи {ВЫБРАТЬ Номенклатура.*, Количество, Выручка, Себестоимость, Цена} ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, (НЕ Контрагент В ИЕРАРХИИ (&СобственныеКонтрагенты))) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Обороты(, , Регистратор, ) КАК СебестоимостьОбороты ПО ПродажиОбороты.Номенклатура = СебестоимостьОбороты.Номенклатура И ПродажиОбороты.Регистратор = СебестоимостьОбороты.Регистратор ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦенаЗакупаМакс.Номенклатура КАК Номенклатура, ЦенаЗакупаМакс.Регистратор КАК Регистратор, ЦеныНоменклатуры.Цена КАК Цена ИЗ (ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период, ПродажиОбороты.Регистратор КАК Регистратор ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, (НЕ Контрагент В ИЕРАРХИИ (&СобственныеКонтрагенты))) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ПродажиОбороты.Номенклатура >= ЦеныНоменклатуры.Номенклатура И (ЦеныНоменклатуры.ТипЦен = &Закуп) И ПродажиОбороты.Регистратор.Дата >= ЦеныНоменклатуры.Период СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура, ПродажиОбороты.Регистратор) КАК ЦенаЗакупаМакс ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ЦенаЗакупаМакс.Номенклатура = ЦеныНоменклатуры.Номенклатура И ЦенаЗакупаМакс.Период = ЦеныНоменклатуры.Период И (ЦеныНоменклатуры.ТипЦен = &Закуп)) КАК ЦеныЗакупа ПО ПродажиОбороты.Номенклатура = ЦеныЗакупа.Номенклатура И ПродажиОбороты.Регистратор = ЦеныЗакупа.Регистратор {ГДЕ ПродажиОбороты.Номенклатура.*} СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _1_Продажи.Номенклатура КАК Номенклатура, _1_Продажи.Количество КАК Количество, _1_Продажи.Выручка КАК Выручка, _1_Продажи.Себестоимость КАК Себестоимость, ВложенныйЗапрос.СебестоимостьНаКонец КАК СебестоимостьНаКонец, _1_Продажи.Цена КАК Цена {ВЫБРАТЬ Номенклатура.*, Количество, Выручка, Себестоимость, СебестоимостьНаКонец, Цена} ИЗ _1_Продажи КАК _1_Продажи ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СебестоимостьОстатки.Номенклатура КАК Номенклатура, СебестоимостьОстатки.СтоимостьОстаток / СебестоимостьОстатки.КоличествоОстаток КАК СебестоимостьНаКонец ИЗ РегистрНакопления.Себестоимость.Остатки(&КонецПериода, ) КАК СебестоимостьОстатки ГДЕ СебестоимостьОстатки.КоличествоОстаток > 0) КАК ВложенныйЗапрос ПО _1_Продажи.Номенклатура = ВложенныйЗапрос.Номенклатура {ГДЕ _1_Продажи.Номенклатура.*} Но, видимо, получился очень тяжелый - выполняется уже около получаса и конца и краю не видно. Подскажите, как оптимизировать или где и чего я делаю не так. Запрос для СКД. 1с81. |
|||
1
sda553
28.03.12
✎
23:43
|
временные таблицы юзай
|
|||
2
acsent
28.03.12
✎
23:45
|
есть вариант создать временную таблицу
номенклатура , ... , период, дата окончания а уже потом соединять |
|||
3
acsent
28.03.12
✎
23:46
|
ПродажиОбороты.Номенклатура >= ЦеныНоменклатуры.Номенклатура
что это за х..ня? |
|||
4
acsent
28.03.12
✎
23:46
|
и ПродажиОбороты.Регистратор.Дата
заменить на ПродажиОбороты.Период |
|||
5
ILM
гуру
28.03.12
✎
23:51
|
Что это за "Требуется получить цену закупа на по каждой позиции из регистра накопления "Продажи" на момент продажи" -ня?
Особенно впечатлило сочетание "на по ... на" Я бы сделал последовательно ВТ_1. Запрос Номенклатура и Дата - Регистр "Продажи" ВТ_2. Максимальная цена закупа по номенклатуре со всеми условиями ВТ_3. Себестоимость 4. Последний запрос из ВТ_1, ВТ_2, ВТ_3. |
|||
6
al_zzz
28.03.12
✎
23:58
|
(3) Ага, согласен. Собственно, это и оказалось причиной.
|
|||
7
al_zzz
29.03.12
✎
00:01
|
(5) Воспользуюсь вашим советом. :-).
|
|||
8
al_zzz
29.03.12
✎
01:03
|
Переделал. Вот ещё вопрос - возможно ли вывести несколько ресурсов в СКД в одной колонке? Как это указать в настройке?
|
|||
9
ILM
гуру
29.03.12
✎
20:50
|
(8) В макете группируй, там есть вывод в одной колонке.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |