---
title: Подключение к подсистеме Групповое изменение реквизитов
slug: общие-бсп-подключение-к-подсистемам/подключение-к-подсистеме-групповое-изменение-реквизитов
---

По умолчанию для группового изменения собственных объектов метаданных с помощью стандартной обработки `Групповое изменение реквизитов` ничего дополнительно настраивать не нужно - доп.настройки нужны только для того, чтобы **обеспечить возможность вывода команд запуска обработки на форму списка** и **ограничить состав доступных реквизитов**

# Вывод команды на форму списка

## Общий модуль

В общем модуле `ГрупповоеИзменениеОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов`
```bsl
// Определить объекты метаданных, в формах списков которых
// будет выведена команда группового изменения выделенных объектов.
// см. ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные
// 
// Параметры:
//  Объекты - Массив из ОбъектМетаданных
//
// Пример:
//	Объекты.Добавить(Метаданные.Справочники.Номенклатура);
//	Объекты.Добавить(Метаданные.Справочники.Контрагенты);
//
Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт

    Объекты.Добавить(Метаданные.Справочники.Номенклатура);

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

## Форма списка

### Автоматическое создание команды

Форму списка нужно подключить к подсистеме `Подключаемые команды`

![Изображение](/bsp-gruppovoe-izmenenie-rekv/1.png)

### Ручное создание команды

На форме списка для динамического списка задаем у поля `Ссылка` флаг `Использовать всегда` 

Cоздаем команду со следующими **рекомендуемыми** свойствами:
|Свойство|Значение|
|-|-|
|Имя|`ИзменитьВыделенные`|
|Действие|`ИзменитьВыделенные`|
|Подсказка|Изменить выделенные объекты|
|Изменяет сохраняемые данные|`Нет`|

размещаем в произвольном месте

*(Опционально)* Настраиваем видимость команды. Например:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура);
    Элементы.ФормаИзменитьВыделенные.Видимость = МожноРедактировать;
КонецПроцедуры
```

Определяем обработчик команды
```bsl
&НаКлиенте
Процедура ИзменитьВыделенные(Команда)
    // СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов
    ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список, Список);
    // Конец СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов
КонецПроцедуры
```

## Ограничение редактируемых реквизитов

Если необходимо точечно настроить состав реквизитов, которые будут доступны/недоступны в обработке `Групповое редактирование реквизитов` необходимо:

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

2. В модуле менеджера определяем указанные функции:
```bsl
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
    РедактируемыеРеквизиты = Новый Массив;
    РедактируемыеРеквизиты.Добавить("ИмяРеквизита"); // реквизит объекта
    РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.ИмяРеквизита"); // реквизит табличной части объекта
    РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.*"); // все реквизиты табличной части объекта
    РедактируемыеРеквизиты.Добавить("*"); // все реквизиты и табличные части объекта. Если не указать, то 
    // оставшиеся реквизиты скрываются
    Возврат РедактируемыеРеквизиты;
КонецФункции

Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
    РедактируемыеРеквизиты = Новый Массив;
    // аналогично функции выше
    Возврат РедактируемыеРеквизиты;
КонецФункции
```