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

Публикация № 1043394

Программирование - Универсальные функции

ERP расширение ОпределяемыеТипы ОбъектСДополнительнымиКомандами подключение внешние отчеты обработки печатные формы ДополнительныеОтчетыИОбработки подключаемые команды &Вместо ПродолжитьВызов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                Иначе

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

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

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

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

                КонецЕсли;

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

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

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

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

&НаСервере

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

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

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

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

 

8

См. также

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение