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