Skip to main content

СКД

Механизм для создания отчетов в 1С на основе декларативного описания (без программирования, с настройками пользователем). Используется также в динамических списках и для подготовки данных.

Ключевые элементы и процесс

Весь процесс построения отчета — это цепочка из следующих элементов:

  1. Схема компоновки данных — «Что можно получить?» База отчета. Содержит:

    • Наборы данных (источники: Запрос, Объект, Объединение).
    • Поля и Вычисляемые поля.
    • Параметры (например, период).
    • Связи между наборами данных (левые соединения).
    • Ресурсы (поля для агрегации: Сумма, Количество).
    • Макеты оформления.
  2. Настройки компоновки данных — «Что и как показать?» Задает пользователь/разработчик. Содержит:

    • Структуру (иерархию: группировки, таблицы, диаграммы).
    • Отбор (фильтры).
    • Порядок (сортировка).
    • Выбранные поля.
    • Условное оформление.
  3. Макет компоновки данных — «Инструкция к исполнению». Готовое задание, результат применения Настроек к Схеме. Формируется автоматически.

  4. Результат компоновки — Набор элементов (начало/конец группировки, данные), который можно вывести в табличный документ, таблицу значений и т.д.

Этапы процесса: Создание/редактирование СхемыЗадание НастроекФормирование МакетаИсполнение (Процессором)Вывод Результата.

Объекты и инструменты

  • СхемаКомпоновкиДанных — Основной объект схемы.
  • КомпоновщикНастроекКомпоновкиДанных — Связывает схему и настройки.
  • КомпоновщикМакетаКомпоновкиДанных — Формирует макет из схемы и настроек. Ключевой метод Выполнить().
  • ПроцессорКомпоновкиДанных — Исполняет макет, выдает элементы результата. Ключевые методы Инициализировать(Макет), Следующий().
  • ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент — Выводит элементы в табличный документ.

Основные элементы схемы компоновки

  1. Поля:

    • Формируются автоматически из запроса.
    • Имеют роли («Период», «Измерение», «Остаток»), критичные для корректного расчета итогов по регистрам (остатки, обороты).
    • Можно настраивать оформление, подсказки, формы выбора.
  2. Ресурсы:

    • Поля, по которым считаются итоги (агрегаты: сумма, среднее, количество).
    • Итоги рассчитываются на уровне всей СКД, а не в запросе.
    • Можно задавать сложные выражения и агрегатные функции.
  3. Параметры:

    • Используются для динамической фильтрации данных (например, «Период», «Контрагент»).
    • Могут иметь доступные значения, типы и настройки редактирования.

Важные особенности и приемы

  1. Несколько наборов данных: Можно связывать в схеме. В настройках в одной группировке можно использовать поля только из связанных наборов (кроме ресурсов).
  2. Пользовательские настройки: Часть настроек (отборы, поля) можно вынести для быстрого редактирования пользователем в форме отчета.
  3. Автополя: Автоматическое заполнение группировок, выбранных полей и порядка на основе используемых ресурсов.
  4. Иерархия: Поддержка иерархических группировок (по справочникам) и условия В ИЕРАРХИИ. Требуется описать набор данных для построения иерархии.
  5. Расширение языка запросов: В запросе можно использовать директивы в {фигурных скобках} для интеграции со СКД:
    • {ВЫБРАТЬ Поле1, Поле2} — Какие поля будут доступны для выбора в настройках.
    • {ГДЕ Поле1, Поле2} — По каким полям можно делать отбор.
    • Параметры виртуальных таблиц {&ДатаНачала, &ДатаКонца} также становятся доступны для отбора.

Назначение ролей для полей

Роли полей в СКД — это ключевая настройка для корректного расчета итогов, особенно для работы с регистрами накопления, бухгалтерии и при использовании группировок по периодам. Роли сообщают системе, как обрабатывать поля при построении запросов и расчете агрегатов.

Типы ролей и их настройки:

1. Роль «Период»

Назначение: Для полей, содержащих даты/временные периоды. Используется при работе с виртуальными таблицами регистров, где задана периодичность.

