SuperAPI AI Directory

epf-bsp-init

General & other

View repository

Updated 10-15 17:18

About this skill

/epf-bsp-init — Registration of a processing in БСП

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

  1. Find ObjectModule.bsl via Glob: src/{{ProcessorName}}/Ext/ObjectModule.bsl
  2. Read the file
  3. If СведенияОВнешнейОбработке already exists — inform 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 form: /epf-add-form
  • Add template: /template-add
  • Build EPF: /epf-build