SuperAPI AI Directory

epf-bsp-init

General & other

View repository

Updated 10-15 21:04

About this skill

/epf-bsp-init — Registering the processing in BSP

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

  1. Find ObjectModule.bsl via Glob: src/{{ProcessorName}}/Ext/ObjectModule.bsl
  2. Read the file
  3. If СведенияОВнешнейОбработке already exists — notify the user and do not duplicate
  4. If the file is not found — suggest first calling /epf-init
  5. Find the region #Область ПрограммныйИнтерфейс ... #КонецОбласти
  6. Insert the function СведенияОВнешнейОбработке() inside this region
  7. If the type requires a server handler — insert it into this region as well, after the function
  8. 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