Важные настройки:

  • Номер строки: Определяет иерархию периодов. Нумерация должна быть строго последовательной:
    • 1 — самый младший период (например, День)
    • 2 — старший (например, Месяц)
    • 3 — еще старший (например, Квартал)
  • Дополнительный (флаг):
    • Установлен — в итоговый запрос включаются только явно указанные периоды
    • Снят — в запрос автоматически включаются все родительские периоды (для корректного расчета остатков)

Особенности:

  • Поля с ролью «Период» нельзя использовать в одной группировке с другими полями
  • При периодичности «Регистратор» обязательно нужно поле «Период»
  • При периодичности «Авто» обязательно нужно поле «ПериодСекунда»
  • Проблема: Группировка по неделям совместно с месяцами может давать задвоение данных

2. Роль «Измерение»

Назначение: Для полей, по которым будут рассчитываться итоги (обычно измерения регистров).

Настройки:

  • Родительское поле: Если используется не само измерение, а его реквизит, здесь указывается родительское поле
  • Реквизит: Указывается конкретный реквизит измерения

Важно:

  • Родительское поле тоже должно иметь роль «Измерение»
  • Если в настройках выбрано подчиненное поле измерения, а само измерение не выбрано — оно будет добавлено в запрос неявно (для корректных итогов)

3. Роль «Счет»

Назначение: Для полей, содержащих бухгалтерские счета (работа с регистром бухгалтерии).

Настройки:

  • Вид счета: Обязательно указывается тип счета:
    • Активный
    • Пассивный
    • Активно-пассивный
  • Если не указан: Система считает счет активно-пассивным, но может некорректно обрабатывать отрицательные остатки

4. Роль «Остаток»

Назначение: Для полей начальных и конечных остатков регистров.

Настройки:

  • Имя: Группировочное имя для пары «Начальный-Конечный остаток». Должно быть одинаковым для обоих полев
  • Тип: Выбирается:
    • Начальный остаток
    • Конечный остаток
  • Бух. тип: Для регистра бухгалтерии указывается:
    • Дебет
    • Кредит
  • Поле счета: Связь с полем, имеющим роль «Счет»

Критически важно:

  • В схеме обязательно должны присутствовать оба поля (и начальный, и конечный остаток)
  • Если пользователь выбрал только один остаток — в запрос все равно включаются оба для корректных расчетов

Дополнительные настройки ролей (общие для всех)**

  1. «Игнорировать значение NULL»
  • Установлен: Из итоговой выборки исключаются записи, где это поле имеет значение NULL
  • Снят: NULL-значения участвуют в расчетах и отображении
  1. «Обязательное»
  • Установлен: Поле всегда включается в итоговый запрос, даже если не выбрано в настройках
  • Пример использования:
    • Принудительный расчет итогов по всем измерениям регистра
    • Развернутое сальдо по всем субконто в бухгалтерии
    • Обязательные поля для корректной работы расширений

Типичные ошибки и решения

  • Ошибка 1: Неправильная нумерация периодов

    • Симптом: Некорректный расчет остатков на начало периода
    • Решение: Проверить последовательность нумерации (1, 2, 3...)
  • Ошибка 2: Отсутствие пары «начальный-конечный» остаток

    • Симптом: Итоги не рассчитываются или считаются неправильно
    • Решение: Добавить оба поля с одинаковым «Именем» в роли «Остаток»
  • Ошибка 3: Роль «Счет» без указания вида

    • Симптом: Некорректное отображение отрицательных остатков
    • Решение: Указать правильный вид счета
  • Ошибка 4: Использование подчиненных реквизитов без родителя

    • Симптом: Ошибки при построении запроса
    • Решение: Указать родительское поле в роли «Измерение»

Наборы данных

1. Типы наборов данных в СКД

В схеме можно создавать не только обычные запросы.

  • Запрос — стандартный запрос к базе данных (самый частый вариант).
  • Объект — внешние данные, передаваемые в СКД программно (например, ТаблицаЗначений, результат запроса). Не имеет собственного запроса в схеме, только описание полей.
    • Как передать: Через параметр ВнешниеНаборы (структура) при инициализации ПроцессораКомпоновкиДанных.
  • Объединение — специальный тип для объединения нескольких других наборов данных в один виртуальный. Не является источником данных сам по себе.

2. Работа с несколькими наборами данных и их связи

