Указывает, что период является основным. При использовании такого поля в компоновке будут задействованы и основные родительские периоды.
Полное описание, параметры и ограничения
ТипПериодаКомпоновкиДанных.Основной (DataCompositionPeriodType.Main)
ТипПериодаКомпоновкиДанных (DataCompositionPeriodType)
Основной (Main)
Доступен, начиная с версии 8.1.
Описание:
Указывает, что период является основным. При использовании такого поля в компоновке будут задействованы и основные родительские периоды.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
ТипПериодаКомпоновкиДанных.Основной: свои два периода
Роль принадлежит конкретному полю собственной схемы и участвует в настоящей компоновке остатков.
Где и как запускать
Модуль своей обычной формы, толстый клиент; все источники вымышлены и принадлежат своей схеме.
Подготовка
В своей отдельной учебной конфигурации создайте отчёт УчебныеОстаткиСКД и макет ОсновнаяСхемаКомпоновкиДанных. Источник Local, один набор-запрос Книги; вставьте дополнительный константный запрос и автоматически заполните все его поля.
Источник состоит только из двух вымышленных строк в памяти: январь и февраль. Существующие регистры остатков, проводки, счета и продажи рабочей базы не читаются.
В конструкторе СКД откройте роли каждого поля и задайте перечисленные ниже значения. Это важная часть подготовки: простая сумма остатков по разным месяцам неверна.
Создайте вариант УчебныеОстатки с указанной структурой и выбранными полями. Основной полный обработчик назначьте кнопке ПоказатьПример своей обычной формы, толстый клиент. Две дополнительные процедуры загрузки / вывода — в том же модуле.
Товар: роль Измерение=Истина. Месяц: НомерПериода=1, ТипПериода=Основной. ДатаОперации: НомерПериода=2; это дочерний период, не ещё одно независимое измерение товара.
НачальныйОстаток: Остаток=Истина, ГруппаОстатка="Количество", ТипОстатка=НачальныйОстаток. КонечныйОстаток: Остаток=Истина, та же группа "Количество", ТипОстатка=КонечныйОстаток.
Оборот: Остаток=Ложь, ТипОстатка=Нет. На вкладке Ресурсы задайте Сумма(НачальныйОстаток), Сумма(КонечныйОстаток), Сумма(Оборот).
Вариант УчебныеОстатки: верхняя группировка Товар, внутри ДатаОперации; выберите Товар, ДатаОперации, НачальныйОстаток, Оборот, КонечныйОстаток. Настройка ТипПериода старшего поля показывает, обязательно ли оно при использовании дочернего.
Это самостоятельная собственная схема. Код меняет загруженную копию роли и формирует результат; исходный макет не сохраняется обратно. BSL и формирование отчёта при сборке HTML не выполнялись.
Процедура ПоказатьПример(Кнопка)
Схема = Отчеты.УчебныеОстаткиСКД.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Для Каждого Поле Из Схема.НаборыДанных[0].Поля Цикл
Если Поле.ПутьКДанным = "Месяц" Тогда
Поле.Роль.ТипПериода = ТипПериодаКомпоновкиДанных.Основной;
КонецЕсли;
КонецЦикла;
Компоновщик = УчебныйКомпоновщик(Схема, "УчебныеОстатки");
ВывестиУчебнуюКомпоновку(Схема, Компоновщик.Настройки);
Сообщить("Роль собственного поля Месяц: Основной");
КонецПроцедурыКонструктор СКД: две собственные строки, не BSL
ВЫБРАТЬ "Книга" КАК Товар,
ДАТАВРЕМЯ(2026, 1, 1) КАК Месяц,
ДАТАВРЕМЯ(2026, 1, 2) КАК ДатаОперации,
3 КАК НачальныйОстаток, 2 КАК Оборот, 5 КАК КонечныйОстаток
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ "Книга", ДАТАВРЕМЯ(2026, 2, 1), ДАТАВРЕМЯ(2026, 2, 2), 5, 3, 8Тот же модуль: загрузить собственный вариант
Функция УчебныйКомпоновщик(Схема, ИмяВарианта)
Источник = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема);
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Источник);
Для Каждого Вариант Из Схема.ВариантыНастроек Цикл
Если Вариант.Имя = ИмяВарианта Тогда
Компоновщик.ЗагрузитьНастройки(Вариант.Настройки);
Возврат Компоновщик;
КонецЕсли;
КонецЦикла;
ВызватьИсключение "Создайте собственный вариант схемы: " + ИмяВарианта;
КонецФункцииТот же модуль: сформировать и показать свой отчёт
Процедура ВывестиУчебнуюКомпоновку(Схема, Настройки)
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, Расшифровка);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, , Расшифровка);
Лист = Новый ТабличныйДокумент;
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.УстановитьДокумент(Лист);
Вывод.Вывести(Процессор);
Сообщить("Макетов областей: " + Строка(Макет.Макеты.Количество()));
Сообщить("Элементов расшифровки: " + Строка(Расшифровка.Элементы.Количество()));
Лист.Показать("Собственная компоновка учебных книг");
КонецПроцедурыРазбор по шагам
Подготовьте свою схему с двумя периодами и полными ролями.
Измените документированное свойство конкретного поля в копии схемы.
Сформируйте результат и отделите остатки на границах от суммируемого оборота.
Как проверить результат
У ролей настоящая иерархия: Месяц=1, ДатаОперации=2. Основной требует старшее поле при использовании дочернего, Дополнительный позволяет его не использовать.
ТипПериода не превращает ДатаОперации в месяц и не меняет даты источника. Сравнивайте состав группировок и расчёт остатков, а не придуманный дополнительный оборот.
Ожидаемый результат
Есть числовой учебный источник, необходимые соседние роли и реальный потребитель изменения.
На что обратить внимание
Без периодов, измерений и пар полей роль остатка сама по себе не делает произвольную сумму корректной.
Это учебный пример механизма СКД, а не финансовые данные или инструкция изменить реальные проводки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.