Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Прошу помощи с запросом (http://forums.kuban.ru/f1040/proshu_pomoshi_s_zaprosom-7344418.html)

JohnBerrimor 26.11.2015 08:52

Прошу помощи с запросом
 
Начинающий, скорее всего это уже спрашивали, найти не смог, потому прошу помощи профи:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Подразделения.Ссылка,
ВложенныйЗапрос.РегистраторСкладОрдер,
ВложенныйЗапрос.Цена
ИЗ
Справочник.Подразделения КАК Подразделения
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
ЦеныНоменклатурыКонтрагентов.Цена КАК Цена,
ЦеныНоменклатурыКонтрагентов.Период КАК Период,
ЦеныНоменклатурыКонтрагентов.Регистратор.СкладОрдер КАК РегистраторСкладОрдер,
ЦеныНоменклатурыКонтрагентов.Номенклатура КАК Номенклатура
ИЗ
РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов
ГДЕ
ЦеныНоменклатурыКонтрагентов.Номенклатура = &Номенклатура

УПОРЯДОЧИТЬ ПО
Период) КАК ВложенныйЗапрос
ПО Подразделения.Ссылка = ВложенныйЗапрос.РегистраторСкладОрдер.Подразделение

Пытаюсь полуить последжнюю цену из регистра "ЦеныНоменклатурыКонтрагентов" в разрезе подразделений. Выдется лиш одна цена для одного подразделения.

Jimbo 26.11.2015 09:00

одна цена для одного подразделения и одного ПЕРИОДА

упорядочить по убывания - нуна, или срезпоследних регистра

JohnBerrimor 26.11.2015 09:08

Пример надуманные слегка, вырван из контекста. В принципе нужно перечислить все подразделения и для указанной номенклатуры показать цену если она для данного подразделения есть.

JohnBerrimor 26.11.2015 09:12

Через срез последних делал получилось так:

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

JohnBerrimor 26.11.2015 09:13

Вроде все верно, но при анализе точно вижу что есть цены и по другим подразделениям которые не отображаются в результате. Поэтому подозреваю ошибку

angro 26.11.2015 10:05

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

JohnBerrimor 26.11.2015 11:38

Выдает одну строку результата с последним документом по одномук из подразделений, что логично.

JohnBerrimor 26.11.2015 11:39

Без
ПО Подразделения.Ссылка = ВложенныйЗапрос.РегистраторСкладОрдер.Подразделение
так и должно быть

roma n 26.11.2015 11:57

[em]Без
ПО Подразделения.Ссылка = ВложенныйЗапрос.РегистраторСкладОрдер.Подразделени е
так и должно быть[/em]

Вопрос в другом: почему с [em]ПО Подразделения.Ссылка = ВложенныйЗапрос.РегистраторСкладОрдер.Подразделение[/em] так быть НЕ должно?

JohnBerrimor 26.11.2015 12:02

:) ясно, тогда поставим вопрос - как сделать ВЕРНО?

angro 26.11.2015 12:15

как-то так

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

JohnBerrimor 26.11.2015 13:24

10-angro >
Спасибо за наводку Максимум(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) как Период
остальное было дело техники, все получилось


Текущее время: 23:24. Часовой пояс GMT +3.