СКД позволяет использовать несколько независимых наборов и связывать их.

  • Объединение (через набор типа "Объединение"):

    • Объединяет записи наборов "сверху вниз" (по аналогии с ОБЪЕДИНИТЬ ВСЕ в запросе).
    • Поля с одинаковым "Путем к данным" сворачиваются в один столбец. Автоматической группировки строк не происходит.
    • Поля с разными путями образуют отдельные колонки.
  • Соединение (через закладку "Связи наборов данных"):

    • Связывает наборы "по горизонтали" (по аналогии с ЛЕВОЕ СОЕДИНЕНИЕ в запросе).
    • Источник — главный набор, Приемник — подчиненный.
    • Вид связи: Всегда ЛЕВОЕ ВНЕШНЕЕ по умолчанию.
    • Особенность: При расчете итогов каждая запись из набора участвует только один раз, даже если в связи "один-ко-многим". Это ключевое преимущество перед сложным соединением в одном запросе.

Важные настройки связи:

  • Передача параметров: Поле источника связи может быть параметром для подчиненного набора (например, передача даты из основного набора в запрос остатков).
  • Список параметров: Если включен, данные из подчиненного набора будут получены одним запросом для всего списка значений (В()). Сильно оптимизирует производительность.
  • Условие связи: Дополнительное выражение (типа ЭтоГруппа = Ложь).
  • Обязательная связь: Если выключен, связь попадет в макет только при использовании поля из подчиненного набора в настройках.

3. Иерархия в отчетах СКД

Автоматическая иерархия (по полю "Родитель"):

  • Достаточно в настройках группировки указать тип "Иерархия" для ссылочного поля.
  • СКД автоматически:
    1. Создаст скрытый набор данных для построения иерархии.
    2. Создаст две связи: основного набора с иерархическим и иерархического с самим собой.
  • Проблема: В итог группы включается и сама группа. Решение — добавить отбор ЭтоГруппа = Ложь в запрос основного набора.

Создание собственной (нестандартной) иерархии: Например, иерархия по полю "Руководитель":

  1. Создаем два набора данных: основной (например, "Заказы") и иерархический (запрос, возвращающий пары Ссылка - Родитель).
  2. Создаем две связи:
    • Основной набор → Иерархический набор (по полю, например, Автор).
    • Иерархический набор → Иерархический набор (связь с самим собой: РодительСсылка).
  3. Важно: Чтобы работал иерархический отбор (В группе), нужен дополнительный набор для проверки иерархии с обратной связью (СсылкаРодитель) и его указание в свойствах поля основного набора ("Проверка иерархии").

Иерархия детальных записей:

  • Не требует иерархической группировки в настройках.
  • Достаточно: Набор данных должен иметь связь с самим собой (как в собственном иерархическом наборе).
  • Детальные записи будут выводиться в виде дерева.
  • Начальное значение связи: Позволяет задать корневой элемент иерархии.

4. Вложенные отчеты (схемы)

Это механизм встраивания одного независимого отчета (со своей схемой) в структуру другого.

  1. Добавление: На закладке "Вложенные схемы" конструктора.
  2. Вставка в отчет: В настройках компоновки через "Добавить вложенный отчет".
  3. Связывание данных: Ключевой момент. Для вложенного отчета можно задать:
    • Отбор: Связать его поля с полями основной схемы (поля основной схемы доступны в группе ОбъектНастройкиВладелец).
    • Параметры: Установить напрямую или связать с параметрами основной схемы.
  4. Сокрытие настроек: Параметры вложенной схемы можно скрыть от пользователя, установив "Ограничение доступности". Связи при этом продолжат работать.

Расширения языка запросов в СКД

Назначение: Специальные инструкции в запросе, заключенные в {фигурные скобки}, для интеграции с СКД. Управляют формированием итогового макета, заполнением доступных полей и поведением отборов.

Флаг «Автозаполнение» (ключевой выбор!)

  • ВКЛЮЧЕН (по умолчанию):
    • Поля компоновки заполняются автоматически для всех полей верхнего уровня запроса.
    • Для виртуальных таблиц неявно создаются стандартные параметры периода (Период, НачалоПериода, КонецПериода). Если они не заданы в настройках, в итоговый запрос не попадут.
    • Отборы из настроек по измерениям виртуальных таблиц СКД старается "протолкнуть" в параметры этих таблиц.
  • ВЫКЛЮЧЕН:
    • Автоматическое заполнение полей не происходит.
    • Поля и параметры виртуальных таблиц определяются исключительно через расширения {...}.
    • Дает точный контроль над тем, что именно будет доступно в настройках.

