1с соединитьстроки в скд

СоединитьСтроки — используется в СКД для получения ресурса (объединяет строки в одну строку)

Функция доступна на платформах, начиная с версии 8.2.14.

Для примера рассмотрим задачу, вывести в одной ячейке документ, а в другой всю номенклатуру этого документа в одной ячейке.

В СКД создаем набор данных, и переходим на вкладку «Ресурсы» и создаем необходимые ресурсы с использование функции СоединитьСтроки().

В отчете это будет выглядеть так:

Добрый день!
Спасибо за статью!

Сделал следующим образом: в отчете СКД использовал 2 набора данных «Запрос». В первом присутствуют документы; во втором — данные табличных частей. Соединил наборы по ссылке. Далее сделал, как указано на скрине.
Но в отчет выводится только первая строка табличной части. Подскажите пожалуйста, что я сделал не так?

Доброго времени суток, уважаемые читатели нашего блога! Сегодня я хочу рассказать, на реальном примере, как
использовать функции СКД Массив (Array) и СоединитьСтроки (JoinStrings). В статье об
СКД
немного упоминалось, как работать с
функциями языка выражений СКД на закладке
«Вычисляемые поля», также уже объяснялось как
настроить итоги в схеме компоновки данных 1С, используя закладку «Ресурсы». Сегодня мы ещё раз обратим внимание на эти
закладки в свете нашей темы.

Содержание

Внешний вид примера отчета 1С с использованием двух функций СКД Массив и СоединитьСтроки следующий:

Постановка задачи для применения функций СКД Массив (Array) и СоединитьСтроки (JoinStrings)

Задача: Нужно все номера реализаций по одному товару вставить в одну ячейку.

Что-то вроде: номенклатура | кол-во | 001, 002, и т.д. |

Будем использовать запрос к регистру накопления «РеализацияТМЗ».

Регистру накопления «РеализацияТМЗ» существует как в конфигурации Бухгалтерия, так и в конфигурации Управление торговым предприятием (УТП). Узнайте, как в конфигурации УТП установить свойство «Услуга» в элементе справочника «Номенклатура». Поэтому, после скачивания, для проверки его работоспособности вы можете запускать этот отчёт в обеих конфигурациях.

Реализация поставленной задачи с применением функций СКД Массив и СоединитьСтроки

  1. Создадим новый набор данных.
  2. Вставим в него, вышеуказанный запрос.
  3. Перейдём на закладку «Вычисляемые поля» и добавим новую запись.
  4. В поле «Путь к данным» напишем МассивНомеров.
  5. В поле «Выражение» напишем Массив(РегистраторНомер).

  • Перейдём на закладку «Ресурсы» и добавим новые записи из раздела «Доступные поля», используя кнопку «>».
  • Добавим МассивНомеров.
  • В поле «Выражение» напишем СоединитьСтроки(Массив(РегистраторНомер),»,»,»»).
  • В поле «Рассчитывать по…» выберем Номенклатура.
  • Добавим КоличествоОборот.
  • В поле «Выражение» напишем Сумма(КоличествоОборот).
  • В поле «Рассчитывать по…» выберем Номенклатура.

  • Перейдём на закладку «Настройки» и добавим новую группировку номенклатура.
  • Зесь же на закладке «Выбранные поля» добавим новые поля из раздела «Доступные поля», используя кнопку «>».
    Выберем три поля «Номенклатура», «МассивНомеров», «КоличествоОборот».

  • И наконец, перейдём на закладку «Другие настройки» и изменим две строки
    «Расположение общих итогов по горизонтали» и «Расположение общих итогов по вертикали».
  • В поле «Значение» установим значение «Нет». Это необходимо для запрета вывода итогов.

    Такие же шаги, но с некоторыми дополнениями, были использованы при созданиии

    отчёта о продаже номенклатуры по ГТД.

    Описание функции СоединитьСтроки (JoinStrings)

    СоединитьСтроки (JoinStrings)

    Используется для объединения строк в одну строку.

    СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

    1. Значение — выражения, которые нужно объединить в одну строку.
      Если является Массивом, то в строку будут объединяться элементы массива.
      Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
    2. РазделительЭлементов — строка, содержащая текст, который нужно использовать в качестве
      разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
    3. РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя
      между колонками таблицы значений. По умолчанию «;».

    Пожалуйста, Войдите или Зарегистрируйтесь чтобы получить ссылку на скачивание.

    Нужно сделать строку из полей: поле1+поле2+поле3. Но тип значений в полях не везде «строка»

    Рассмотрим все варианты как соединить строку с другими типами:

    1 вариант нужно просто преобразовать число в строку в запросе

    используйте Представление(Ваше_числовое_поле) — только это все равно не строка т.к. со строкой не сможете далее объединить.

    Плохо то, что все равно дальше объединить со строкой не получится. Всегда будет ошибка.

    Почитав немного темы с теми же проблемами не увидел ничего внятного кроме извращений.

    И реализовал так:

    В запросе вообще не трогаем поля. Для объединения используем раздел вычисляемые поля. Все становится очень просто и понятно.

    Вот и все решение. Просто форматируем исходный тип данных в строку, можно даже использовать «Формат» чтобы сделать нужный вид(например убрать разделители как в примере).

    • Главная
    • Блог
    • В помощь 1с программисту
    • Соединить строки или строку с числом в запросе скд. Соединить поля любых типов в строку в СКД

    Google+

  • © 2019 Услуги 1С программиста. Доработка и обслуживание 1С. Удаленное программирование по всей России. Платформы 7.7 8.2 8.3 , битрикс.

  • Понравилась статья? Поделиться с друзьями:
    Vkontakte.INFO
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: