Внешний отчет с открытием формы
В модуле объекта
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
ПараметрыРегистрации.Вставить("Наименование", "Сравнение подразделений ОС (карточка - начисление амортизации)"); //здесь будет имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "3.х");
ПараметрыРегистрации.Вставить("Информация", "Сравнение подразделений ОС (карточка - начисление амортизации)"); //здесь пишем описание
ТаблицаКоманд = ПолучитьТаблицуКоманд(); // добавляем строки команд, особо не мудря можно оставить все по стандарту
ДобавитьКоманду(ТаблицаКоманд, "Сравнение подразделений ОС (карточка - начисление амортизации)", "СравнениеПодразделенийОС", "ВызовКлиентскогоМетода");//"ВызовСерверногоМетода", Истина, "ОтчетMXL"); // заполняем наши строки данными из параметров
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); // создаём те самые сведения о ВПФ которые запросит управляемое приложение при добавлении оной в конфигурацию.
Возврат ПараметрыРегистрации; //возвращаем их при запросе конфигурации
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); //как будет выглядеть описание ВПФ для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета ВПФ
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода или Клиентского метода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
// Использование - "ВызовСерверногоМетода" или "ВызовКлиентскогоМетода"
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
В модуле формы
&НаКлиенте
//Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
ОткрытьФорму("ВнешнийОтчет.СравнениеПодразделенийОС.ФормаОбъекта");
КонецПроцедуры