Skip to content

Подключение к подсистеме Групповое изменение реквизитов

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

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

Общий модуль

В общем модуле ГрупповоеИзменениеОбъектовПереопределяемый дополняем процедуру ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов

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

Форма списка

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

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

Изображение

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

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

Cоздаем команду со следующими рекомендуемыми свойствами:

СвойствоЗначение
ИмяИзменитьВыделенные
ДействиеИзменитьВыделенные
ПодсказкаИзменить выделенные объекты
Изменяет сохраняемые данныеНет

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

(Опционально) Настраиваем видимость команды. Например:

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

Определяем обработчик команды

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

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

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

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