Секции расширений и их назначение

1. Секция {ВЫБРАТЬ ...}

  • Что делает: Определяет, какие поля из запроса станут доступными в настройках компоновки (если «Автозаполнение» выключено).
  • Где настраивается: Закладка «Поля» в редакторе расширений.
  • Важно:
    • Можно указать использование реквизитов поля (флаг "Использовать реквизиты").
    • Если в запросе есть ОБЪЕДИНИТЬ, эта секция задается только для первой таблицы.

2. Секция {ГДЕ ...}

  • Что делает: Определяет, по каким полям можно будет накладывать отбор в настройках компоновки (если «Автозаполнение» выключено).
  • Где настраивается: Закладка «Условия» в редакторе расширений.
  • Важно:
    • Указываются имена полей БД, а не их псевдонимы в запросе.
    • Можно задать произвольный отбор с параметрами (например, Товар = &Товар).
    • Особенность: Если такой параметр не заполнен в настройках, условие просто не попадет в итоговый запрос (без ошибки). Это отличие от параметров в основном тексте запроса.
    • Отборы, заданные в этой секции, в итоговом макете попадут в общую секцию ГДЕ запроса.

3. Параметры виртуальных таблиц в {...}

  • Что делает: Позволяет явно задать параметры для виртуальных таблиц (Остатки, Обороты) и управлять их поведением.
  • Где настраивается: Закладка «Таблицы» в редакторе расширений, для каждой виртуальной таблицы.
  • Что можно задать:
    • Период, НачалоПериода, КонецПериода: Явное указание параметров периода. Если «Автозаполнение» выключено — обязательно.
    • Условие: Аналог секции {ГДЕ}, но отборы попадут в параметры самой виртуальной таблицы, а не в общее ГДЕ запроса. Это более правильный и производительный способ.
    • Периодичность, Метод дополнения: Настройка соответствующих опций.

4. Выделение целых таблиц в {...} (группы таблиц)

  • Что делает: Позволяет исключить из итогового запроса целые таблицы или группы объединений, если поля из них не используются в настройках.
  • Как: На закладке «Таблицы» снять флаг «Обязательная» и задать одинаковый «Номер группы» для связанных таблиц.
  • Результат: Оптимизация итогового запроса.

5. Секция {ХАРАКТЕРИСТИКИ ...} (работа с доп. реквизитами)

  • Что делает: Автоматизирует подключение данных из регистров сведений (дополнительных реквизитов, характеристик) к объекту в запросе.
  • Зачем: Чтобы в настройках можно было обращаться к доп. данным просто как к реквизиту через точку (например, Номенклатура.Цвет).
  • Принцип: В секции описывается структура хранения доп. данных:
    • ТИП(...) — Тип объекта, к которому цепляются характеристики.
    • ВИДЫХАРАКТЕРИСТИК — Источник видов характеристик (таблица или запрос).
    • ЗНАЧЕНИЯХАРАКТЕРИСТИК — Источник значений (таблица или запрос).
    • Поля связей: ПОЛЕОБЪЕКТА, ПОЛЕВИДА, ПОЛЕЗНАЧЕНИЯ и т.д.
  • Результат: СКД автоматически добавит в запрос все необходимые ЛЕВОЕ СОЕДИНЕНИЕ и сделает доп. поля доступными.

Практические выводы и рекомендации

  1. Для полного контроля: Отключайте «Автозаполнение» и явно описывайте все через расширения.
  2. Для виртуальных таблиц: Параметры периода и отборы по измерениям лучше задавать в расширении {Условие} для самой таблицы, а не в общей секции {ГДЕ}.
  3. Для отбора с параметрами: Используйте секцию {ГДЕ}. Помните: незаполненный параметр = условие исчезает (это удобно для необязательных фильтров).
  4. Для оптимизации: Используйте группы таблиц (Номер группы), чтобы СКД могла убрать неиспользуемые СОЕДИНЕНИЯ.
  5. Для доп. реквизитов: Используйте секцию {ХАРАКТЕРИСТИКИ} — это избавляет от ручного написания множества ЛЕВЫХ СОЕДИНЕНИЙ в запросе.
  6. Производительность: Флаг «Использовать группировки запроса если возможно» заставляет СКД выполнять агрегацию (суммирование, группировку) на уровне СУБД, что может значительно ускорить отчет. Если в настройках компоновки добавлены только группировки и ресурсы (без детальных записей), в итоговом запросе макета компоновки данные будут сгруппированы по выбранным в настройках группировкам.

