Шаблон 1
Рекомендуется к использованию. В нем используются методы из программного интерфейса БСП. Методов может и не быть - всё зависит от вашей версии БСП (пример ниже использует БСП 3.1.11).
Версию БСП можно посмотреть в РС "Версии подсистем" или вызвать метод ВерсияБиблиотеки из общего модуля ДополнительныеОтчетыИОбработки как в примере ниже.
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбъекта = Метаданные();
Синоним = МетаданныеОбъекта.Синоним;
ВерсияОбработки = МетаданныеОбъекта.Комментарий;
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Информация = "";
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<ИмяВида>;
ПараметрыРегистрации.Версия = ВерсияОбработки;
ПараметрыРегистрации.Наименование = Синоним;
ПараметрыРегистрации.БезопасныйРежим = Истина;
Назначения = ПараметрыРегистрации.Назначение;
// Назначения.Добавить("Документ.ЗаказКлиента");
// Для работы в безопасном режиме (необязательно)
Разрешения = ПараметрыРегистрации.Разрешения;
// Разрешение<ВидРазрешения> = РаботаВБезопасномРежиме.Разрешение<ВидРазрешения>(<ПараметрыРазрешения>);
// Разрешения.Добавить(Разрешение<ВидРазрешения>);
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = Синоним;
Команда.Идентификатор = "";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<ИмяТипа>;
Возврат ПараметрыРегистрации;
КонецФункции
Как вы успели заметить в примере выше, некоторые данные берутся из метаданных внешней обработки, что очень удобно по моему мнению.
Более подробно расписано в статье:
Разбираемся с механизмом Дополнительные отчеты и обработки в БСП
Доступные функции
Расположены в общем модуле ДополнительныеОтчетыИОбработкиКлиентСервер и вызываются из него:
Вид обработки
ВидОбработкиПечатнаяФорма(); // Печатная форма.
ВидОбработкиЗаполнениеОбъекта(); // Заполнение объекта.
ВидОбработкиСозданиеСвязанныхОбъектов(); // Создание связанных объектов.
ВидОбработкиОтчет(); // Назначаемый отчет.
ВидОбработкиШаблонСообщения(); // Создание связанных объектов.
ВидОбработкиДополнительнаяОбработка(); // Дополнительная обработка.
ВидОбработкиДополнительныйОтчет(); // Дополнительный отчет.
Тип команды
ТипКомандыВызовСерверногоМетода(); // Вызов серверного метода.
ТипКомандыВызовКлиентскогоМетода(); // Вызов клиентского метода.
ТипКомандыОткрытиеФормы(); // Открытие формы.
ТипКомандыЗаполнениеФормы(); // Заполнение формы.
ТипКомандыЗагрузкаДанныхИзФайла(); // Загрузка данных из файла.
Шаблон 2
Это на тот случай, если необходимых методов как в примере выше - не нашлось из-за различий в версиях БСП.
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
Синоним = МетаданныеОбработки.Синоним;
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Информация", "");
ПараметрыРегистрации.Вставить("Вид", "");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Наименование", Синоним);
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
Назначения = Новый Массив;
// Назначения.Добавить("Документ.ЗаказКлиента");
ПараметрыРегистрации.Вставить("Назначение", Назначения);
Команды = ТаблицаКоманд();
ДобавитьКоманду(Команды, Синоним, "", "", Ложь);
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ТаблицаКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор,
Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Вид обработки
"ПечатнаяФорма", "ЗаполнениеОбъекта", "СозданиеСвязанныхОбъектов",
"Отчет", "ШаблонСообщения", "ДополнительнаяОбработка" или "ДополнительныйОтчет".
Тип команды
"ВызовКлиентскогоМетода", "ВызовСерверногоМетода",
"ЗаполнениеФормы", "ОткрытиеФормы" или "СценарийВБезопасномРежиме".
Примеры
Заключение
Надеюсь, статья была полезной! В качестве бонуса написал пример написания сведений для внешней печатной формы.
Ссылки:
Вступайте в нашу телеграмм-группу Инфостарт
