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