Есть такой запрос -
В консоли отрабатывает на ура, без каких-либо проблем. Тащу его в скд - начинает ругаться, что ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезПервых.Период) не входит в группу. Хотя, сами видите - все группировки прописаны. Что может быть не так?
ВЫБРАТЬ
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
ЦеныНоменклатуры.Характеристика КАК Характеристика,
ЦеныНоменклатуры.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК Цена,
ЦеныНоменклатуры.Период КАК Период
ПОМЕСТИТЬ ВсеЦеныЗаПериод
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
{ГДЕ
(ЦеныНоменклатуры.Период МЕЖДУ &ПериодНачала И &ПериодОкончания),
(ЦеныНоменклатуры.Номенклатура = &Номенклатура),
(ЦеныНоменклатуры.ВидЦены = &ВидЦены)}
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВсеЦеныЗаПериод.Номенклатура КАК Номенклатура,
ВсеЦеныЗаПериод.Характеристика КАК Характеристика,
ВсеЦеныЗаПериод.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ПерваяЦена,
ЦеныНоменклатуры.Период КАК Период
ПОМЕСТИТЬ ПервыеЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ВсеЦеныЗаПериод КАК ВсеЦеныЗаПериод
ПО ЦеныНоменклатуры.Номенклатура = ВсеЦеныЗаПериод.Номенклатура
И ЦеныНоменклатуры.Характеристика = ВсеЦеныЗаПериод.Характеристика
И ЦеныНоменклатуры.ВидЦены = ВсеЦеныЗаПериод.ВидЦены
СГРУППИРОВАТЬ ПО
ВсеЦеныЗаПериод.Номенклатура,
ВсеЦеныЗаПериод.Характеристика,
ВсеЦеныЗаПериод.ВидЦены,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.Период
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ВсеЦеныЗаПериод.Период)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВсеЦеныЗаПериод.Номенклатура КАК Номенклатура,
ВсеЦеныЗаПериод.Характеристика КАК Характеристика,
ВсеЦеныЗаПериод.ВидЦены КАК ВидЦены,
ВсеЦеныЗаПериод.Цена КАК Цена,
ВсеЦеныЗаПериод.Период КАК Период
ПОМЕСТИТЬ ЦеныБезПервых
ИЗ
ПервыеЦены КАК ПервыеЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВсеЦеныЗаПериод КАК ВсеЦеныЗаПериод
ПО (ВсеЦеныЗаПериод.Номенклатура = ПервыеЦены.Номенклатура)
И (ВсеЦеныЗаПериод.Характеристика = ПервыеЦены.Характеристика)
И (ВсеЦеныЗаПериод.ВидЦены = ПервыеЦены.ВидЦены)
И (ВсеЦеныЗаПериод.Период <> ПервыеЦены.Период)
СГРУППИРОВАТЬ ПО
ВсеЦеныЗаПериод.Номенклатура,
ВсеЦеныЗаПериод.Характеристика,
ВсеЦеныЗаПериод.ВидЦены,
ВсеЦеныЗаПериод.Цена,
ВсеЦеныЗаПериод.Период
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныБезПервых.Номенклатура КАК Номенклатура,
ЦеныБезПервых.Характеристика КАК Характеристика,
ЦеныБезПервых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ВтораяЦена,
ЦеныНоменклатуры.Период КАК Период
ПОМЕСТИТЬ ВторыеЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезПервых КАК ЦеныБезПервых
ПО (ЦеныБезПервых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезПервых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезПервых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныБезПервых.Номенклатура,
ЦеныБезПервых.Характеристика,
ЦеныБезПервых.ВидЦены,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.Период
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезПервых.Период)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныБезПервых.Номенклатура КАК Номенклатура,
ЦеныБезПервых.Характеристика КАК Характеристика,
ЦеныБезПервых.ВидЦены КАК ВидЦены,
ЦеныБезПервых.Цена КАК Цена,
ЦеныБезПервых.Период КАК Период
ПОМЕСТИТЬ ЦеныБезВторых
ИЗ
ЦеныБезПервых КАК ЦеныБезПервых
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВторыеЦены КАК ВторыеЦены
ПО ЦеныБезПервых.Номенклатура = ВторыеЦены.Номенклатура
И ЦеныБезПервых.Характеристика = ВторыеЦены.Характеристика
И ЦеныБезПервых.ВидЦены = ВторыеЦены.ВидЦены
И ЦеныБезПервых.Цена <> ВторыеЦены.ВтораяЦена
СГРУППИРОВАТЬ ПО
ЦеныБезПервых.Номенклатура,
ЦеныБезПервых.Характеристика,
ЦеныБезПервых.ВидЦены,
ЦеныБезПервых.Цена,
ЦеныБезПервых.Период
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныБезВторых.Номенклатура КАК Номенклатура,
ЦеныБезВторых.Характеристика КАК Характеристика,
ЦеныБезВторых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ТретьяЦена
ПОМЕСТИТЬ ТретьиЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезВторых КАК ЦеныБезВторых
ПО (ЦеныБезВторых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезВторых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезВторых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Период,
ЦеныБезВторых.Номенклатура,
ЦеныБезВторых.Характеристика,
ЦеныБезВторых.ВидЦены,
ЦеныНоменклатуры.Цена
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезВторых.Период)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПервыеЦены.Номенклатура КАК Номенклатура,
ПервыеЦены.Характеристика КАК Характеристика,
ПервыеЦены.ВидЦены КАК ВидЦены,
ПервыеЦены.ПерваяЦена КАК ПерваяЦена,
ВторыеЦены.ВтораяЦена КАК ВтораяЦена,
ТретьиЦены.ТретьяЦена КАК ТретьяЦена
ИЗ
ПервыеЦены КАК ПервыеЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВторыеЦены КАК ВторыеЦены
ПО ПервыеЦены.Номенклатура = ВторыеЦены.Номенклатура
И ПервыеЦены.Характеристика = ВторыеЦены.Характеристика
И ПервыеЦены.ВидЦены = ВторыеЦены.ВидЦены
ЛЕВОЕ СОЕДИНЕНИЕ ТретьиЦены КАК ТретьиЦены
ПО ПервыеЦены.Номенклатура = ТретьиЦены.Номенклатура
И ПервыеЦены.Характеристика = ТретьиЦены.Характеристика
И ПервыеЦены.ВидЦены = ТретьиЦены.ВидЦены
СГРУППИРОВАТЬ ПО
ПервыеЦены.Период,
ПервыеЦены.Номенклатура,
ПервыеЦены.Характеристика,
ПервыеЦены.ВидЦены,
ПервыеЦены.ПерваяЦена,
ВторыеЦены.ВтораяЦена,
ТретьиЦены.ТретьяЦена
ПоказатьВ консоли отрабатывает на ура, без каких-либо проблем. Тащу его в скд - начинает ругаться, что ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезПервых.Период) не входит в группу. Хотя, сами видите - все группировки прописаны. Что может быть не так?
По теме из базы знаний
Найденные решения
Вот тут проблема - СКД не дает делать АГРЕГАТНЫЕ ФУНКЦИИ ПО ПЕРИОДУ МАКСИМУМ(ЦеныБезВторых.Период) (видимо из-за своих механизмов, нужно это обходить):
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныБезВторых.Номенклатура КАК Номенклатура,
ЦеныБезВторых.Характеристика КАК Характеристика,
ЦеныБезВторых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ТретьяЦена
ПОМЕСТИТЬ ТретьиЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезВторых КАК ЦеныБезВторых
ПО (ЦеныБезВторых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезВторых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезВторых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Период,
ЦеныБезВторых.Номенклатура,
ЦеныБезВторых.Характеристика,
ЦеныБезВторых.ВидЦены,
ЦеныНоменклатуры.Цена
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезВторых.Период)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныБезВторых.Номенклатура КАК Номенклатура,
ЦеныБезВторых.Характеристика КАК Характеристика,
ЦеныБезВторых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ТретьяЦена
ПОМЕСТИТЬ ТретьиЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезВторых КАК ЦеныБезВторых
ПО (ЦеныБезВторых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезВторых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезВторых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Период,
ЦеныБезВторых.Номенклатура,
ЦеныБезВторых.Характеристика,
ЦеныБезВторых.ВидЦены,
ЦеныНоменклатуры.Цена
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезВторых.Период)
;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вот тут проблема - СКД не дает делать АГРЕГАТНЫЕ ФУНКЦИИ ПО ПЕРИОДУ МАКСИМУМ(ЦеныБезВторых.Период) (видимо из-за своих механизмов, нужно это обходить):
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныБезВторых.Номенклатура КАК Номенклатура,
ЦеныБезВторых.Характеристика КАК Характеристика,
ЦеныБезВторых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ТретьяЦена
ПОМЕСТИТЬ ТретьиЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезВторых КАК ЦеныБезВторых
ПО (ЦеныБезВторых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезВторых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезВторых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Период,
ЦеныБезВторых.Номенклатура,
ЦеныБезВторых.Характеристика,
ЦеныБезВторых.ВидЦены,
ЦеныНоменклатуры.Цена
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезВторых.Период)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныБезВторых.Номенклатура КАК Номенклатура,
ЦеныБезВторых.Характеристика КАК Характеристика,
ЦеныБезВторых.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Цена КАК ТретьяЦена
ПОМЕСТИТЬ ТретьиЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБезВторых КАК ЦеныБезВторых
ПО (ЦеныБезВторых.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныБезВторых.Характеристика = ЦеныНоменклатуры.Характеристика)
И (ЦеныБезВторых.ВидЦены = ЦеныНоменклатуры.ВидЦены)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Период,
ЦеныБезВторых.Номенклатура,
ЦеныБезВторых.Характеристика,
ЦеныБезВторых.ВидЦены,
ЦеныНоменклатуры.Цена
ИМЕЮЩИЕ
ЦеныНоменклатуры.Период = МАКСИМУМ(ЦеныБезВторых.Период)
;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот