Adds to the object module of a processing the function СведенияОВнешнейОбработке(), required for registration in the БСП subsystem "Additional reports and processings".
Usage
/epf-bsp-init <ProcessorName> <Вид> [Назначение...]
| Parameter | Required | Default | Description |
|---|---|---|---|
| ProcessorName | yes | — | Processing name (must be created via /epf-init) |
| Kind | yes | — | Kind of processing (see mapping below) |
| Purpose | * | — | Metadata objects for assignable kinds |
| SrcDir | no | src |
Source directory |
* The purpose is mandatory for the types: FillingObject, Report, PrintForm, CreatingRelatedObjects.
Mapping of the processing kind
The user may specify the kind in free form. Determine the required one by context:
| User writes | Kind | API method |
|---|---|---|
| additional processing, processing, global | AdditionalProcessing | ВидОбработкиДополнительнаяОбработка() |
| additional report, global report | AdditionalReport | ВидОбработкиДополнительныйОтчет() |
| filling, fill | FillingObject | ВидОбработкиЗаполнениеОбъекта() |
| report (assignable, for an object) | Report | ВидОбработкиОтчет() |
| printable form, printing | PrintForm | ВидОбработкиПечатнаяФорма() |
| creation of related objects | CreatingRelatedObjects | ВидОбработкиСозданиеСвязанныхОбъектов() |
Default command type
| Kind | Default ТипКоманды |
|---|---|
| AdditionalProcessing | ТипКомандыОткрытиеФормы() |
| AdditionalReport | ТипКомандыОткрытиеФормы() |
| FillingObject | ТипКомандыВызовСерверногоМетода() |
| Report | ТипКомандыОткрытиеФормы() |
| PrintForm | ТипКомандыВызовСерверногоМетода() |
| CreatingRelatedObjects | ТипКомандыВызовСерверногоМетода() |
Template: СведенияОВнешнейОбработке
The base template is the same for all kinds; only the API method calls and conditional sections differ.
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ВидОбработки}};
ПараметрыРегистрации.Версия = "1.0";
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = МетаданныеОбработки.Представление();
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;
{{СЕКЦИЯ_МОДИФИКАТОР}}
Возврат ПараметрыРегистрации;
КонецФункции
Substitutions
{{ВидОбработки}}— API method from the mapping table of the type{{ТипКоманды}}— API method from the default command type table
Conditional sections
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}} — only for assignable types (FillingObject, Report, PrintForm, CreatingRelatedObjects). One line per object:
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
Object name format: ИмяКлассаОбъектаМетаданного.ИмяОбъекта (for example Документ.СчетНаОплату, Справочник.Контрагенты).
For global types (AdditionalProcessing, AdditionalReport) — the section is not needed, delete it along with the empty line.
{{СЕКЦИЯ_МОДИФИКАТОР}} — only for PrintForm:
НоваяКоманда.Модификатор = "ПечатьMXL";
For the other types — delete along with the empty line.
Server handler templates
For types with the command type ВызовСерверногоМетода add the corresponding handler procedure to the same region ПрограммныйИнтерфейс, after СведенияОВнешнейОбработке.
For FillingObject / CreatingRelatedObjects
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
For PrintForm
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
For AdditionalProcessing / AdditionalReport (with ServerMethodCall)
If the user explicitly selected a server method instead of opening the form:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
Note: global processing routines do not have the parameter ОбъектыНазначения.
Instructions
- Find
ObjectModule.bslvia Glob:src/{{ProcessorName}}/Ext/ObjectModule.bsl - Read the file
- If
СведенияОВнешнейОбработкеalready exists — inform the user and do not duplicate - If the file is not found — suggest first calling
/epf-init - Find the region
#Область ПрограммныйИнтерфейс...#КонецОбласти - Insert the function
СведенияОВнешнейОбработке()inside this region - If the type requires a server handler — insert it into this region as well, after the function
- Use tabs for indentation (as in the source file)
Example
User: /epf-bsp-init МояОбработка печатная форма для Документ.СчетНаОплату
Result in ObjectModule.bsl:
#Область ОписаниеПеременных
#КонецОбласти
#Область ПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = МетаданныеОбработки.Представление();
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Ложь;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти
Next steps
- Add another command:
/epf-bsp-add-command - Add form:
/epf-add-form - Add template:
/template-add - Build EPF:
/epf-build