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