Внешний отчет с открытием формы

В модуле объекта

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…

ПараметрыРегистрации.Вставить("Наименование", "Сравнение подразделений ОС (карточка - начисление амортизации)"); //здесь будет имя под которым обработка будет зарегестрирована в справочнике внешних обработок

ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);

ПараметрыРегистрации.Вставить("Версия", "3.х");

ПараметрыРегистрации.Вставить("Информация", "Сравнение подразделений ОС (карточка - начисление амортизации)"); //здесь пишем описание

ТаблицаКоманд = ПолучитьТаблицуКоманд(); // добавляем строки команд, особо не мудря можно оставить все по стандарту

ДобавитьКоманду(ТаблицаКоманд, "Сравнение подразделений ОС (карточка - начисление амортизации)", "СравнениеПодразделенийОС", "ВызовКлиентскогоМетода");//"ВызовСерверногоМетода", Истина, "ОтчетMXL"); // заполняем наши строки данными из параметров

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); // создаём те самые сведения о ВПФ которые запросит управляемое приложение при добавлении оной в конфигурацию.

Возврат ПараметрыРегистрации; //возвращаем их при запросе конфигурации

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

Функция ПолучитьТаблицуКоманд()

Команды = Новый ТаблицаЗначений;

Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); //как будет выглядеть описание ВПФ для пользователя

Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета ВПФ

Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода или Клиентского метода

Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

Возврат Команды;

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

// Использование - "ВызовСерверногоМетода" или "ВызовКлиентскогоМетода"

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить();

НоваяКоманда.Представление = Представление;

НоваяКоманда.Идентификатор = Идентификатор;

НоваяКоманда.Использование = Использование;

НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;

НоваяКоманда.Модификатор = Модификатор;

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

В модуле формы

&НаКлиенте

//Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт

ОткрытьФорму("ВнешнийОтчет.СравнениеПодразделенийОС.ФормаОбъекта");

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