Как включить пользовательские настройки в СКД и вывести параметры на форму отчета

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Работа с Системой компоновки данных (СКД) в 1С 8.3 на управляемых формах иногда преподносит сюрпризы. Программисты часто сталкиваются с ситуацией, когда созданный отчет работает корректно в консоли компоновки, но в пользовательском режиме форма выглядит «пустой», параметры не отображаются, а при попытке зайти в настройки система выдает неприятное сообщение: «Для данного варианта настройки не предусмотрены». В этой статье мы подробно разберем, как преодолеть эти трудности, правильно сконфигурировать пользовательские настройки и сделать интерфейс отчета максимально удобным.

Разбираем причину ошибки «Настройки не предусмотрены»

Прежде всего, давайте проанализируем ситуацию, когда платформа блокирует доступ к настройкам. Эта ошибка может возникать по нескольким причинам, которые мы сейчас рассмотрим по шагам:

  1. Отсутствие выбранных полей. Проверьте вкладку «Настройки» в схеме компоновки данных. Если в структуре отчета (например, в детальных записях) не выбрано ни одного поля в колонке «Выбранные поля», система может посчитать такой вариант неполноценным и ограничить доступ к настройкам.
  2. Ограничение прав на редактирование. В свойствах самого варианта отчета в СКД есть флажки, отвечающие за возможность изменения настроек пользователем. Если установлен запрет на редактирование, кнопка настроек на форме может вести себя некорректно.
  3. Кэширование метаданных. Это техническая особенность платформы. Если вы только что добавили настройки, а в режиме «1С:Предприятие» они не появились, попробуйте очистить кэш или просто временно переименовать вариант отчета в схеме. Это заставит платформу обновить представление формы.

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

Для того чтобы пользователь не тратил время на лишние клики и видел основные фильтры (даты, организации, склады) сразу над результатом отчета, необходимо использовать механизм пользовательских настроек. Разберем, как это сделать правильно.

Перейдем на закладку «Параметры» в схеме СКД. У каждого параметра в правой части списка есть колонка с изображением «шестеренки» или «звездочки». Это и есть вход в окно настройки элемента пользовательских настроек.

Алгоритм настройки быстрого доступа:

  1. Установите флажок «Включать в пользовательские настройки». Это базовое условие, без которого параметр вообще не попадет в интерфейс настроек.
  2. Найдите свойство «Режим редактирования». Здесь крайне важно выбрать значение «Быстрый доступ». Именно этот режим отвечает за то, что параметр будет вынесен в верхнюю часть формы отчета (в так называемую шапку), а не спрятан в отдельном диалоговом окне.
  3. Обратите внимание на свойство «Состав пользовательских настроек». Если вы хотите, чтобы пользователь мог менять не только значение параметра, но и, например, вид сравнения (для отборов), это настраивается именно здесь.

Рассмотрим пример программной работы с компоновщиком, если вам требуется проверить состояние настроек перед формированием:


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

Создание собственной формы отчета: когда это необходимо

Если стандартная форма отчета продолжает вести себя непредсказуемо или вам требуется особый дизайн, лучшим решением будет создание собственной управляемой формы. Рассмотрим, как это упрощает жизнь.

Когда мы создаем форму отчета через конструктор в конфигураторе, платформа автоматически генерирует стандартные элементы управления. Важнейшим из них является Группа пользовательских настроек. Проанализируем её свойства:

Если вы решили идти путем полной кастомизации и вывели параметры как отдельные реквизиты формы (не связанные напрямую с компоновщиком), не забудьте прописать их передачу в КомпоновщикНастроек перед началом формирования. Рассмотрим, как это выглядит в модуле формы:


&НаСервере
Процедура УстановитьПараметрыВКомпоновщик()
    // Получаем идентификатор параметра из схемы
    ИмяПараметра = "ДатаНачала";
    ЗначениеПараметра = Объект.МояДатаНачала;
    
    ПараметрСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    Если ПараметрСКД <> Неопределено Тогда
        ПараметрСКД.Значение = ЗначениеПараметра;
        ПараметрСКД.Использование = Истина;
    КонецЕсли;
КонецПроцедуры

Важные нюансы для Управляемых Форм и самописных конфигураций

Выясним еще несколько критических моментов, которые могут повлиять на результат:

1. Использование процедуры ПриКомпоновкеРезультата. Если вы переопределяете эту процедуру в модуле объекта отчета, будьте осторожны с параметром СтандартнаяОбработка = Ложь. Если вы отключаете стандартную обработку, платформа перестает автоматически применять пользовательские настройки к схеме. В этом случае вам придется программно инициализировать ПроцессорКомпоновкиДанных и передавать в него настройки из КомпоновщикомНастроек.ПолучитьНастройки().

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

3. Компактность отборов. Чтобы отборы (фильтры) выглядели так же лаконично, как и параметры, мы рекомендуем также переводить их в режим «Быстрый доступ». В этом случае они выстроятся в аккуратный ряд над таблицей отчета. Если оставить режим «Обычный», пользователю придется раскрывать громоздкий список всех возможных фильтров, что перегружает интерфейс.

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

← На главную