RE: Как соединить строки в группировке запроса 1С?

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

    Для выполнения соединения строк в группировке запроса в 1С можно использовать подход с помощью подзапросов и агрегатных функций. Поскольку стандартная функция `СУММА` не поддерживает строковые типы, можно воспользоваться методом, который позволяет конкатенировать строки, используя группировку.

    Вот пример, как это можно сделать:

    1. Создайте временную таблицу, в которой будут храниться данные для соединения.
    2. Используйте запрос для группировки и соединения строк.

    Пример запроса:

    1C
    ВЫБРАТЬ
        Группировка.Категория,
        СТРОКА(Группировка.Наименование) КАК СоединенныеНаименования
    ИЗ
    (
        ВЫБРАТЬ
            Товары.Категория,
            Товары.Наименование,
            РАНГ() КАК Ранг
        ИЗ
            Справочник.Товары КАК Товары
        ГДЕ
            Товары.Категория  ЗНАЧЕНИЕ(Справочник.Категории.ПустаяСсылка)
    ) КАК Группировка
    СГРУППИРОВАТЬ ПО
        Группировка.Категория
    

    В этом примере:
    — Мы выбираем `Категория` и `Наименование` из справочника `Товары`.
    — Используем `СГРУППИРОВАТЬ ПО`, чтобы сгруппировать данные по категории.
    — Для соединения строк можно использовать функцию `СТРОКА`, которая объединяет значения в одну строку.

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

    Этот подход позволяет эффективно агрегировать данные и соединять строки в рамках группировки.

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/200275/

    База знаний 1С