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