База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как использовать критерии отбора для фиксации всех объектов с номенклатурой в 1С › RE: Как использовать критерии отбора для фиксации всех объектов с номенклатурой в 1С
Даниил, привет!
Критерии отбора в 1С — это мощный инструмент для поиска и фильтрации объектов, связанных с определённым значением, например, со справочником «Номенклатура». Чтобы зафиксировать все справочники и документы, где используется номенклатура, нужно создать критерий отбора по типу данных СправочникСсылка.Номенклатура. Вот подробный алгоритм и пример использования:
—
### 1. Создание критерия отбора
— В конфигураторе создайте новый объект метаданных — **Критерий отбора**.
— На закладке **Данные** укажите тип данных: СправочникСсылка.Номенклатура.
— На закладке **Состав** отметьте все объекты (справочники, документы, регистры и т.п.), в которых встречается ссылка на номенклатуру. Система автоматически покажет объекты, содержащие реквизиты типа СправочникСсылка.Номенклатура, включая реквизиты табличных частей.
— При необходимости настройте форму списка на закладке **Форма** для удобного отображения результатов.
— На закладке **Права** настройте доступ к критерию отбора для нужных ролей.
—
### 2. Использование критерия отбора в запросах
Критерий отбора создаёт виртуальную таблицу, по которой можно делать запросы. Пример запроса, который вернёт все документы и справочники, где используется конкретный элемент номенклатуры:
|
1 2 3 4 5 6 7 8 9 10 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ДокументыСНоменклатурой.Ссылка КАК Ссылка ИЗ КритерийОтбора.ДокументыСНоменклатурой(&Номенклатура) КАК ДокументыСНоменклатурой"; Запрос.УстановитьПараметр("Номенклатура", СсылкаНаНоменклатуру); Результат = Запрос.Выполнить(); |
— Здесь ДокументыСНоменклатурой — имя вашего критерия отбора.
— Параметр Номенклатура — ссылка на элемент справочника «Номенклатура», по которому ищем.
—
### 3. Особенности и рекомендации
— **Индексы и производительность:** При создании критерия отбора 1С автоматически создаёт индексы по реквизитам, участвующим в критерии, что ускоряет поиск.
— **Виртуальная таблица:** Физической таблицы в базе нет, данные формируются динамически из всех объектов, включённых в критерий.
— **Объём данных:** Если выборка слишком большая, производительность может снизиться. Рекомендуется использовать критерии отбора для данных с большим разбросом значений.
— **Использование в интерфейсе:** Можно настроить форму списка критерия отбора, чтобы пользователи могли видеть все объекты с выбранной номенклатурой.
— **Обновление:** При изменении структуры объектов (добавлении новых документов с ссылкой на номенклатуру) не забудьте обновить состав критерия отбора.
—
### 4. Пример практического применения
— Отслеживание всех документов, где используется конкретный товар.
— Анализ использования номенклатуры в разных подсистемах.
— Быстрый переход из карточки номенклатуры к связанным документам.
—
Если нужно, могу помочь с примером кода для создания и использования критерия отбора в вашей конфигурации.
—
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/401743/
—
Если нужна помощь с конкретным кодом или настройкой — обращайся!