СКД
Механизм для создания отчетов в 1С на основе декларативного описания (без программирования, с настройками пользователем). Используется также в динамических списках и для подготовки данных.
Ключевые элементы и процесс
Весь процесс построения отчета — это цепочка из следующих элементов:
-
Схема компоновки данных — «Что можно получить?» База отчета. Содержит:
- Наборы данных (ис точники:
Запрос,Объект,Объединение). - Поля и Вычисляемые поля.
- Параметры (например, период).
- Связи между наборами данных (левые соединения).
- Ресурсы (поля для агрегации: Сумма, Количество).
- Макеты оформления.
- Наборы данных (ис точники:
-
Настройки компоновки данных — «Что и как показать?» Задает пользователь/разработчик. Содержит:
- Структуру (иерархию: группировки, таблицы, диаграммы).
- Отбор (фильтры).
- Порядок (сортировка).
- Выбранные поля.
- Условное оформление.
-
Макет компоновки данных — «Инструкция к исполнению». Готовое задание, результат применения Настроек к Схеме. Формируется автоматически.
-
Результат компоновки — Набор элементов (начало/конец группировки, данные), который можно вывести в табличный документ, таблицу значений и т.д.
Этапы процесса:
Создание/редактирование Схемы → Задание Настроек → Формирование Макета → Исполнение (Процессор ом) → Вывод Результата.
Объекты и инструменты
СхемаКомпоновкиДанных— Основной объект схемы.КомпоновщикНастроекКомпоновкиДанных— Связывает схему и настройки.КомпоновщикМакетаКомпоновкиДанных— Формирует макет из схемы и настроек. Ключевой методВыполнить().ПроцессорКомпоновкиДанных— Исполняет макет, выдает элементы результата. Ключевые методыИнициализировать(Макет),Следующий().ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент— Выводит элементы в табличный документ.
Основные элементы схемы компоновки
-
Поля:
- Формируются автоматически из запроса.
- Имеют роли («Период», «Измерение», «Остаток»), критичные для корректного расчета итогов по регистрам (остатки, обороты).
- Можно настраивать оформление, подсказки, формы выбора.
-
Ресурсы:
- Поля, по которым считаются итоги (агрегаты: сумма, среднее, количество).
- Итоги рассчитываются на уровне всей СКД, а не в запросе.
- Можно задавать сложные выражения и агрегатные функции.
-
Параметры:
- Используются для динамической фильтрации данных (например, «Период», «Контрагент»).
- Могут иметь доступные значения, типы и настройки редактирования.
Важные особенности и приемы
- Несколько наборов данных: Можно связывать в схеме. В настройках в одной группировке можно использовать поля только из связанных наборов (кроме ресурсов).
- Пользовательские настройки: Часть настроек (отборы, поля) можно вынести для быстрого редактирования пользователем в форме отчета.
- Автополя: Автоматическое заполнение группировок, выбранных полей и порядка на основе используемых ресурсов.
- Иерархия: Поддержка иерархических группировок (по справочникам) и условия
В ИЕРАРХИИ. Требуется описать набор данных для построения иерархии. - Расширение языка запросов: В запросе можно использовать директивы в
{фигурных скобках}для интеграции со СКД:{ВЫБРАТЬ Поле1, Поле2}— Какие поля будут доступны для выбора в настройках.{ГДЕ Поле1, Поле2}— По каким полям можно делать отбор.- Параметры виртуальных таблиц
{&ДатаНачала, &ДатаКонца}также становятся доступны для отбора.
Назначение ролей для полей
Роли полей в СКД — это ключевая настройка для корректного расчета итогов, особенно для работы с регистрами накопления, бухгалтерии и при использовании группировок по периодам. Роли сообщают системе, как обрабатывать поля при построении запросов и расчете агрегатов.
Типы ролей и их настройки:
1. Роль «Период»
Назначение: Для полей, содержащих даты/временные периоды. Используется при работе с виртуальными таблицами регистров, где задана периодичность.
Важные настройки:
- Номер строки: Определяет иерархию периодов. Нумерация должна быть строго последовательной:
- 1 — самый младший период (например, День)
- 2 — старший (например, Месяц)
- 3 — еще старший (например, Квартал)
- Дополнительный (флаг):
- ✅ Установлен — в итоговый запрос включаются только явно указанные периоды
- ❌ Снят — в запрос автоматически включаются все родительские периоды (для корректного расчета остатков)
Особенности:
- Поля с ролью «Период» нельзя использовать в одной группировке с другими полями
- При периодичности «Регистратор» обязательно нужно поле «Период»
- При периодичности «Авто» обязательно нужно поле «ПериодСекунда»
- Проблема: Группировка по неделям совместно с месяцами может давать задвоение данных
2. Роль «Измерение»
Назначение: Для полей, по которым будут рассчитываться итоги (обычно измерения регистров).
Настройки:
- Родительское поле: Если используется не само измерение, а его реквизит, здесь указывается родительское поле
- Реквизит: Указывается конкретный реквизит измерения
Важно:
- Родительское поле тоже должно иметь роль «Измерение»
- Если в настройках выбрано подчиненное поле измерения, а само измерение не выбрано — оно будет добавлено в запрос неявно (для корректных итогов)
3. Роль «Счет»
Назначение: Для полей, содержащих бухгалтерские счета (работа с регистром бухгалтерии).
Настройки:
- Вид счета: Обязательно указывается тип счета:
- Активный
- Пассивный
- Активно-пассивный
- Если не указан: Система считает счет активно-пассивным, но может некорректно обрабатывать отрицательные остатки
4. Роль «Остаток»
Назначение: Для полей начальных и конечных остатков регистров.
Настройки:
- Имя: Группировочное имя для пары «Начальный-Конечный остаток». Должно быть одинаковым для обоих полев
- Тип: Выбирается:
- Начальный остаток
- Конечный остаток
- Бух. тип: Для регистра бухгалтерии указывается:
- Дебет
- Кредит
- Поле счета: Связь с полем, имеющим роль «Счет»
Критически важно:
- В схеме обязательно должны присутствовать оба поля (и начальный, и конечный остаток)
- Если пользователь выбрал только один остаток — в запрос все равно включаются оба для корректных расчетов
Дополнительные настройки ролей (общие для всех)**
- «Игнорировать значение NULL»
- ✅ Установлен: Из итоговой выборки исключаются записи, где это поле имеет значение NULL
- ❌ Снят: NULL-значения участвуют в расчетах и отображении
- «Обязательное»
- ✅ Установлен: Поле всегда включается в итоговый запрос, даже если не выбрано в настройках
- Пример использования:
- Принудительный расчет итогов по всем измерениям регистра
- Развернут ое сальдо по всем субконто в бухгалтерии
- Обязательные поля для корректной работы расширений
Типичные ошибки и решения
-
Ошибка 1: Неправильная нумерация периодов
- Симптом: Некорректный расчет остатков на начало периода
- Решение: Проверить последовательность нумерации (1, 2, 3...)
-
Ошибка 2: Отсутствие пары «начальный-конечный» остаток
- Симптом: Итоги не рассчитываются или считаются неправильно
- Решение: Добавить оба поля с одинаковым «Именем» в роли «Остаток»
-
Ошибка 3: Роль «Счет» без указания вида
- Симптом: Некорректное отображение отрицательных остатков
- Решение: Указать правильный вид счета
-
Ошибка 4: Использование подчиненных реквизитов без родителя
- Симптом: Ошибки при построении запроса
- Р ешение: Указать родительское поле в роли «Измерение»
Наборы данных
1. Типы наборов данных в СКД
В схеме можно создавать не только обычные запросы.
- Запрос — стандартный запрос к базе данных (самый частый вариант).
- Объект — внешние данные, передаваемые в СКД программно (например,
ТаблицаЗначений, результат запроса). Не имеет собственного запроса в схеме, только описание полей.- Как передать: Через параметр
ВнешниеНаборы(структура) при инициализацииПроцессораКомпоновкиДанных.
- Как передать: Через параметр
- Объединение — специальный тип для объединения нескольких других наборов данных в один виртуальный. Не является источником данных сам по себе.
2. Работа с несколькими наборами данных и их связи
СКД позволяет использовать несколько независимых наборов и связывать их.
-
Объединение (через набор типа "Объединение"):
- Объединяет записи наборов "сверху вниз" (по аналогии с
ОБЪЕДИНИТЬ ВСЕв запросе). - Поля с одинаковым "Путем к данным" сворачиваются в один столбец. Автоматической группировки строк не происходит.
- Поля с разными путями образуют отдельные колонки.
- Объединяет записи наборов "сверху вниз" (по аналогии с
-
Соединение (через закладку "Связи наборов данных"):
- Связывает наборы "по горизонтали" (по аналогии с
ЛЕВОЕ СОЕДИНЕНИЕв запросе). - Источник — главный набор, Приемник — подчиненный.
- Вид связи: Всегда
ЛЕВОЕ ВНЕШНЕЕпо умолчанию. - Особенность: При расчете итогов каждая запись из набора участвует только один раз, даже если в связи "один-ко-многим". Это ключевое преимущество перед сложным соединением в одном запросе.
- Связывает наборы "по горизонтали" (по аналогии с
Важные настройки связи:
- Передача параметров: Поле источника связи может быть параметром для подчиненного набора (например, передача даты из основного набора в запрос остатков).
- Список параметров: Если включен, данные из подчиненного набора будут получены одним запросом для всего списка значений (
В()). Сильно оптимизирует производительность. - Условие связи: Дополнительное выражение (типа
ЭтоГруппа = Ложь). - Обязательная связь: Если выключен, связь попадет в макет только при использовании поля из подчиненного набора в настройках.
3. Иерархия в отчетах СКД
Автоматическая иерархия (по полю "Родитель"):
- Достаточно в настройках группировки указать тип "Иерархия" для ссылочного поля.
- СКД автоматически:
- Создаст скрытый набор данных для построения иерархии.
- Создаст две связи: основного набора с иерархическим и иерархического с самим собой.
- Проблема: В итог группы включается и сама группа. Решение — добавить отбор
ЭтоГруппа = Ложьв запрос основного набора.
Создание собственной (нестандартной) иерархии: Например, иерархия по полю "Руководитель":
- Создаем два набора данных: основной (например, "Заказы") и иерархический (запрос, возвращающий пары
Ссылка - Родитель). - Создаем две связи:
- Основной набор → Иерархический набор (по полю, например,
Автор). - Иерархический набор → Иерархический набор (связь с самим собой:
Родитель→Ссылка).
- Основной набор → Иерархический набор (по полю, например,
- Важно: Чтобы работал иерархический отбор (
В группе), нужен дополнительный набор для проверки иерархии с обратной связью (Ссылка→Родитель) и его указание в свойствах поля основного набора ("Проверка иерархии").
Иерархия детальных записей:
- Не требует иерархической группировки в настройках.
- Достаточно: Набор данных должен иметь связь с самим собой (как в собственном иерархическом наборе).
- Детальные записи будут выводиться в виде дерева.
- Начальное значение связи: Позволяет задать корневой элемент иерархии.
4. Вложенные отчеты (схемы)
Это механизм встраивания одного независимого отчета (со своей схемой) в структуру другого.
- Добавление: На закладке "Вложенные схемы" конструктора.
- Вставка в отчет: В настройках компоновки через "Добавить вложенный отчет".
- Связывание данных: Ключевой момент. Для вложенного отчета можно задать:
- Отбор: Связать его поля с полями основной схемы (поля основной схемы доступны в группе
Объе ктНастройкиВладелец). - Параметры: Установить напрямую или связать с параметрами основной схемы.
- Отбор: Связать его поля с полями основной схемы (поля основной схемы доступны в группе
- Сокрытие настроек: Параметры вложенной схемы можно скрыть от пользователя, установив "Ограничение доступности". Связи при этом продолжат работать.
Расширения языка запросов в СКД
Назначение: Специальные инструкции в запросе, заключенные в {фигурные скобки}, для интеграции с СКД. Управляют формированием итогового макета, заполнением доступных полей и поведением отборов.
Флаг «Автозаполнение» (ключевой выбор!)
- ВКЛЮЧЕН (по умолчанию):
- Поля компоновки заполняются автоматически для всех полей верхнего уровня запроса.
- Для виртуальных таблиц неявно создаются стандартные параметры периода (
Период,НачалоПериода,КонецПериода). Если они не заданы в настройках, в итоговый запрос не попадут. - Отборы из настроек по измерениям виртуальных таблиц СКД старается "протолкнуть" в параметры этих таблиц.
- ВЫКЛЮЧЕН:
- Автоматическое заполнение полей не происходит.
- Поля и параметры виртуальных таблиц определяются исключительно через расширения
{...}. - Дает точный контроль над тем, что именно будет доступно в настройках.
Секции расширений и их назначение
1. Секция {ВЫБРАТЬ ...}
- Что делает: Определяет, какие поля из запроса станут доступными в настройках компоновки (если «Автозаполнение» выключено).
- Где настраивается: Закладка «Поля» в редакторе расширений.
- Важно:
- Можно указать использование реквизитов поля (флаг "Использовать реквизиты").
- Если в запросе есть
ОБЪЕДИНИТЬ, эта секция задается то лько для первой таблицы.
2. Секция {ГДЕ ...}
- Что делает: Определяет, по каким полям можно будет накладывать отбор в настройках компоновки (если «Автозаполнение» выключено).
- Где настраивается: Закладка «Условия» в редакторе расширений.
- Важно:
- Указываются имена полей БД, а не их псевдонимы в запросе.
- Можно задать произвольный отбор с параметрами (например,
Товар = &Товар). - Особенность: Если такой параметр не заполнен в настройках, условие просто не попадет в итоговый запрос (без ошибки). Это отличие от параметров в основном тексте запроса.
- Отборы, заданные в этой секции, в итоговом макете попадут в общую секцию
ГДЕзапроса.
3. Параметры виртуальных таблиц в {...}
- Что делает: Позволяет явно задать параметры для виртуальных таблиц (
Остатки,Обороты) и управлять их поведением. - Где настраивается: Закладка «Таблицы» в редакторе расширений, для каждой виртуальной таблицы.
- Что можно задать:
- Период, НачалоПериода, КонецПериода: Явное указание параметров периода. Если «Автозаполнение» выключено — обязательно.
- Условие: Аналог секции
{ГДЕ}, но отборы попадут в параметры самой виртуальной таблицы, а не в общееГДЕзапроса. Это более правильный и производительный способ. - Периодичность, Метод дополнения: Настройка соответствующих опций.
4. Выделение целых таблиц в {...} (группы таблиц)
- Что делает: Позволяет исключить из итогового запроса целые таблицы или группы объединений, если поля из них не используются в настройках.
- Как: На закладке «Таблицы» снять флаг «Обязательная» и задать одинаковый «Номер группы» для связанных таблиц.
- Результат: Оптимизация итогового запроса.
5. Секция {ХАРАКТЕРИСТИКИ ...} (работа с доп. реквизитами)
- Что делает: Автоматизирует подключение данных из регистров сведений (дополнительных реквизитов, характеристик) к объекту в запросе.
- Зачем: Чтобы в настройках можно было обращаться к доп. данным просто как к реквизиту через точку (например,
Номенклатура.Цвет). - Принцип: В секции описывается структура хранения доп. данных:
ТИП(...)— Тип объекта, к которому цепляются характеристики.ВИДЫХАРАКТЕРИСТИК— Источник видов характеристик (таблица или запрос).ЗНАЧЕНИЯХАРАКТЕРИСТИК— Источник значений (таблица или запрос).- Поля связей:
ПОЛЕОБЪЕКТА,ПОЛЕВИДА,ПОЛЕЗНАЧЕНИЯи т.д.
- Результат: СКД автоматически добавит в запрос все необходимые
ЛЕВОЕ СОЕДИНЕНИЕи сделает доп. поля доступными.
Практические выводы и рекомендации
- Для полного контроля: Отключайте «Автозаполнение» и явно описывайте все через расширения.
- Для виртуальных таблиц: Параметры периода и отборы по измерениям лучше задавать в расширении
{Условие}для самой таблицы, а не в общей секции{ГДЕ}. - Для отбора с параметрами: Используйте секцию
{ГДЕ}. Помните: незаполненный параметр = условие исчезает (это удобно для необязательных фильтров). - Для оптимизации: Используйте группы таблиц (
Номер группы), чтобы СКД могла убрать неиспользуемыеСОЕДИНЕНИЯ. - Для доп. реквизитов: Используйте секцию
{ХАРАКТЕРИСТИКИ}— это избавляет от ручного написания множестваЛЕВЫХ СОЕДИНЕНИЙв запросе. - Производительность: Флаг «Использовать группировки запроса если возможно» заставляет СКД выполнять агрегацию (суммирование, группировку) на уровне СУБД, что может значительно ускорить отчет. Если в настройках компоновки добавлены только группировки и ресурсы (без детальных записей), в итоговом запросе макета компоновки данные будут сгруппированы по выбранным в настройках группировкам.
Ответы на ключевые вопросы
1. Как можно в СКД сделать произвольное наименование поля?
- В схеме компоновки, в свойствах поля набора данных или вычисляемого поля, есть свойство «Представление». Туда можно загрузить статический заголовок.
- Более гибкий способ — «Выражение представления». Это выражение на языке СКД (например,
Представление(Номенклатура) + " (" + Артикул + ")"), которое будет вычисляться для каждой строки.
2. Как связать форму выбора в отборе в зависимости от родителя в другом отборе? (контрагент и договор)
В свойствах поля «Договор» в схеме нужно настроить «Связи параметров выбора», указав в качестве параметра поле «Контрагент». При выборе контрагента список договоров будет отфильтрован автоматически.
3. Как вывести таблицу значений в СКД?
«Набор данных — Объект», указать имена полей, а саму таблицу значений программно передать в процессор компоновки через параметр ВнешниеНаборы.
4. Как в отчет вывести область для подписи?
- Через макеты: создать макет (например, типа «Макет поля»), в его ячейке разместить текст «Подпись: ________», а затем использовать этот макет для вывода в нужной группировке.
- Через вычисляемое поле можно вывести текст, но оформить подчеркивание и позиционирование сложнее. Макет — более правильный способ.
5. Есть два поля "Контрагент" и "Адрес" из регистра сведений, как сделать так чтобы адрес отображался как реквизит у контрагента?
- Правильный способ: Нужно правильно построить запрос или связь наборов данных. Если адрес хранится в регистре сведений, в схеме необходимо:
- Создать связь между набором с контрагентами и набором с адресами.
- У поля «Адрес» в свойствах указать «Путь к данным» как
Контрагент.Адрес. Тогда в настройках оно будет отображаться как дочернее поле контрагента.
- Группа полей — это визуальное объединение в интерфейсе настроек, а не установление связи данных.
6. Как задать порядок полей в СКД? Номенклатура, Количество, Склад
- Основной способ — в настройках компоновки («Структура»). Порядок полей в группировке задается последовательностью в списке «Выбранные поля» для этой группировки.
- Отключение «Автопозиционирование ресурсов» (в параметрах вывода) предотвращает автоматическое перемещение ресурсов в конец, но не задает явный порядок.
- В «Макете» задается визуальное оформление уже сформированных данных, а не логический порядок полей на этапе компоновки.
7. Что такое СКД?
Система компоновки данных — это декларативный механизм для построения отчетов в 1С, основанный на отделении описания данных (схемы) от способа их представления (настроек). Позволяет создавать отчеты без программирования и дает пользователям возможности настройки.
8. Как запретить выбор группы номенклатур в отборе?
В свойствах поля «Номенклатура» в схеме, на вкладке «Параметры редактирования» / «Параметры выбора», нужно установить флаг «Выбирать только элементы» (или аналогичную настройку, например, ЭтоГруппа = Ложь в условии отбора формы выбора).
9. Как задать обязательную сортировку по «ПометкаУдаления» и «Артикул»?
В свойствах поля «Номенклатура» в схеме есть свойство «Выражения упорядочивания». Туда нужно прописать, например: ПометкаУдаления, Артикул. Этот порядок будет иметь приоритет над пользовательским.
10. СКД. В наборе данных запрос убрали галочку "Автозаполнение". Как добавить поля?
Поля добавляются на закладке «Компоновка данных» конструктора запроса, в секциях {ВЫБРАТЬ} (для вывода и группировки) и {ГДЕ} (для отбора).
11. Как для строкового поля в отборе сделать выбор из двух значений?
- Нужно создать «Пользовательское поле» типа «Поле-выбор» в настройках компоновки (или в схеме). В его вариантах указать возможные значения ("Да"/"Нет", "Приход"/"Расход") и их представления.
12. Как разрешить группировку и сортировку по полю, но запретить отбор?
- В схеме компоновки, в свойствах конкретного поля, на вкладке «Ограничение доступности» снять флаг «Доступно для использования в отборе». Поле останется в списках доступных полей для группировки и порядка.
13. Как выводить все дни в периоде, даже без оборотов?
Для группировки по полю типа Дата нуж но в роли поля установить признак «Дополнять по периоду» (например, выбрать тип периода «День») и указать метод дополнения. Тогда в отчете появятся все дни интервала.
14. Как сделать необязательные условия в СКД?
- В тексте запроса обернуть условие или параметр в
{фигурные скобки}. Если параметр не заполнен, все условие не попадет в итоговый запрос. - В конструкторе запроса на закладке «Компоновка данных» -> «Условия» (секция
{ГДЕ}).
15. Для чего в СКД нужна функция «ВычислитьВыражение»
- Это ключевая функция для расчетов в контексте группировок. Позволяет вычислить выражение (сумму, среднее и т.д.) не для текущей строки, а для указанной области данных (например, для всей группировки, для итога, для предыдущей строки). Используется для:
- Процентов (
ВычислитьВыражение("Сумма(Сумма)", , "ОбщийИтог")). - Сумм с накоплением.
- Отклонений от среднего и других сложных расчетов.
- Процентов (
16. Как получить процент строки по группировке?
- Через
ВычислитьВыражение. Пример для ресурса в группировке:ВычислитьВыражение("Сумма(Сумма)", , "Группировка") * 100.
17. Для чего в конструкторе запроса на закладке "Компоновка данных" у таблиц есть поле "Обязательная"?
Если таблица не обязательна и ни одно из ее полей не используется в настройках, СКД исключит соединение с этой таблицей из итогового запроса для оптимизации.
18. Для чего в конструкторе СКД, на вкладке "Наборы данных", нужно поле "Роль"?
Роль (Измерение, С чет, Остатки, Период и т.д.) необходимы внутреннему механизму СКД для правильного расчета агрегатов (особенно остатков, оборотов, иерархии), независимо от того, как пользователь настроит отчет.
19. При соблюдении каких условий доступно использование функций из общих модулей в полях выражений СКД?
Главные условия:
- Функция экспортная.
- Общий модуль с соответствующими свойствами (Глобальный, Клиент (обычное приложение) / Сервер).
- При программном формировании отчета необходимо явно разрешить использование внешних функций в процессоре компонов ки (
ВозможностьИспользованияВнешнихФункций = Истина).
20. Для чего нужна вкладка "Вложенные схемы" в конструкторе СКД?
Для подключения схем других отчетов, чтобы встроить их как вложенные отчеты в структуру текущего. Позволяет создавать комплексные отчеты из модульных частей.
21. Для чего нужно поле ПериодСекунда для расчета остатков?
ПериодСекунда — это родительский период для Регистратора. СКД для точного расчета остатков во времени должна знать не только регистратор, но и его момент времени (дату). Поле Регистратор всегда зависит от ПериодСекунда.
22. На что влияет галка "Доп" в роли?
- Снят (основной период): При использовании дочернего поля (например,
Регистратор) в отчете, родительское поле (ПериодСекунда) будет автоматически добавлено в запрос. - Установлен (дополнительный период): Автоматического добавления родителя не происходит.
23. Как правильно задавать порядок в роли?
Порядок в роли задается целым числом. Чем меньше число, тем «младше» период.
- Пример иерархии для регистра:
Регистратор(0)->ПериодСекунда(1)->ПериодДень(2)->ПериодМесяц(3). Это позволяет СКД правильно строить вложенность периодов.
24. Галка "Автозаполнение", что делает?
Ключевое: автоматически создает все доступные поля и неявные параметры периода для виртуальных таблиц. Упрощает жизнь, но лишает тонкого контроля.
25. Для чего нужна галка "Список параметров" в настройке связи между наборами?
Включает оптимизацию. Без галочки подчиненный набор запрашивается в цикле (по одному значению параметра). С галочкой — одним запросом с условием В(...) для списка значений (пакетом). Всегда нужно ставить, если возможно.
26. Какое соединение у наборов данных? Можно ли его изменить?
- По умолчанию — ЛЕВОЕ.
- Изменить в схеме напрямую нельзя. Тип соединения генерируется автоматически компоновщиком макета на основе логики отчета:
- Если на поле подчиненного набора данных наложен глобальный отбор, соединение становится ВНУТРЕННИМ.
- Программно, через объектную модель (
МакетКомпоновкиДанных), тип связи можно проа нализировать, но не изменить в рамках типовой настройки отчета.