Отчеты и Аналитика · 10 мин
1С СКД: как вывести параметры на форму отчёта
Как вывести параметры СКД на форму отчёта в 1С: настройка в схеме компоновки, программный вывод, быстрые настройки, типовые ошибки и проверка результата.
Параметры в системе компоновки данных (СКД) управляют отбором и поведением отчёта: период, организация, склад, контрагент. По умолчанию часть параметров скрыта от пользователя или доступна только через кнопку «Настройки», что неудобно для ежедневной работы. Вывод параметров прямо на форму отчёта решает эту проблему: пользователь видит ключевые значения сразу и меняет их без лишних переходов.
Существует два основных подхода. Первый — декларативный: настройка свойств параметров в схеме компоновки и использование быстрых пользовательских настроек, которые платформа сама размещает на форме. Второй — программный: создание реквизитов и элементов формы вручную с передачей значений в компоновщик настроек. Выбор зависит от того, где работает отчёт — в управляемом приложении на базе БСП, в самостоятельной форме или в обычном приложении.
Ниже разобраны оба способа, параметры режима редактирования, типовые ошибки и способы проверить, что значение действительно попадает в запрос отчёта.
Как устроены параметры СКД и почему они не видны на форме
Параметр объявляется в схеме компоновки данных на закладке «Параметры». У него есть имя, тип, значение по умолчанию и набор флагов: «Ограничение доступности», «Включать в пользовательские настройки», «Режим редактирования». Именно эти флаги определяют, увидит ли пользователь параметр на форме или он останется скрытым в глубине настроек.
Частая ситуация: разработчик добавил параметр в запрос через виртуальную таблицу (например, Период у регистра накопления), СКД автоматически создала параметр, но на форме его нет. Причина — платформа по умолчанию помещает параметры в обычные пользовательские настройки, которые открываются отдельной кнопкой, а не в быстрые, отображаемые на форме.
Способ 1. Вывод через пользовательские настройки
Это штатный путь для управляемых форм, который не требует программирования. Откройте схему компоновки, перейдите на закладку «Параметры» и для нужного параметра установите флаг «Включать в пользовательские настройки». Затем в колонке «Режим редактирования» выберите «Быстрый доступ». После этого параметр появится в панели быстрых настроек формы отчёта.
В конфигурациях на базе Библиотеки стандартных подсистем (БСП) отчёты на СКД выводят быстрые пользовательские настройки прямо на форму — обычно в верхней части или в отдельной панели. Пользователь меняет значение и нажимает «Сформировать», перезапускать настройку не нужно.
- 1Откройте схему компоновки данных отчёта
- 2На закладке «Параметры» найдите нужный параметр
- 3Снимите флаг «Ограничение доступности», если параметр должен редактироваться
- 4Установите «Включать в пользовательские настройки»
- 5В колонке «Режим редактирования» выберите «Быстрый доступ»
- 6Сохраните схему и сформируйте отчёт — параметр появится на форме
Дополнительно на закладке «Настройки» схемы внизу есть закладка «Параметры данных», где задаются значения по умолчанию. Если значение по умолчанию не задано, а параметр обязательный, отчёт при открытии может выдать ошибку или пустой результат. Для дат удобно использовать стандартные периоды: тип «СтандартныйПериод» или выражения вида «Начало месяца».
Параметры периода: особый случай
Параметры НачалоПериода и КонецПериода в запросах к виртуальным таблицам СКД часто связывает автоматически. Если вы хотите дать пользователю один элемент «Период» вместо двух дат, добавьте в схему параметр типа «СтандартныйПериод», а в запросе используйте параметры виртуальной таблицы — СКД сопоставит их сама. Либо задайте в параметрах выражения &Период.ДатаНачала и &Период.ДатаОкончания.
Способ 2. Программный вывод параметров на форму
Когда требуется нестандартное размещение — например, параметр в шапке рядом с кнопкой, или отчёт построен на произвольной форме, — параметры создают как реквизиты формы, а их значения передают в компоновщик настроек вручную.
Типовая схема: добавьте реквизит формы (например, Организация типа «СправочникСсылка.Организации»), перетащите его на дерево элементов формы. В модуле формы при формировании отчёта найдите параметр в настройках компоновщика и установите значение:
&НаКлиенте
Процедура Сформировать(Команда)
УстановитьПараметр("Организация", Организация);
СкомпоноватьРезультат();
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметр(ИмяПараметра, Значение)
Параметр = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(
Новый ПараметрКомпоновкиДанных(ИмяПараметра));
Если Параметр <> Неопределено Тогда
Параметр.Значение = Значение;
Параметр.Использование = Истина;
КонецЕсли;
КонецПроцедуры
Обратите внимание на флаг Использование: если не установить его в Истина, параметр будет существовать в настройках, но в запрос не попадёт. Это одна из самых частых причин «молчаливо» пустых отчётов.
Сравнение подходов и когда какой выбирать
Декларативный способ через быстрые настройки покрывает большинство сценариев: типовые отчёты, отчёты в подсистеме «Варианты отчётов», доработки без изменения формы. Программный способ нужен, когда требуется особая логика: взаимосвязанные параметры (выбор склада фильтруется по организации), нестандартное расположение, обработка значения перед передачей в СКД.
Сравнение способов
Подходит для типовых отчётов на управляемых формах и БСП. Не требует кода, но размещение элементов определяет платформа.
Полный контроль над размещением и логикой. Требует кода и синхронизации значений с компоновщиком настроек.
Для старых конфигураций: реквизиты отчёта выводятся на форму, значения передаются в СКД в обработчике формирования. Работает только в толстом клиенте.
Если отчёт должен работать и в веб-клиенте, программный способ на управляемой форме — единственный вариант: обычные формы там недоступны. Учитывайте это при проектировании, чтобы не переписывать решение позже.
Проверка результата
После настройки убедитесь, что параметр не просто отображается, а реально влияет на данные. Сформируйте отчёт с разными значениями параметра и сравните результат. Быстрый способ проверки — временно установить заведомо несуществующее значение (например, пустую дату): если отчёт не изменился, параметр не подхвачен запросом.
Как проверить результат
Элемент отображается в панели быстрых настроек или в заданном месте формы
Параметр есть только в полных настройках — проверьте режим редактирования
Смена значения меняет состав строк отчёта
Отчёт одинаков при любых значениях — параметр не используется в запросе или Использование = Ложь
При открытии отчёт формируется с осмысленным значением
Ошибка или пустой отчёт при первом открытии — задайте значение по умолчанию
Типичные ошибки и ограничения
Отдельное ограничение касается списков: если параметр имеет флаг «Доступен список значений», в коде ему нужно присваивать объект СписокЗначений, а не одиночное значение. Иначе отбор по списку работать не будет, хотя синтаксически код корректен.
Ещё одна ловушка — пользовательские настройки сохранённых вариантов отчёта. Если вы изменили состав параметров в схеме, а у пользователей сохранены старые варианты, настройки могут конфликтовать. После существенной переделки параметров имеет смысл сбросить или обновить сохранённые варианты.
FAQ
Почему параметр виден в настройках, но не отображается на форме отчёта?
Проверьте колонку «Режим редактирования» у параметра в схеме компоновки: для показа на форме нужен режим «Быстрый доступ». Режим «Обычный» оставляет параметр только в полном окне настроек. Также убедитесь, что установлен флаг «Включать в пользовательские настройки».
Как задать значение параметра по умолчанию, например текущую дату?
На закладке «Настройки» схемы компоновки откройте вкладку «Параметры данных» и укажите значение для параметра. Для дат можно использовать стандартные периоды или вычисляемые выражения. Альтернатива — установить значение программно в обработчике ПриСозданииНаСервере формы отчёта.
Можно ли вывести параметр на форму, если отчёт внешний?
Да, механизм тот же. Для внешнего отчёта на управляемой форме быстрые пользовательские настройки выводятся платформой автоматически, если отчёт открывается стандартной формой. Если у внешнего отчёта своя основная форма, используйте программную передачу значений в компоновщик настроек.
Параметр установлен в коде, но отчёт его игнорирует. Что проверить?
В первую очередь — свойство Использование у найденного параметра: оно должно быть Истина. Затем убедитесь, что параметр реально используется в тексте запроса или в отборе схемы, и что вы обращаетесь к настройкам того компоновщика, который формирует отчёт, а не к копии.
Как сделать параметр обязательным для заполнения?
Штатного флага «обязательный» у параметров СКД нет. Практика — проверять значение перед формированием в коде (например, в обработчике команды «Сформировать») и выдавать сообщение при пустом значении, либо задавать осмысленное значение по умолчанию, чтобы отчёт всегда формировался корректно.
Работает ли вывод параметров на форму в обычном приложении?
Да, но механизм другой: в обычных формах реквизиты отчёта размещаются на форме вручную в конфигураторе, а значения передаются в компоновщик настроек в обработчике формирования. Автоматического вывода быстрых настроек, как в управляемых формах, там нет.
Что важно запомнить
Параметры СКД выводятся на форму через флаг «Включать в пользовательские настройки» и режим «Быстрый доступ» либо программно — через реквизиты формы и установку значений в компоновщике настроек с обязательным Использование = Истина. После настройки проверяйте, что смена значения реально меняет результат отчёта.