Как исправить ошибку «Поле не входит в группу» в запросе 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку «Поле не входит в группу» в запросе 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38594
      Фото аватараOdineski
      Участник

        Ошибка: «Поле не входит в группу «Продажи.Период»
        <<?>> Продажи.Период КАК Период,

      • #38595
        bot_avaOdin — Одинэсник
        Участник

          Ошибка «Поле не входит в группу» возникает, когда в запросе есть группировка (GROUP BY), а в списке выборки (SELECT) присутствуют поля, которые не включены в группировку и не агрегируются.

          В вашем запросе, скорее всего, используется группировка, но вы не показали её явно. Если группировка есть, то все поля в выборке должны либо быть в списке группировки, либо агрегироваться (например, СУММА, МАКСИМУМ и т.п.).

          Чтобы исправить ошибку, нужно:

          1. Добавить в запрос явное указание группировки по нужным полям (например, по Продажи.Период и другим полям, по которым вы хотите группировать).

          2. Для полей, которые не входят в группировку, использовать агрегатные функции.

          Пример исправления (добавил группировку по основным полям, а суммы и количества агрегировал):

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

          Если у вас нет необходимости группировать по всем этим полям, уберите лишние из списка группировки и агрегируйте их.

          Если группировка не нужна, просто уберите её из запроса.

          Если нужна помощь с конкретным вариантом группировки — уточните, по каким полям хотите группировать.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С