ТипПериодаКомпоновкиДанных.Основной

Свойства · Main

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

Полное описание, параметры и ограничения

ТипПериодаКомпоновкиДанных.Основной (DataCompositionPeriodType.Main)

ТипПериодаКомпоновкиДанных (DataCompositionPeriodType)

Основной (Main)

Доступен, начиная с версии 8.1.

Описание:
Указывает, что период является основным. При использовании такого поля в компоновке будут задействованы и основные родительские периоды.
Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

ТипПериодаКомпоновкиДанных.Основной: свои два периода

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

Где и как запускать

Модуль своей обычной формы, толстый клиент; все источники вымышлены и принадлежат своей схеме.

Подготовка

  1. В своей отдельной учебной конфигурации создайте отчёт УчебныеОстаткиСКД и макет ОсновнаяСхемаКомпоновкиДанных. Источник Local, один набор-запрос Книги; вставьте дополнительный константный запрос и автоматически заполните все его поля.

  2. Источник состоит только из двух вымышленных строк в памяти: январь и февраль. Существующие регистры остатков, проводки, счета и продажи рабочей базы не читаются.

  3. В конструкторе СКД откройте роли каждого поля и задайте перечисленные ниже значения. Это важная часть подготовки: простая сумма остатков по разным месяцам неверна.

  4. Создайте вариант УчебныеОстатки с указанной структурой и выбранными полями. Основной полный обработчик назначьте кнопке ПоказатьПример своей обычной формы, толстый клиент. Две дополнительные процедуры загрузки / вывода — в том же модуле.

  5. Товар: роль Измерение=Истина. Месяц: НомерПериода=1, ТипПериода=Основной. ДатаОперации: НомерПериода=2; это дочерний период, не ещё одно независимое измерение товара.

  6. НачальныйОстаток: Остаток=Истина, ГруппаОстатка="Количество", ТипОстатка=НачальныйОстаток. КонечныйОстаток: Остаток=Истина, та же группа "Количество", ТипОстатка=КонечныйОстаток.

  7. Оборот: Остаток=Ложь, ТипОстатка=Нет. На вкладке Ресурсы задайте Сумма(НачальныйОстаток), Сумма(КонечныйОстаток), Сумма(Оборот).

  8. Вариант УчебныеОстатки: верхняя группировка Товар, внутри ДатаОперации; выберите Товар, ДатаОперации, НачальныйОстаток, Оборот, КонечныйОстаток. Настройка ТипПериода старшего поля показывает, обязательно ли оно при использовании дочернего.

  9. Это самостоятельная собственная схема. Код меняет загруженную копию роли и формирует результат; исходный макет не сохраняется обратно. BSL и формирование отчёта при сборке HTML не выполнялись.

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

Разбор по шагам

  1. Подготовьте свою схему с двумя периодами и полными ролями.

  2. Измените документированное свойство конкретного поля в копии схемы.

  3. Сформируйте результат и отделите остатки на границах от суммируемого оборота.

Как проверить результат

  1. У ролей настоящая иерархия: Месяц=1, ДатаОперации=2. Основной требует старшее поле при использовании дочернего, Дополнительный позволяет его не использовать.

  2. ТипПериода не превращает ДатаОперации в месяц и не меняет даты источника. Сравнивайте состав группировок и расчёт остатков, а не придуманный дополнительный оборот.

Ожидаемый результат

Есть числовой учебный источник, необходимые соседние роли и реальный потребитель изменения.

На что обратить внимание

  1. Без периодов, измерений и пар полей роль остатка сама по себе не делает произвольную сумму корректной.

  2. Это учебный пример механизма СКД, а не финансовые данные или инструкция изменить реальные проводки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.