| name | epf-bsp-init |
| description | Сформировать функцию `СведенияОВнешнейОбработке` в модуле объекта обработки — описание для подключения через подсистему БСП «Дополнительные отчёты и обработки». Используй когда нужно сделать обработку совместимой с БСП, подключаемой через «Дополнительные отчёты и обработки» |
| argument-hint | <ProcessorName> <Вид> |
| allowed-tools | ["Read","Edit","Glob","Grep"] |
/epf-bsp-init — Регистрация обработки в БСП
Добавляет в модуль объекта обработки функцию СведенияОВнешнейОбработке(), необходимую для регистрации в подсистеме «Дополнительные отчёты и обработки» БСП.
Usage
/epf-bsp-init <ProcessorName> <Вид> [Назначение...]
| Параметр | Обязательный | По умолчанию | Описание |
|---|
| ProcessorName | да | — | Имя обработки (должна быть создана через /epf-init) |
| Вид | да | — | Вид обработки (см. маппинг ниже) |
| Назначение | * | — | Объекты метаданных для назначаемых видов |
| SrcDir | нет | src | Каталог исходников |
* Назначение обязательно для видов: ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов.
Маппинг вида обработки
Пользователь может указать вид в свободной форме. Определи нужный по контексту:
| Пользователь пишет | Вид | API-метод |
|---|
| доп обработка, обработка, глобальная | ДополнительнаяОбработка | ВидОбработкиДополнительнаяОбработка() |
| доп отчёт, глобальный отчёт | ДополнительныйОтчет | ВидОбработкиДополнительныйОтчет() |
| заполнение, заполнить | ЗаполнениеОбъекта | ВидОбработкиЗаполнениеОбъекта() |
| отчёт (назначаемый, для объекта) | Отчет | ВидОбработкиОтчет() |
| печатная форма, печать | ПечатнаяФорма | ВидОбработкиПечатнаяФорма() |
| создание связанных объектов | СозданиеСвязанныхОбъектов | ВидОбработкиСозданиеСвязанныхОбъектов() |
Тип команды по умолчанию
| Вид | ТипКоманды по умолчанию |
|---|
| ДополнительнаяОбработка | ТипКомандыОткрытиеФормы() |
| ДополнительныйОтчет | ТипКомандыОткрытиеФормы() |
| ЗаполнениеОбъекта | ТипКомандыВызовСерверногоМетода() |
| Отчет | ТипКомандыОткрытиеФормы() |
| ПечатнаяФорма | ТипКомандыВызовСерверногоМетода() |
| СозданиеСвязанныхОбъектов | ТипКомандыВызовСерверногоМетода() |
Шаблон: СведенияОВнешнейОбработке
Базовый шаблон — одинаковый для всех видов, отличаются только вызовы API-методов и условные секции.
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ВидОбработки}};
ПараметрыРегистрации.Версия = "1.0";
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = МетаданныеОбработки.Представление();
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;
{{СЕКЦИЯ_МОДИФИКАТОР}}
Возврат ПараметрыРегистрации;
КонецФункции
Подстановки
{{ВидОбработки}} — API-метод из таблицы маппинга вида
{{ТипКоманды}} — API-метод из таблицы типа команды по умолчанию
Условные секции
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}} — только для назначаемых видов (ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов). Одна строка на каждый объект:
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
Формат имени объекта: ИмяКлассаОбъектаМетаданного.ИмяОбъекта (например Документ.СчетНаОплату, Справочник.Контрагенты).
Для глобальных видов (ДополнительнаяОбработка, ДополнительныйОтчет) — секция не нужна, удалить вместе с пустой строкой.
{{СЕКЦИЯ_МОДИФИКАТОР}} — только для ПечатнаяФорма:
НоваяКоманда.Модификатор = "ПечатьMXL";
Для остальных видов — удалить вместе с пустой строкой.
Шаблоны серверных обработчиков
Для видов с типом команды ВызовСерверногоМетода добавь соответствующую процедуру-обработчик в ту же область ПрограммныйИнтерфейс, после СведенияОВнешнейОбработке.
Для ЗаполнениеОбъекта / СозданиеСвязанныхОбъектов
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
Для ПечатнаяФорма
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
Для ДополнительнаяОбработка / ДополнительныйОтчет (с ВызовСерверногоМетода)
Если пользователь явно выбрал серверный метод вместо открытия формы:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
Обрати внимание: у глобальных обработок нет параметра ОбъектыНазначения.
Инструкции
- Найди
ObjectModule.bsl через Glob: src/{{ProcessorName}}/Ext/ObjectModule.bsl
- Прочитай файл
- Если
СведенияОВнешнейОбработке уже есть — сообщи пользователю и не дублируй
- Если файл не найден — предложи сначала вызвать
/epf-init
- Найди область
#Область ПрограммныйИнтерфейс ... #КонецОбласти
- Вставь функцию
СведенияОВнешнейОбработке() внутрь этой области
- Если вид требует серверный обработчик — вставь его тоже в эту область, после функции
- Используй табы для отступов (как в исходном файле)
Пример
Пользователь: /epf-bsp-init МояОбработка печатная форма для Документ.СчетНаОплату
Результат в ObjectModule.bsl:
#Область ОписаниеПеременных
#КонецОбласти
#Область ПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = МетаданныеОбработки.Представление();
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Ложь;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти
Дальнейшие шаги
- Добавить ещё команду:
/epf-bsp-add-command
- Добавить форму:
/form-add
- Добавить макет:
/template-add
- Собрать EPF:
/epf-build