gifts2017

Как добавить опцию "Изменить выделенные" в списках для своей конфигурации (групповое изменение справочников и документов)

Опубликовал Алексей Папанов (El_Loco) в раздел Обработки - Обработка документов

Статья для начинающих о том, как добавить в свою конфигурацию функцию группового изменения реквизитов в формах списков справочников и документов.
К статье прилагается выгрузка базы с примером.

Заранее оговорюсь, что статья для самых маленьких, чтобы в меня не кидали помидоры гуру и сенсеи кодинга. 

Итак, допустим, перед нами стоит задача: сделать удобное групповое изменение реквизитов справочников и документов в своей собственной конфигурации. 

Поводом для написания статьи стала вот эта публикация: http://infostart.ru/public/395374/

Я подумал, а зачем городить такое, если можно взять вполне себе успешный образец и встроить себе в свою конфигурацию. Например, как это сделано по фен-шую в "Бухгалтерии предприятия 3.0", где мы можем выделить элементы списка, нажать правую кнопку мыши и в контекстном меню выбрать пункт "Изменить выделенные".

Приступим!

1. Допустим, что мы уже создали конфигурацию на управляемых формах в платформе 8.3.

2. Создаем (или перетаскиваем из примера в этой публикации) общий модуль "ГрупповоеИзменениеОбъектовКлиент" (в свойствах модуля поставить флажок напротив "Клиент"):

////////////////////////////////////////////////////////////////////////////////
// Подсистема "Групповое изменение объектов".
//
////////////////////////////////////////////////////////////////////////////////

#Область ПрограммныйИнтерфейс

// Используется для открытия формы группового изменения объектов.
//
// Параметры:
//  Список - ТаблицаФормы - элемент формы списка, содержащий ссылки на изменяемые объекты.
//
Процедура ИзменитьВыделенные(Список) Экспорт
	
	ВыделенныеСтроки = Список.ВыделенныеСтроки;
	
	ПараметрыФормы = Новый Структура("МассивОбъектов", Новый Массив);
	
	Для Каждого ВыделеннаяСтрока Из ВыделенныеСтроки Цикл
		Если ТипЗнч(ВыделеннаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
			Продолжить;
		КонецЕсли;
		
		ТекущаяСтрока = Список.ДанныеСтроки(ВыделеннаяСтрока);
		
		Если ТекущаяСтрока <> Неопределено Тогда
			
			ПараметрыФормы.МассивОбъектов.Добавить(ТекущаяСтрока.Ссылка);
			
		КонецЕсли;
		
	КонецЦикла;
	
	Если ПараметрыФормы.МассивОбъектов.Количество() = 0 Тогда
		ПоказатьПредупреждение(, НСтр("ru = 'Команда не может быть выполнена для указанного объекта.'"));
		Возврат;
	КонецЕсли;
		
	ОткрытьФорму("Обработка.ГрупповоеИзменениеРеквизитов.Форма", ПараметрыФормы);
	
КонецПроцедуры

#КонецОбласти


3. Перетаскиваем обработку из моей демо-конфигурации в свою. Т.е. открываете два окна конфигуратора, в моей базе хватаете мышью обработку "ГрупповоеИзменениеРеквизитов" и перетаскиваете ее в свою базу. См. рис.


4. Открываем форму списка любого справочника или документа. В моем случае это будет "Контрагенты".
В числе колонок списка обязательно должно быть поле с именем "Ссылка", которое содержит ссылку на объект справочника или документа. Если у вас Список типа "Динамический список" с произвольным запросом, убедитесь, что в числе выбираемых полей есть поле "Ссылка". В обычном же динамическом списке это поле будет присутствовать.

 


5. Теперь нам нужно добавить команду для того, чтобы пользователь мог производить изменение реквизитов.
На вкладке команды создаем новую команду и процедуру (выполняемую на клиенте). Содержание процедуры такое:

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

Далее будет рисунок как все должно выглядеть. И чуть ниже подробнее, если кто не поймет.


6. Чтобы эту команду пользователь мог вызывать из контекстного меню списка, нам надо это меню добавить.


И теперь мы хватаем мышью нашу команду и перетаскиваем в контекстное меню, чтобы получилось как ниже на рисунке:


Вот и все. Сохраняем и обновляем конфигурацию.

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

А еще проще сказать - мы взяли и позаимствовали у 1С их типовой вариант.
Мне кажется, такой вариант удобнее чем в публикации, которую я упомянул выше.

Само собой, что это можно внедрить не только в форму списка справочника, но и документа.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Демо_Групповое_Изменение_Реквизитов
.dt 95,01Kb
09.09.15
5
.dt 1.0 95,01Kb 5 Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа