Вложенные схемы СКД 1С — это самостоятельные схемы компоновки данных внутри основной схемы, со своими наборами данных, параметрами и настройками. В структуре отчёта они выводятся как «вложенный отчёт», а значения параметров и отборов можно брать из полей основной схемы — например, дату и номенклатуру текущей строки. Используют их для трёх задач: подтянуть к строкам отчёта дополнительные данные в собственном оформлении, сделать отдельный вариант отчёта на другой схеме и собрать несколько готовых отчётов на одной форме.
Ниже разберу каждый сценарий по шагам, покажу, как вложенные схемы выглядят в коде, и отдельно — когда их применять не стоит.
Где находятся вложенные схемы в конструкторе
В конструкторе схемы компоновки данных есть отдельная закладка «Вложенные схемы». На ней:
| Колонка / кнопка | Назначение |
|---|---|
| Имя | Идентификатор, по которому схема выбирается в структуре настроек |
| Заголовок | Представление для пользователя |
| Схема (открыть) | Редактирование самой вложенной схемы — тот же конструктор |
| Настройки | Связь с основной схемой: значения параметров и отборы |
Важно понимать: вложенная схема ничего не выводит сама по себе. Её нужно добавить в структуру настроек основной схемы — либо внутрь группировки, либо на верхний уровень рядом с другими элементами.
Пример 1: цены к каждой строке отчёта по расходу
Задача: отчёт по расходу товаров со склада по дням и номенклатуре, и к каждой номенклатуре — её цена на дату движения из регистра сведений ЦеныНоменклатуры.
Основная схема
Набор данных — обороты регистра накопления с периодичностью «День»:
ВЫБРАТЬ
ТоварыОбороты.Номенклатура КАК Номенклатура,
ТоварыОбороты.ПериодДень КАК ПериодДень,
ТоварыОбороты.КоличествоРасход КАК КоличествоРасход
ИЗ
РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ТоварыОборотыКоличествоРасход объявляем ресурсом с функцией «Сумма». В настройках — группировки ПериодДень и вложенная в неё Номенклатура, выбранное поле — расход.
Вложенная схема с ценами
На закладке «Вложенные схемы» добавляем схему Цены и открываем её. Запрос:
ВЫБРАТЬ
ЦеныСрез.Номенклатура КАК Номенклатура,
ЦеныСрез.Цена КАК Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦены, ) КАК ЦеныСрезВ её настройках выбираем поля Номенклатура и Цена, можно задать свой стиль оформления, чтобы вложенный блок визуально отличался.
Связываем схемы
Возвращаемся в основную схему, на закладке «Вложенные схемы» нажимаем «Настройки» у схемы Цены:
- Параметры. Для параметра
ДатаЦенывключаем использование и в значение выбираем поле основной схемыПериодДень. Поля основной схемы находятся в группеОбъектНастройкиВладелец. - Отбор. Добавляем элемент: левое значение —
ОбъектНастройкиВладелец.Номенклатура, вид сравнения «Равно», правое —Номенклатуравложенной схемы.
Теперь вложенный отчёт «знает» дату и товар той строки, внутри которой он выводится.
Помещаем вложенный отчёт в структуру
В настройках основной схемы выделяем группировку Номенклатура и добавляем в неё вложенный отчёт, выбрав схему Цены. Чтобы под каждой строкой не печатались служебные шапки «Параметры» и «Отбор», в «Других настройках» вложенного отчёта отключаем их вывод.

