СоединитьСтроки — используется в СКД для получения ресурса (объединяет строки в одну строку)
Функция доступна на платформах, начиная с версии 8.2.14.
Для примера рассмотрим задачу, вывести в одной ячейке документ, а в другой всю номенклатуру этого документа в одной ячейке.
В СКД создаем набор данных, и переходим на вкладку «Ресурсы» и создаем необходимые ресурсы с использование функции СоединитьСтроки().
В отчете это будет выглядеть так:
Добрый день!
Спасибо за статью!
Сделал следующим образом: в отчете СКД использовал 2 набора данных «Запрос». В первом присутствуют документы; во втором — данные табличных частей. Соединил наборы по ссылке. Далее сделал, как указано на скрине.
Но в отчет выводится только первая строка табличной части. Подскажите пожалуйста, что я сделал не так?
Доброго времени суток, уважаемые читатели нашего блога! Сегодня я хочу рассказать, на реальном примере, как
использовать функции СКД Массив (Array) и СоединитьСтроки (JoinStrings). В статье об
СКД
немного упоминалось, как работать с
функциями языка выражений СКД на закладке
«Вычисляемые поля», также уже объяснялось как
настроить итоги в схеме компоновки данных 1С, используя закладку «Ресурсы». Сегодня мы ещё раз обратим внимание на эти
закладки в свете нашей темы.
Содержание
- Содержание
- Постановка задачи для применения функций СКД Массив (Array) и СоединитьСтроки (JoinStrings)
- Реализация поставленной задачи с применением функций СКД Массив и СоединитьСтроки
- Описание функции СоединитьСтроки (JoinStrings)
Содержание
Внешний вид примера отчета 1С с использованием двух функций СКД Массив и СоединитьСтроки следующий:
Постановка задачи для применения функций СКД Массив (Array) и СоединитьСтроки (JoinStrings)
Задача: Нужно все номера реализаций по одному товару вставить в одну ячейку.
Что-то вроде: номенклатура | кол-во | 001, 002, и т.д. |
Будем использовать запрос к регистру накопления «РеализацияТМЗ».
Регистру накопления «РеализацияТМЗ» существует как в конфигурации Бухгалтерия, так и в конфигурации Управление торговым предприятием (УТП). Узнайте, как в конфигурации УТП установить свойство «Услуга» в элементе справочника «Номенклатура». Поэтому, после скачивания, для проверки его работоспособности вы можете запускать этот отчёт в обеих конфигурациях.
Реализация поставленной задачи с применением функций СКД Массив и СоединитьСтроки
- Создадим новый набор данных.
- Вставим в него, вышеуказанный запрос.
- Перейдём на закладку «Вычисляемые поля» и добавим новую запись.
- В поле «Путь к данным» напишем МассивНомеров.
- В поле «Выражение» напишем Массив(РегистраторНомер).
Выберем три поля «Номенклатура», «МассивНомеров», «КоличествоОборот».
«Расположение общих итогов по горизонтали» и «Расположение общих итогов по вертикали».
Такие же шаги, но с некоторыми дополнениями, были использованы при созданиии
отчёта о продаже номенклатуры по ГТД.
Описание функции СоединитьСтроки (JoinStrings)
СоединитьСтроки (JoinStrings)
Используется для объединения строк в одну строку.
СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)
- Значение — выражения, которые нужно объединить в одну строку.
Если является Массивом, то в строку будут объединяться элементы массива.
Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы; - РазделительЭлементов — строка, содержащая текст, который нужно использовать в качестве
разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк; - РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя
между колонками таблицы значений. По умолчанию «;».
Пожалуйста, Войдите или Зарегистрируйтесь чтобы получить ссылку на скачивание.
Нужно сделать строку из полей: поле1+поле2+поле3. Но тип значений в полях не везде «строка»
Рассмотрим все варианты как соединить строку с другими типами:
1 вариант нужно просто преобразовать число в строку в запросе
используйте Представление(Ваше_числовое_поле) — только это все равно не строка т.к. со строкой не сможете далее объединить.
Плохо то, что все равно дальше объединить со строкой не получится. Всегда будет ошибка.
Почитав немного темы с теми же проблемами не увидел ничего внятного кроме извращений.
И реализовал так:
В запросе вообще не трогаем поля. Для объединения используем раздел вычисляемые поля. Все становится очень просто и понятно.
Вот и все решение. Просто форматируем исходный тип данных в строку, можно даже использовать «Формат» чтобы сделать нужный вид(например убрать разделители как в примере).
- Главная
- Блог
- В помощь 1с программисту
- Соединить строки или строку с числом в запросе скд. Соединить поля любых типов в строку в СКД
Google+
Источник: