Команды "Отбор по текущему значению" и "Отключить отбор" для управляемого приложения (Управление торговлей 11, Розница 2, Управление небольшой фирмой и т.д.)

Алгоритм позволяющий добавить такие привычные и крайне необходимые команды для управляемого приложения, как "Отбор по текущему значению" и "Отключить отбор". Минимальное изменение конфигурации — Только добавление новой команды.

1) Создаем команду с именем: ОтборПоЗначениюВТекущейКолонке

2) Далее настройка параметров команды

Параметр Группа

 Устанавливаем значение Командная панель формы.Важное

Параметр Тип параметра команды

Нажимаем кнопку выбора.

В открывшемся окне раскрываем все папки кроме «ПеречислениеСсылка» и «ТочкаМаршрутаБизнессПроцессаСсылка».

Нажимаем комбнацию «Ctrl + A». Нажимаем «Пробел». Должны появится флажки у выделенных объектов.

Нажимаем ОК.

Параметр Картинка

Выбираем подходящую картинку (можно перенести из библиотеки стандартных картинок 8.1).

Параметр Отображение

Картинка.

3) Добавляем код для нашей команды

 

&НаКлиенте

Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)



Для Каждого Элемент Из ПараметрыВыполненияКоманды.Источник.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ТаблицаФормы") Тогда
Если Элемент.ТекущийЭлемент = Неопределено тогда
Возврат;
КонецЕсли;
ИмяПоля = Элемент.ТекущийЭлемент.Имя;
УстановитьОтборНаКлиенте(ПараметрыВыполненияКоманды.Источник[Элемент.Имя], ИмяПоля, Элемент.ТекущиеДанные[Элемент.ТекущийЭлемент.Имя]);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура УстановитьОтборНаКлиенте(Список, ИмяПоля, ЗначениеПоля)

ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, ИмяПоля, ЗначениеПоля, , , , РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);

КонецПроцедуры

 

4) Добавляем команду ОтключитьОтбор.

Выполняем соответвующие действия 1,2. Код команды:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Для Каждого Элемент Из ПараметрыВыполненияКоманды.Источник.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ТаблицаФормы") Тогда
Если Элемент.ТекущийЭлемент = Неопределено тогда
Возврат;
КонецЕсли;
ИмяПоля = Элемент.ТекущийЭлемент.Имя;
ПараметрыВыполненияКоманды.Источник[Элемент.Имя].Отбор.Элементы.Очистить();
КонецЕсли;
КонецЦикла;

КонецПроцедуры

Примечание:

Если не подключена БСП, необходимо в общий модуль ОбщегоНазначенияКлиентСервер взять из нее функции для работы с отборами динамических списков.

1 Comment

  1. tommyknocker

    Идея хорошая, но не работает отбор в табличных частях документов и справочников. Только в списках документов и справочников, к сожалению.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *