К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как вывести параметры СКД на форму отчёта в 1С 8.2

Пошаговая инструкция по выводу параметров СКД на форму отчёта в 1С 8.2: настройки пользователя, быстрый доступ, программное заполнение и типичные ошибки.

Вывод параметров системы компоновки данных на форму отчёта в 1С 8.2 — стандартная задача, которая решается двумя путями: через настройки пользователя (без программирования) и через программное размещение элементов на управляемой или обычной форме. Правильный выбор зависит от того, кто будет менять параметры — конечный пользователь или разработчик при открытии отчёта.

Ключевой момент, который часто упускают: параметр появляется на форме только тогда, когда у него включён флажок «Включать в пользовательские настройки» и задан режим редактирования «Быстрый доступ». Если параметр оставить во «внутренних» настройках, пользователь увидит его только через кнопку «Настройки».

Где в СКД задаются параметры и почему они не видны на форме

Параметры отчёта объявляются на закладке «Параметры» схемы компоновки данных. Здесь задаётся имя, тип, значение по умолчанию, а также флажки «Ограничение доступности» и «Включать в пользовательские настройки». Именно эти флажки определяют, сможет ли пользователь вообще увидеть и изменить параметр.

Типичная ситуация: разработчик добавил параметр «НачалоПериода», но на форме отчёта его нет. Причина почти всегда одна — параметр не включён в пользовательские настройки или ему назначен режим редактирования «Недоступный». СКД намеренно скрывает такие параметры, чтобы не перегружать форму служебными значениями.

Ещё одна причина — параметр используется в запросе как выражение (например, &Период в виртуальной таблице), но в самой схеме не объявлен. Тогда СКД создаёт его автоматически с ограничением доступности, и вывести его на форму без снятия флажка нельзя.

Вывод параметров через пользовательские настройки без кода

Самый быстрый способ — не писать код вовсе. Откройте схему компоновки данных, перейдите на закладку «Настройки», выберите ветку «Отчет» и найдите группу «Параметры данных». В окне пользовательских настроек (кнопка с «звёздочкой» или отдельная закладка «Пользовательские настройки» в режиме конфигуратора) добавьте нужный параметр и установите режим редактирования «Быстрый доступ».

Режим «Быстрый доступ» означает, что параметр будет отображён прямо на форме отчёта — обычно в верхней панели рядом с кнопкой «Сформировать». Режим «Обычный» покажет параметр только в окне настроек, а «Недоступный» полностью скроет его от пользователя.

Порядок действий
  1. 1
    Откройте схему компоновки данных отчёта и проверьте параметр на закладке «Параметры»: снимите ограничение доступности, задайте тип и значение по умолчанию
  2. 2
    Перейдите на закладку «Настройки», выделите корневой элемент «Отчет»
  3. 3
    Откройте окно пользовательских настроек и добавьте параметр в список
  4. 4
    Установите для параметра режим редактирования «Быстрый доступ»
  5. 5
    Сохраните отчёт, откройте его в режиме 1С:Предприятие и проверьте, что поле параметра появилось на форме

Проверка результата

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

Программный вывод параметров на форму

Когда требуется гибкое управление — например, заполнить параметры при открытии, скрыть часть из них или построить собственную форму — работают с объектом КомпоновщикНастроек. У отчёта, построенного на СКД, компоновщик доступен через реквизит формы «Отчет» и его свойство КомпоновщикНастроек.

Настройки делятся на основные (Настройки) и пользовательские (ПользовательскиеНастройки). Чтобы параметр стал видимым и редактируемым программно, его нужно найти в коллекции Элементы пользовательских настроек по идентификатору и установить свойства Использование и Значение.

Настройки = Отчет.КомпоновщикНастроек.Настройки;

Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(

Новый ПараметрКомпоновкиДанных("НачалоПериода"));

Если Параметр <> Неопределено Тогда

Параметр.Использование = Истина;

Параметр.Значение = НачалоМесяца(ТекущаяДата());

КонецЕсли;

Для пользовательских настроек логика похожа, но поиск идёт по ИдентификаторПользовательскойНастройки, который СКД назначает элементу при включении его в пользовательские настройки. Этот идентификатор можно посмотреть в отладчике, перебрав коллекцию ПользовательскиеНастройки.Элементы.

1c
Для Каждого Элемент Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
	Если ТипЗнч(Элемент) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
		Сообщить(Элемент.ИдентификаторПользовательскойНастройки);
	КонецЕсли;
КонецЦикла;

