--- title: Подключение к подсистеме Групповое изменение реквизитов slug: общие-бсп-стандартные-подсистемы-3-1-10-групповое-изменение-реквизитов/подключение-к-подсистеме-групповое-изменение-реквизитов --- По умолчанию для группового изменения собственных объектов метаданных с помощью стандартной обработки `Групповое изменение реквизитов` ничего дополнительно настраивать не нужно - доп.настройки нужны только для того, чтобы **обеспечить возможность вывода команд запуска обработки на форму списка** и **ограничить состав доступных реквизитов** # Вывод команды на форму списка ## Общий модуль В общем модуле `ГрупповоеИзменениеОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов` ```bsl // Определить объекты метаданных, в формах списков которых // будет выведена команда группового изменения выделенных объектов. // см. ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные // // Параметры: // Объекты - Массив из ОбъектМетаданных // // Пример: // Объекты.Добавить(Метаданные.Справочники.Номенклатура); // Объекты.Добавить(Метаданные.Справочники.Контрагенты); // Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.Номенклатура); КонецПроцедуры ``` ## Форма списка ### Автоматическое создание команды Форму списка нужно подключить к подсистеме `Подключаемые команды` ![Изображение](/bsp-gruppovoe-izmenenie-rekv/1.png) ### Ручное создание команды На форме списка для динамического списка задаем у поля `Ссылка` флаг `Использовать всегда` Cоздаем команду со следующими **рекомендуемыми** свойствами: |Свойство|Значение| |-|-| |Имя|`ИзменитьВыделенные`| |Действие|`ИзменитьВыделенные`| |Подсказка|Изменить выделенные объекты| |Изменяет сохраняемые данные|`Нет`| размещаем в произвольном месте *(Опционально)* Настраиваем видимость команды. Например: ```bsl &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура); Элементы.ФормаИзменитьВыделенные.Видимость = МожноРедактировать; КонецПроцедуры ``` Определяем обработчик команды ```bsl &НаКлиенте Процедура ИзменитьВыделенные(Команда) // СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список, Список); // Конец СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов КонецПроцедуры ``` ## Ограничение редактируемых реквизитов Если необходимо точечно настроить состав реквизитов, которые будут доступны/недоступны в обработке `Групповое редактирование реквизитов` необходимо: 1. В процедуре `ПриОпределенииОбъектовСРедактируемымиРеквизитами` общего модуля `ГрупповоеИзменениеОбъектовПереопределяемый` указать, какие именно уточняющие процедуры (`РеквизитыРедактируемыеВГрупповойОбработке` и/или `РеквизитыНеРедактируемыеВГрупповойОбработке`) будут определены в **модуле менджера** целевого объекта: ```bsl // Определить объекты метаданных, в модулях менеджеров которых ограничивается возможность // редактирования реквизитов при групповом изменении. // // Параметры: // Объекты - Соответствие из КлючИЗначение - в качестве ключа указать полное имя объекта метаданных, // подключенного к подсистеме "Групповое изменение объектов". // Дополнительно в значении могут быть перечислены имена экспортных функций: // "РеквизитыНеРедактируемыеВГрупповойОбработке", // "РеквизитыРедактируемыеВГрупповойОбработке". // Каждое имя должно начинаться с новой строки. // Если указано "*", значит, в модуле менеджера определены обе функции. // // Пример: // Объекты.Вставить(Метаданные.Документы.ЗаказПокупателя.ПолноеИмя(), "*"); // определены обе функции. // Объекты.Вставить(Метаданные.БизнесПроцессы.ЗаданиеСРолевойАдресацией.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); // Объекты.Вставить(Метаданные.Справочники.Партнеры.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке // |РеквизитыНеРедактируемыеВГрупповойОбработке"); // Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт // Объекты.Вставить(Метаданные.Справочники.Номенклатура, "*"); КонецПроцедуры ``` 2. В модуле менеджера определяем указанные функции: ```bsl Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт РедактируемыеРеквизиты = Новый Массив; РедактируемыеРеквизиты.Добавить("ИмяРеквизита"); // реквизит объекта РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.ИмяРеквизита"); // реквизит табличной части объекта РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.*"); // все реквизиты табличной части объекта РедактируемыеРеквизиты.Добавить("*"); // все реквизиты и табличные части объекта. Если не указать, то // оставшиеся реквизиты скрываются Возврат РедактируемыеРеквизиты; КонецФункции Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт РедактируемыеРеквизиты = Новый Массив; // аналогично функции выше Возврат РедактируемыеРеквизиты; КонецФункции ```