Например: мы можем настроить в документе Заказ Покупателя фильтр на Склады или Номенклатуру в зависимости от Покупателя. Т.е. "Покупатель1" может заказывать только номенклатуру из "Группы А", Покупатель2 из "Группы Б" и "Группы С". Или по "Договору1" можно заказать товар только со "Склада 3".
Можем настроить для документа "ПеремещениеТовара" отграничения по складам. Например, со "Склада 1" можно перемещать товары на все склады, кроме "Склада 5" и "Склада 7", или на все склады группы "Оптовые склады"
Подсистема состоит из общего модуля и регистра сведений с префиксами "ек_". Они стандартно объединяются с любой типовой конфигурацией. Для хранения условий отбора используется регистр сведений.
Также, для использования подсистемы необходимо добавить в модуле формы документа обработчик события "НачалоВыбора" для нужных реквизитов.
//////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ТЧ
//Код для работы модуля "ДинамическиеФильтры" (начало)
Процедура ек_ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
//Проверить, не установлены ли ограничения
//Если установлены, наложить отбор на выбираемые значения
ек_РаботаСФильтрами.НачалоВыбораЗначенияСФильтром(Элемент,Контрагент,СтандартнаяОбработка);
КонецПроцедуры
//Код для работы модуля "ДинамическиеФильтры" (окончание)
////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//Код для работы модуля "ДинамическиеФильтры" (начало)
ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ек_ТоварыНоменклатураНачалоВыбора"));
//Код для работы модуля "ДинамическиеФильтры" (окончание)
Такие изменения достаточно легко отслеживаются и почти не мешают последующему обновлению конфигурации.
Порядок работы с подсистемой:
1. Для настройки фильтров для конкретного элемента необходимо для него выбрать "Перейти" - "Фильтры данных" и добавить настройку отбора. Укажем, что для контрагента "Морской" можно использовать только номенклатуру, содержащую в названии "Ящик", кроме "Ящика для вино-водочных бутылок" и "Ящика для мясо-молочных"
2. После этого для документов, в которые встроена подсистема, условие отбора будет учтено при вводе данных. На картинках в примере для контрагента "Крупский" пользователь может выбирать любую номенклатуру, для контрагента "Морской" только номенклатуру, соответствующую условию отбора.
Работает в обычном интерфейсе.
Приложения к статье:
1. Инструкция по использованию подсистемы «Динамические фильтры». В инструкции описано объединение конфигурации с типовой УПП 1.3 и пример настройки с помощью подсистемы разных фильтров.
Содержание инструкции:
1. Объединение конфигурации
2. Задача 1. В документе реализации добавить возможность установки фильтра на номенклатуру в зависимости от контрагента, которому выполняется реализация.
2.1 Настройка конфигурации:
2.2 Использование конфигурации
3. Задача 2. Добавить возможность в документе «Перемещение товаров» уставливать фильтр на СкладПолучатель в зависимости отуказанного СкладаОтправителя.
3.1. Настройка конфигурации.
3.2. Использование конфигурации
2. Конфигурация с подсистемой. Конфигурации включает в себя общий модуль и регистр сведений.
3. Выгрузка базы с примером. Результат объединения с типовой выложить не имею права. В базе 2 справочника ("Контрагенты" и "Номенклатура") и один документ "Реализация товаров". Для контрагента можно указать фильтр на номенклатуру, которая будет доступна в документе реализации.