Особенности обычных и управляемых форм в 1С 8.2

В 1С 8.2 отчёт на СКД может работать как на обычной форме (толстый клиент), так и на управляемой (тонкий и веб-клиент). На управляемой форме панель быстрых настроек платформа строит автоматически на основе пользовательских настроек — вмешательство разработчика обычно не требуется.

На обычной форме внешнего отчёта быстрые настройки не выводятся сами: нужно либо использовать типовую форму отчёта из БСП-подобных механизмов, либо вручную добавлять элементы управления и связывать их с параметрами компоновщика. Это частая причина вопроса «почему на управляемой форме параметры есть, а на обычной нет».

Если отчёт встроен в конфигурацию и использует общую форму отчёта, проверьте, что форма вообще поддерживает вывод быстрых настроек. В самописных формах эту область иногда удаляют ради компактности.

Сравнение вариантов

Пользовательские настройки с быстрым доступом

Подходит в большинстве случаев: не требует кода, работает на управляемой форме автоматически. Ограничение — внешний вид панели задаёт платформа.

Программная установка параметров

Нужна, когда значения вычисляются при открытии или зависят от контекста вызова. Требует кода и аккуратной работы с идентификаторами настроек.

Собственная форма отчёта

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

Типичные ошибки и их устранение

Самая распространённая ошибка — параметр объявлен, но не включён в пользовательские настройки, а разработчик ищет его на форме. Вторая по частоте — параметр добавлен в пользовательские настройки, но с режимом «Обычный», и пользователь не находит его, потому что он доступен только через кнопку настроек.

Третья группа ошибок связана с программным доступом: обращение к параметру по имени через ПользовательскиеНастройки напрямую невозможно — там хранятся элементы с идентификаторами. Попытка найти параметр строкой «НачалоПериода» в этой коллекции вернёт Неопределено.

Типичные ошибки
01
Не снято ограничение доступности у параметра — он не попадает в пользовательские настройки и не выводится на форму
02
Режим редактирования «Обычный» вместо «Быстрый доступ» — параметр виден только в окне настроек
03
Поиск параметра в ПользовательскиеНастройки.Элементы по имени вместо идентификатора — возвращается Неопределено
04
Параметр установлен программно, но не включён флажок Использование — значение игнорируется при формировании
05
Изменения внесены в схему, но у пользователя сохранены старые настройки — форма показывает устаревший состав параметров

Проверка результата и сброс настроек

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

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

Контрольные точки

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

Поле параметра на форме
Норма

Поле видно в панели быстрых настроек и доступно для редактирования

Тревожный признак

Поля нет — проверьте включение в пользовательские настройки и режим «Быстрый доступ»

Реакция отчёта на изменение параметра
Норма

После «Сформировать» данные пересчитываются с учётом значения

Тревожный признак

Отчёт не меняется — параметр не используется в запросе или сброшен флажок Использование

Повторное открытие отчёта
Норма

Параметры сохраняются и отображаются корректно

Тревожный признак

Состав параметров устарел — выполните «Установить стандартные настройки»

FAQ

Почему параметр есть в СКД, но не появляется на форме отчёта?

Чаще всего у параметра установлено ограничение доступности на закладке «Параметры» либо он не добавлен в пользовательские настройки с режимом «Быстрый доступ». Проверьте оба места и сбросьте сохранённые настройки пользователя.

Как задать значение параметра по умолчанию при открытии отчёта?

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

Чем отличается «Быстрый доступ» от «Обычного» у параметра?

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

Как программно найти параметр в пользовательских настройках?

Переберите коллекцию ПользовательскиеНастройки.Элементы и сравнивайте тип элемента с ЗначениеПараметраНастроекКомпоновкиДанных, а затем сопоставляйте его свойство Параметр с нужным именем. Искать по строке имени напрямую в этой коллекции нельзя.

Почему после доработки отчёта пользователи видят старый набор параметров?

Платформа хранит пользовательские настройки отдельно от схемы. После изменения состава параметров пользователю нужно выполнить команду «Установить стандартные настройки» в окне настроек отчёта, чтобы подхватить актуальную структуру.

Можно ли вывести параметры на обычной форме внешнего отчёта в 8.2?

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

Итог

Что важно запомнить

Параметр выводится на форму отчёта только при снятом ограничении доступности, включении в пользовательские настройки и режиме «Быстрый доступ». Программно значения задаются через КомпоновщикНастроек с обязательным флажком Использование, а после доработок схемы пользователю нужно сбросить сохранённые настройки.