Ответы на ключевые вопросы

1. Как можно в СКД сделать произвольное наименование поля?

  • В схеме компоновки, в свойствах поля набора данных или вычисляемого поля, есть свойство «Представление». Туда можно загрузить статический заголовок.
  • Более гибкий способ — «Выражение представления». Это выражение на языке СКД (например, Представление(Номенклатура) + " (" + Артикул + ")"), которое будет вычисляться для каждой строки.

2. Как связать форму выбора в отборе в зависимости от родителя в другом отборе? (контрагент и договор)

В свойствах поля «Договор» в схеме нужно настроить «Связи параметров выбора», указав в качестве параметра поле «Контрагент». При выборе контрагента список договоров будет отфильтрован автоматически.

3. Как вывести таблицу значений в СКД?

«Набор данных — Объект», указать имена полей, а саму таблицу значений программно передать в процессор компоновки через параметр ВнешниеНаборы.

4. Как в отчет вывести область для подписи?

  • Через макеты: создать макет (например, типа «Макет поля»), в его ячейке разместить текст «Подпись: ________», а затем использовать этот макет для вывода в нужной группировке.
  • Через вычисляемое поле можно вывести текст, но оформить подчеркивание и позиционирование сложнее. Макет — более правильный способ.

5. Есть два поля "Контрагент" и "Адрес" из регистра сведений, как сделать так чтобы адрес отображался как реквизит у контрагента?

  • Правильный способ: Нужно правильно построить запрос или связь наборов данных. Если адрес хранится в регистре сведений, в схеме необходимо:
    1. Создать связь между набором с контрагентами и набором с адресами.
    2. У поля «Адрес» в свойствах указать «Путь к данным» как Контрагент.Адрес. Тогда в настройках оно будет отображаться как дочернее поле контрагента.
  • Группа полей — это визуальное объединение в интерфейсе настроек, а не установление связи данных.

6. Как задать порядок полей в СКД? Номенклатура, Количество, Склад

  • Основной способ — в настройках компоновки («Структура»). Порядок полей в группировке задается последовательностью в списке «Выбранные поля» для этой группировки.
  • Отключение «Автопозиционирование ресурсов» (в параметрах вывода) предотвращает автоматическое перемещение ресурсов в конец, но не задает явный порядок.
  • В «Макете» задается визуальное оформление уже сформированных данных, а не логический порядок полей на этапе компоновки.

7. Что такое СКД?

Система компоновки данных — это декларативный механизм для построения отчетов в 1С, основанный на отделении описания данных (схемы) от способа их представления (настроек). Позволяет создавать отчеты без программирования и дает пользователям возможности настройки.

8. Как запретить выбор группы номенклатур в отборе?

В свойствах поля «Номенклатура» в схеме, на вкладке «Параметры редактирования» / «Параметры выбора», нужно установить флаг «Выбирать только элементы» (или аналогичную настройку, например, ЭтоГруппа = Ложь в условии отбора формы выбора).

9. Как задать обязательную сортировку по «ПометкаУдаления» и «Артикул»?

В свойствах поля «Номенклатура» в схеме есть свойство «Выражения упорядочивания». Туда нужно прописать, например: ПометкаУдаления, Артикул. Этот порядок будет иметь приоритет над пользовательским.

10. СКД. В наборе данных запрос убрали галочку "Автозаполнение". Как добавить поля?

Поля добавляются на закладке «Компоновка данных» конструктора запроса, в секциях {ВЫБРАТЬ} (для вывода и группировки) и {ГДЕ} (для отбора).

11. Как для строкового поля в отборе сделать выбор из двух значений?

  • Нужно создать «Пользовательское поле» типа «Поле-выбор» в настройках компоновки (или в схеме). В его вариантах указать возможные значения ("Да"/"Нет", "Приход"/"Расход") и их представления.

