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

15.04.19

Разработка - Универсальные функции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                Иначе

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

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

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

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

                КонецЕсли;

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

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

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

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

&НаСервере

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

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

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

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

 

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4107    Abysswalker    10    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    7659    DeerCven    15    

61

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    52620    dimanich70    84    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7663    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    67107    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9590    ke.92@mail.ru    17    

68
Для отправки сообщения требуется регистрация/авторизация