Adds to the object module of the processing the function СведенияОВнешнейОбработке(), required for registration in the BSP subsystem "Additional reports and processings".
Usage
/epf-bsp-init <ProcessorName> <Вид> [Назначение...]
| Parameter | Required | Default | Description |
|---|---|---|---|
| ProcessorName | yes | — | Processing name (must be created via /epf-init) |
| Type | yes | — | Processing type (see mapping below) |
| Purpose | * | — | Metadata objects for assignable types |
| SrcDir | no | src |
Source directory |
* Purpose is required for the types: ZapolnenieObekta, Otchet, PechatnayaForma, SozdanieSvyazannykhObektov.
Processing type mapping
The user can specify the type in free form. Determine the required one by context:
| User writes | Type | API method |
|---|---|---|
| additional processing, processing, global | DopolnitelnayaObrabotka | ВидОбработкиДополнительнаяОбработка() |
| additional report, global report | DopolnitelnyyOtchet | ВидОбработкиДополнительныйОтчет() |
| filling, fill | ZapolnenieObekta | ВидОбработкиЗаполнениеОбъекта() |
| report (assignable, for an object) | Otchet | ВидОбработкиОтчет() |
| printable form, printing | PechatnayaForma | ВидОбработкиПечатнаяФорма() |
| creation of related objects | SozdanieSvyazannykhObektov | ВидОбработкиСозданиеСвязанныхОбъектов() |
Default command type
| Type | Default CommandType |
|---|---|
| DopolnitelnayaObrabotka | ТипКомандыОткрытиеФормы() |
| DopolnitelnyyOtchet | ТипКомандыОткрытиеФормы() |
| ZapolnenieObekta | ТипКомандыВызовСерверногоМетода() |
| Otchet | ТипКомандыОткрытиеФормы() |
| PechatnayaForma | ТипКомандыВызовСерверногоМетода() |
| SozdanieSvyazannykhObektov | ТипКомандыВызовСерверногоМетода() |
Template: SvedeniyaOVneshneyObrabotke
Base template — the same for all types, only the API method calls and conditional sections differ.
Функция СведенияОВнешнейОбработке() Экспорт
МетаданныеОбработки = Метаданные();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ВидОбработки}};
ПараметрыРегистрации.Версия = "1.0";
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = МетаданныеОбработки.Представление();
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;
{{СЕКЦИЯ_МОДИФИКАТОР}}
Возврат ПараметрыРегистрации;
КонецФункции
Substitutions
{{ВидОбработки}}— API method from the mapping table of the form{{ТипКоманды}}— API method from the default command type table
Conditional sections
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}} — only for assignable types (ObjectFilling, 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 other types — delete along with the empty line.
Server handler templates
For types with command type ВызовСерверногоМетода add the corresponding handler procedure to the same region ПрограммныйИнтерфейс, after СведенияОВнешнейОбработке.
For ObjectFilling
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
For CreatingRelatedObjects
References of the created objects are added to the array СозданныеОбъекты:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполненияКоманды) Экспорт
// 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 — notify 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 a form:
/form-add - Add a template:
/template-add - Build the EPF:
/epf-build