September 24, 2024
Как вставить внешнюю обработку в интерфейс
Понятно, что сейчас гораздо удобнее сделать это через расширение конфигурации. Но мне надо было именно без расширения (чтобы потом при возможных частых обновлениях не перезаходить в программу), ну и спортивный интерес появился...
Имеется в виду обработка сохраненная в базе данных (в дополнительных отчетах и обработках).
Создаем общую команду, настраиваем для нее подсистему, группу, права (где и кому будет видна). В модуле команды пишем такой код:
НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
СсылкаНаОбработку = НайтиВнешнююОбработку("МояПрекраснаяОбработка");
ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(СсылкаНаОбработку);
ОткрытьФорму("ВнешняяОбработка.МояПрекраснаяОбработка.Форма");
КонецПроцедуры
&НаСервере
Функция НайтиВнешнююОбработку(ИмяОбъекта)
Запрос = Новый Запрос;
Запрос.Текст = "
|Выбрать Ссылка из Справочник.ДополнительныеОтчетыИОбработки
|Где ИмяОбъекта = &ИмяОбъекта";
Запрос.УстановитьПараметр("ИмяОбъекта", ИмяОбъекта);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
КонецЕсли;
КонецФункции