База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку с отсутствием группировки в запросе с агрегатами в 1С? › Ответ в теме: Как исправить ошибку с отсутствием группировки в запросе с агрегатами в 1С?
Если в вашем запросе нет оператора ГРУППИРОВАТЬ ПО, а в выборке есть агрегатные функции (СУММА), то 1С выдаст ошибку «Поле не входит в группу», потому что агрегатные функции требуют группировки.
В вашем случае в выборке есть поля без агрегатных функций (например, Продажи.Период, Продажи.Подразделение и т.д.) и одновременно есть СУММА(…). Это невозможно без группировки.
Чтобы исправить ошибку, нужно:
1. Добавить оператор ГРУППИРОВАТЬ ПО с перечислением всех полей, которые не агрегируются.
2. Либо убрать агрегатные функции, если они не нужны.
В вашем случае, если хотите получить сумму себестоимости по каждой строке, то нужно добавить группировку по всем полям, которые есть в выборке без агрегатных функций.
Пример:
|СГРУППИРОВАТЬ ПО
| Продажи.Период,
| Продажи.Подразделение,
| Продажи.Менеджер,
| Продажи.ЗаказКлиента,
| Оплаты.РасчетныйДокумент,
| Продажи.АналитикаУчетаНоменклатуры,
| Продажи.ВидЗапасов,
| Продажи.ТипЗапасов,
| Продажи.СуммаВыручки,
| Продажи.СуммаВыручкиБезНДС,
| Продажи.СуммаВыручкиРегл,
| Продажи.Количество,
| Продажи.ДопРасходы,
| Продажи.ДопРасходыБезНДС,
| Продажи.ДопРасходыРегл,
| Продажи.РасходыНаПродажуСНДС,
| Продажи.РасходыНаПродажуБезНДС,
| Продажи.РасходыНаПродажуРегл
Если же вы хотите агрегировать и эти поля, то нужно заменить их на агрегатные функции (например, МАКСИМУМ, МИНИМУМ, СРЕДНЕЕ) или убрать из выборки.
—
Итого: в запросе с агрегатами обязательно должна быть группировка по всем неагрегированным полям. Иначе будет ошибка.
Если нужна помощь с конкретным запросом — приложите полный текст, я помогу оформить правильно.