12. Как разрешить группировку и сортировку по полю, но запретить отбор?

  • В схеме компоновки, в свойствах конкретного поля, на вкладке «Ограничение доступности» снять флаг «Доступно для использования в отборе». Поле останется в списках доступных полей для группировки и порядка.

13. Как выводить все дни в периоде, даже без оборотов?

Для группировки по полю типа Дата нужно в роли поля установить признак «Дополнять по периоду» (например, выбрать тип периода «День») и указать метод дополнения. Тогда в отчете появятся все дни интервала.

14. Как сделать необязательные условия в СКД?

  • В тексте запроса обернуть условие или параметр в {фигурные скобки}. Если параметр не заполнен, все условие не попадет в итоговый запрос.
  • В конструкторе запроса на закладке «Компоновка данных» -> «Условия» (секция {ГДЕ}).

15. Для чего в СКД нужна функция «ВычислитьВыражение»

  • Это ключевая функция для расчетов в контексте группировок. Позволяет вычислить выражение (сумму, среднее и т.д.) не для текущей строки, а для указанной области данных (например, для всей группировки, для итога, для предыдущей строки). Используется для:
    • Процентов (ВычислитьВыражение("Сумма(Сумма)", , "ОбщийИтог")).
    • Сумм с накоплением.
    • Отклонений от среднего и других сложных расчетов.

16. Как получить процент строки по группировке?

  • Через ВычислитьВыражение. Пример для ресурса в группировке: ВычислитьВыражение("Сумма(Сумма)", , "Группировка") * 100.

17. Для чего в конструкторе запроса на закладке "Компоновка данных" у таблиц есть поле "Обязательная"?

Если таблица не обязательна и ни одно из ее полей не используется в настройках, СКД исключит соединение с этой таблицей из итогового запроса для оптимизации.

18. Для чего в конструкторе СКД, на вкладке "Наборы данных", нужно поле "Роль"?

Роль (Измерение, Счет, Остатки, Период и т.д.) необходимы внутреннему механизму СКД для правильного расчета агрегатов (особенно остатков, оборотов, иерархии), независимо от того, как пользователь настроит отчет.

19. При соблюдении каких условий доступно использование функций из общих модулей в полях выражений СКД?

Главные условия:

  1. Функция экспортная.
  2. Общий модуль с соответствующими свойствами (Глобальный, Клиент (обычное приложение) / Сервер).
  3. При программном формировании отчета необходимо явно разрешить использование внешних функций в процессоре компоновки (ВозможностьИспользованияВнешнихФункций = Истина).

20. Для чего нужна вкладка "Вложенные схемы" в конструкторе СКД?

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

21. Для чего нужно поле ПериодСекунда для расчета остатков?

ПериодСекунда — это родительский период для Регистратора. СКД для точного расчета остатков во времени должна знать не только регистратор, но и его момент времени (дату). Поле Регистратор всегда зависит от ПериодСекунда.

22. На что влияет галка "Доп" в роли?

  • Снят (основной период): При использовании дочернего поля (например, Регистратор) в отчете, родительское поле (ПериодСекунда) будет автоматически добавлено в запрос.
  • Установлен (дополнительный период): Автоматического добавления родителя не происходит.

23. Как правильно задавать порядок в роли?

Порядок в роли задается целым числом. Чем меньше число, тем «младше» период.

  • Пример иерархии для регистра: Регистратор(0) -> ПериодСекунда(1) -> ПериодДень(2) -> ПериодМесяц(3). Это позволяет СКД правильно строить вложенность периодов.

24. Галка "Автозаполнение", что делает?

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

25. Для чего нужна галка "Список параметров" в настройке связи между наборами?

Включает оптимизацию. Без галочки подчиненный набор запрашивается в цикле (по одному значению параметра). С галочкой — одним запросом с условием В(...) для списка значений (пакетом). Всегда нужно ставить, если возможно.

26. Какое соединение у наборов данных? Можно ли его изменить?

  • По умолчаниюЛЕВОЕ.
  • Изменить в схеме напрямую нельзя. Тип соединения генерируется автоматически компоновщиком макета на основе логики отчета:
    • Если на поле подчиненного набора данных наложен глобальный отбор, соединение становится ВНУТРЕННИМ.
  • Программно, через объектную модель (МакетКомпоновкиДанных), тип связи можно проанализировать, но не изменить в рамках типовой настройки отчета.

Материалы