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