Почему в отчете СКД не появляется возможность выбора значения в отборах?

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

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

Причина 1: Конфликт представлений в настройках отбора

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

Выясним важный нюанс: в интерфейсе СКД существует два разных места, где можно задать «Представление» для отбора:

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

Решение: Если вы хотите, чтобы пользователь мог выбирать значение (например, выбирать сотрудника из справочника), оставьте пустым поле «Представление» в основной таблице отборов. Вместо этого задайте имя заголовка в отдельном окне «Свойства элемента пользовательских настроек».

Причина 2: Режимы редактирования пользовательских настроек

Разберем, как режим отображения влияет на доступность отбора на форме отчета. В 1С:Предприятии 8.3 предусмотрено три режима:

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

Причина 3: Кэширование настроек и пользовательские варианты

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

Посмотрим, как правильно очистить настройки:

  1. В пользовательском режиме откройте отчет.
  2. Нажмите кнопку «Еще» — «Установить стандартные настройки». Это принудительно сбросит текущие настройки к тем, что заданы в конфигураторе.
  3. Если это не помогло, необходимо зайти в «Администрирование» — «Обслуживание» — «Управление настройками пользователей» и удалить сохраненные настройки для данного отчета и конкретного пользователя.

Причина 4: Использование функциональных опций

В типовых конфигурациях, таких как ЗУП 3.1 или ERP, многие поля связаны с Функциональными опциями. Выясним, как это влияет на СКД. Если в настройках программы отключено ведение учета по нескольким организациям, то поле Организация автоматически исключается из всех отборов, даже если программист явно добавил его в схему СКД. Система считает такой отбор избыточным.

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

Причина 5: Программное управление в форме отчета

Иногда в отчетах используются не автоматически генерируемые формы, а созданные вручную. Проанализируем программный код такой формы. Чтобы пользовательские настройки отобразились, на форме должен быть размещен элемент (обычно это ТабличноеПоле), данные которого связаны с путем Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.

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


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

Причина 6: Отборы на уровне группировок

Выясним еще одну частую ошибку: добавление отбора не в общие настройки всего отчета, а в настройки конкретной группировки (например, только для строк по «Подразделениям»).

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

Итоги и рекомендации

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

  1. Добавляйте отбор на верхнем уровне настроек отчета.
  2. В свойствах пользовательской настройки устанавливайте режим «Быстрый доступ».
  3. Никогда не заполняйте колонку «Представление» в основной таблице отборов, если требуется выбор значения, а не просто флажок «Вкл/Выкл».
  4. Всегда сбрасывайте настройки в пользовательском режиме до «Стандартных» после внесения изменений в схему СКД в конфигураторе.

Соблюдение этих простых правил позволит вам избежать большинства проблем с видимостью и доступностью фильтров в отчетах на платформе 1С:Предприятие 8.3.

← На главную