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