Состав расширения:
- Общий модуль Отборы_Сервер
- Общий модуль Отборы_Клиент
- Общая форма Отборы_ФормаНастройкиОтбора
- Обработка Отборы_Демонстрация
Для добавления настройки отборов в таблицу управляемой формы, необходимо:
1) Добавить в расширение форму, на которой находится таблица.
2) Добавить расширение обработчика события формы "ПриСозданииНаСервере" с типом вызова "После".
3) В обработчике Отборы_ПриСозданииНаСервереПосле добавить вызов процедуры Отборы_Сервер.ДобавитьНастройкиОтбораТаблиц.
Варианты вызова:
&НаСервере
Процедура Отборы_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// кнопки настройки отбора будут добавлены ко всем видимым таблицам на форме
Отборы_Сервер.ДобавитьНастройкиОтбораТаблиц(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура Отборы_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// кнопки настройки отбора будут добавлены только к таблице с указанным именем элемента
Отборы_Сервер.ДобавитьНастройкиОтбораТаблиц(ЭтотОбъект, "ИмяТаблицы");
КонецПроцедуры
&НаСервере
Процедура Отборы_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// кнопки настройки отбора будут добавлены ко всем таблицам, с именами из массива
МассивИмен = Новый Массив;
МассивИмен.Добавить("Товары");
МассивИмен.Добавить("Запасы");
Отборы_Сервер.ДобавитьНастройкиОтбораТаблиц(ЭтотОбъект, МассивИмен);
КонецПроцедуры
&НаСервере
Процедура Отборы_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Вариант, позволяющий указать настройки, отличные от настроек по умолчанию, для каждой таблицы
// Доступны следующие настройки:
// - ИмяТаблицы - имя элемента таблицы формы
// - ИмяЭлементаДляВставки - имя группы формы, в которую будут добавлены кнопки настройки отбора.
// если не указано, кнопки будут добавлены на командную панель;
// если командная панель скрыта, кнопки будут добавлены в контекстное меню таблицы.
// - ОтборПоВсемКолонкам - Булево - если Истина, в поля отбора будут добавлены все поля таблицы,
// в том числе не находящиеся на форме
// - КнопкиТолькоВМенюЕще - Булево - если Истина и кнопки выводятся на командную панель,
// то отображаться они будут только в подменю "Еще"
ПараметрыТаблиц = Отборы_Сервер.ПолучитьТаблицуПараметров();
НоваяСтрока = ПараметрыТаблиц.Добавить();
НоваяСтрока.ИмяТаблицы = "ЗначенияПоказателей";
НоваяСтрока.ИмяЭлементаДляВставки = "ГруппаОтборы";
Отборы_Сервер.ДобавитьНастройкиОтбораТаблиц(ЭтотОбъект, ПараметрыТаблиц);
КонецПроцедуры
4) В расширении в модуль формы необходимо добавить процедуры:
&НаКлиенте
Процедура Отборы_ПодключаемыйНаКлиенте(Команда)
Отборы_Клиент.Отборы_ПодключаемыйНаКлиенте(ЭтотОбъект, Команда);
КонецПроцедуры
&НаСервере
Процедура Отборы_ПодключаемыйНаСервере(ИмяКоманды, ИмяТаблицы) Экспорт
Отборы_Сервер.Отборы_ПодключаемыйНаСервере(ЭтотОбъект, ИмяКоманды, ИмяТаблицы);
КонецПроцедуры
В режиме Предприятие 1С появятся соответствующие кнопки настройки отбора и отключения отбора
При нажатии на кнопку настройки отбора будет открыта форма отборов примерно такая же как при настройке отборов в динамическом списке
Пример внедрения и работы с документом "Начисление зарплаты" в конфигурации ЗУП 3.1:
Оригинальное расширение не имеет заимствованных объектов и не использует программный интерфейс БСП.
Расширение тестировалось на платформе 8.3.17. Режим совместимости расширения: 8.3.12.