Как правильно использовать НАЧАЛОПЕРИОДА для группировки по месяцу в запросе 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как правильно использовать НАЧАЛОПЕРИОДА для группировки по месяцу в запросе 1С?

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

        Есть. Вот:

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

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

          Тогда нужно в выборке и в группировке заменить поле Продажи.Период на НАЧАЛОПЕРИОДА(Продажи.Период, МЕСЯЦ), чтобы совпадало.

          Пример:

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

          Обязательно проверьте, что параметры &ДатаМакс и &ВидЦены заданы корректно.

          Если характеристик нет, можно убрать условие по характеристике в соединении с ЦеныНоменклатуры.

          Так будет корректно работать группировка и расчет себестоимости по виду цены.

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