Честно скажу: на проектах для этой конкретной задачи я чаще использую связь наборов данных или соединение в запросе — результат получается одной плоской таблицей, и он быстрее. Вложенная схема оправдана, когда дополнительные данные нужно показать отдельным блоком со своей структурой: например, под каждым контрагентом — мини-таблицу его последних договоров.
Пример 2: отдельный вариант отчёта на вложенной схеме
Частая просьба: «в этом же отчёте сделайте ещё один вид». Если новый вид требует совсем другого запроса, его можно вынести во вложенную схему и сделать для неё отдельный вариант отчёта:
- Добавьте вложенную схему (например,
ПрайсЛист) с нужным запросом и параметрами. - В основной схеме создайте новый вариант.
- В структуру этого варианта добавьте только вложенный отчёт
ПрайсЛист. - Параметры вложенной схемы, которые должен заполнять пользователь, включите в пользовательские настройки с режимом «Быстрый доступ».
Пользователь переключает варианты привычным способом и не догадывается, что за ними разные схемы. Минус — схема отчёта разрастается, и её сложнее сопровождать. Если вариантов с разными запросами больше двух-трёх, я обычно делаю отдельные отчёты.
Пример 3: несколько отчётов на одной форме
Самый полезный сценарий. Руководитель хочет видеть на одном экране движение товаров по складам и рядом — анализ отгрузок автотранспортом и по железной дороге. Все три отчёта уже существуют по отдельности.
Порядок:
- В конструкторе существующего отчёта сохраните его схему в XML-файл.
- В основной схеме добавьте вложенную схему и загрузите в неё сохранённый файл.
- В «Настройках» вложенной схемы свяжите её параметры периода и организации с параметрами основной схемы — тогда пользователь заполняет их один раз.
- Создайте вариант отчёта и добавьте в структуру на верхний уровень основную группировку и вложенные отчёты друг за другом.
Параметры вложенных схем можно и не связывать — тогда их надо вывести в пользовательские настройки отдельно, но для сводного отчёта общий период удобнее.
Вложенная схема — это копия. Если исходный отчёт потом изменят, сводный отчёт сам не обновится: схему нужно загрузить заново.
Вложенные схемы в коде
Состав вложенных схем доступен через свойство ВложенныеСхемыКомпоновкиДанных объекта СхемаКомпоновкиДанных. Это пригодится, если сводный отчёт должен всегда брать актуальную схему исходного отчёта, а не её копию:
// Подменяет вложенную схему актуальной схемой отчёта-источника перед компоновкой.
Процедура ОбновитьВложеннуюСхему(Схема, ИмяВложеннойСхемы, ИмяОтчетаИсточника)
ВложеннаяСхема = Схема.ВложенныеСхемыКомпоновкиДанных.Найти(ИмяВложеннойСхемы);
Если ВложеннаяСхема = Неопределено Тогда
Возврат;
КонецЕсли;
СхемаИсточника = Отчеты[ИмяОтчетаИсточника].ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ВложеннаяСхема.Схема = СхемаИсточника;
КонецПроцедурыВызывать такую процедуру нужно на сервере до создания макета компоновки, например в ПриКомпоновкеРезультата при собственной реализации вывода. Учтите, что имена параметров в схеме-источнике должны совпадать с теми, что используются в связях, иначе параметры молча останутся пустыми.
Когда вложенные схемы не нужны
| Задача | Чем решать лучше |
|---|---|
| Добавить колонку из другой таблицы | Соединение в запросе или связь наборов данных |
| Цена на дату каждой строки | Срез последних в запросе с соединением по периоду или связь наборов |
| Вывести две независимые таблицы | Две группировки-таблицы в одной схеме, если запросы простые |
| Свести три готовых отчёта на одну форму | Вложенные схемы — здесь они на своём месте |
Главный риск — производительность. Вложенный отчёт внутри группировки формируется для каждой её записи, и на каждую выполняется запрос вложенной схемы. На тестовой базе с десятью товарами этого не видно, а на рабочей с тысячами строк отчёт начинает формироваться минутами. Перед сдачей проверяйте такие отчёты на реальном объёме данных; если тормозит, переносите данные в основной запрос. При разборе медленных отчётов в рамках аудита производительности вложенные схемы внутри больших группировок попадаются регулярно.
Типичные ошибки
- Вложенный отчёт выводит все данные без фильтра. Не задан отбор в «Настройках» вложенной схемы или выбрано поле не из группы
ОбъектНастройкиВладелец. - Пустые значения во вложенном отчёте. Параметр связан, но у него не включено использование, или поле-владелец не входит в группировку, внутри которой стоит вложенный отчёт.
- Лишние шапки под каждой строкой. Не отключён вывод параметров и отбора в «Других настройках» вложенного отчёта.
- Разное оформление. У вложенной схемы свой стиль; если нужно единообразие, задайте одинаковый макет оформления.
Сводные отчёты из нескольких источников я делаю в рамках разработки отчётов на СКД; если руководству нужна именно аналитика с графиками и срезами, иногда разумнее сразу смотреть в сторону BI-аналитики.
Коротко
- Вложенная схема — полноценная СКД внутри основной; выводится в структуре как вложенный отчёт.
- Параметры и отборы передаются через «Настройки» на закладке «Вложенные схемы», поля основной схемы — в группе
ОбъектНастройкиВладелец. - Лучший сценарий — несколько готовых отчётов на одной форме с общими параметрами.
- Вложенный отчёт внутри группировки выполняется для каждой её записи — проверяйте скорость на реальных данных.
- Для простого добавления колонок используйте запрос или связь наборов.




