Добавление возможности подключения внешних отчетов и обработок к объектам конфигурации при помощи расширения

Часто приходится сталкиваться с тем, что необходимо внести изменения в типовую конфигурацию, но очень не хочется снимать её с поддержки. Для этого в 1С существует ряд инструментов. Эта короткая статья посвящена тому, как подучить возможность подключения внешних отчетов к объекту конфигурации при помощи расширения на примере 1С:ERP Управление предприятием 2 (проверено на 1С:ERP Управление предприятием 2 (2.4.6.230)).

Часто приходится сталкиваться с тем, что необходимо внести изменения в типовую конфигурацию, но очень не хочется снимать её с поддержки. Для этого в 1С существует ряд инструментов. Эта короткая статья посвящена тому, как подучить возможность подключения внешних отчетов к объекту конфигурации при помощи расширения на примере 1С:ERP Управление предприятием 2.

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

Для добавления возможности подключения внешних отчетов и обработок к объектам конфигурации в 1С:ERP Управление предприятием 2 в общем модуле «ДополнительныеОтчетыИОбработки» в функции «ПодключенныеОбъектыМетаданных» достаточно в возвращаемую таблицу достаточно добавить строку с нужным объектом метаданных.

Для этого в расширение добавляем функцию «ПодключенныеОбъектыМетаданных» из общего модуля «ДополнительныеОтчетыИОбработки». В расширении в функции «ПодключенныеОбъектыМетаданных» общего модуля «ДополнительныеОтчетыИОбработки» создаем функцию

&Вместо("ПодключенныеОбъектыМетаданных")

Функция ChenkNemo_ПодключенныеОбъектыМетаданныхВместо(Вид) Экспорт

Результат = ПродолжитьВызов(Вид);

ОбъектМетаданных = Метаданные.Справочники.ВариантыКомплектацииНоменклатуры;

СтрокаТаблицы = Результат.Добавить();

СтрокаТаблицы.Метаданные = ОбъектМетаданных;

Если ОбъектМетаданных = ДополнительныеОтчетыИОбработкиКлиентСервер.ИдентификаторРабочегоСтола() Тогда

СтрокаТаблицы.ПолноеИмя = ДополнительныеОтчетыИОбработкиКлиентСервер.ИдентификаторРабочегоСтола();

СтрокаТаблицы.Ссылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка();

СтрокаТаблицы.Вид = "Подсистема";

СтрокаТаблицы.Представление = НСтр("ru = 'Начальная страница'");

Иначе

СтрокаТаблицы.ПолноеИмя = ОбъектМетаданных.ПолноеИмя();

СтрокаТаблицы.Ссылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных);

СтрокаТаблицы.Вид = Лев(СтрокаТаблицы.ПолноеИмя, СтрНайти(СтрокаТаблицы.ПолноеИмя, ".") - 1);

СтрокаТаблицы.Представление = ОбъектМетаданных.Представление();

КонецЕсли;

СтрокаТаблицы.ПолноеПредставление = СтрокаТаблицы.Представление + " (" + СтрокаТаблицы.Вид + ")";

Возврат Результат;

КонецФункции

Теперь наш справочник доступен в списке объектов размещения, остается только добавить в расширение нужную форму объекта метаданных. В расширении для добавленного объекта метаданных в модуле формы создаем процедуру «ПриСозданииНаСервереПосле» и переносим из любого подходящего объекта метаданных процедуры отвечающие за подключаемые команды. Например:

&НаСервере

Процедура ChenkNemo _ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)

// СтандартныеПодсистемы.ПодключаемыеКоманды

ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);

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

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *