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

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

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

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

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

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

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

ВЫБРАТЬ
	РеализацияТМЗ.Регистратор.Номер,
	РеализацияТМЗ.Номенклатура,
	РеализацияТМЗ.Регистратор,
	РеализацияТМЗ.КоличествоОборот
ИЗ
	РегистрНакопления.РеализацияТМЗ.Обороты
	(, , Регистратор, ) КАК РеализацияТМЗ

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

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

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

      Создание вычисляемого поля с функцией СКД Массив (Array)

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

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

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

      Настройка группировок и полей отчёта СКД

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

    Настройка вывода итогов СКД

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

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

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

Синтаксис:

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

Параметры:

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

ПОДПИСКА

Loading comments...