Допустим, в вашем отчете на СКД есть ресурс типа Строка, и вам в итогах по группировкам необходимо объединить значения этого ресурса. Для решения этой задачи следует использовать функцию языка выражений СоединитьСтроки.
СОЕДИНИТЬСТРОКИ (JOINSTRINGS)- агрегатная функция, позволяющая объединять строки в одну строку.
- Значения, которые нужно объединить в одну строку. Если является массивом, то в строку будут объединяться элементы массива. Если является таблицей значений, то в строку будут объединяться все колонки и строки таблицы;
- Разделитель элементов. Строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
- Разделители колонок. Строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию «;».
Отчет вводит данные табличной части Товары документа Реализация товаров и услуг. Необходимо в итогах по документу выводить наименования всех товаров присутствующих в нем.
На закладке Ресурсы, схемы компоновки данных отчета, укажем выражение СоединитьСтроки(Номенклатура, “,”) для ресурса Номенклатура.
На закладке Настройки зададим поля и группировки нужные нам в отчете.
Нужно сделать строку из полей: поле1+поле2+поле3. Но тип значений в полях не везде «строка»
Рассмотрим все варианты как соединить строку с другими типами:
1 вариант нужно просто преобразовать число в строку в запросе
используйте Представление(Ваше_числовое_поле) — только это все равно не строка т.к. со строкой не сможете далее объединить.
Плохо то, что все равно дальше объединить со строкой не получится. Всегда будет ошибка.
Почитав немного темы с теми же проблемами не увидел ничего внятного кроме извращений.
И реализовал так:
В запросе вообще не трогаем поля. Для объединения используем раздел вычисляемые поля. Все становится очень просто и понятно.
Вот и все решение. Просто форматируем исходный тип данных в строку, можно даже использовать «Формат» чтобы сделать нужный вид(например убрать разделители как в примере).
СоединитьСтроки — используется в СКД для получения ресурса (объединяет строки в одну строку)
Функция доступна на платформах, начиная с версии 8.2.14.
Для примера рассмотрим задачу, вывести в одной ячейке документ, а в другой всю номенклатуру этого документа в одной ячейке.
В СКД создаем набор данных, и переходим на вкладку «Ресурсы» и создаем необходимые ресурсы с использование функции СоединитьСтроки().
В отчете это будет выглядеть так:
Добрый день!
Спасибо за статью!
Сделал следующим образом: в отчете СКД использовал 2 набора данных «Запрос». В первом присутствуют документы; во втором — данные табличных частей. Соединил наборы по ссылке. Далее сделал, как указано на скрине.
Но в отчет выводится только первая строка табличной части. Подскажите пожалуйста, что я сделал не так?