September 24

Как вставить внешнюю обработку в интерфейс

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

Имеется в виду обработка сохраненная в базе данных (в дополнительных отчетах и обработках).

Создаем общую команду, настраиваем для нее подсистему, группу, права (где и кому будет видна). В модуле команды пишем такой код:

НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	СсылкаНаОбработку = НайтиВнешнююОбработку("МояПрекраснаяОбработка");
	ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(СсылкаНаОбработку);
	ОткрытьФорму("ВнешняяОбработка.МояПрекраснаяОбработка.Форма");
КонецПроцедуры

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

Вот и все, оно работает!

←28 | заметка 29 | 30→