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