1c-bsp-registration · git:20260828.e6ca64d · 2026-08-28 · sha256 6d024f97946ba647
1c-bsp-registration git:20260828.e6ca64dA
Immutable. This exact content is served forever at /api/v1/blob/6d024f97946ba647.
---
name: 1c-bsp-registration
description: "Добавить функцию регистрации БСП (СведенияОВнешнейОбработке) в модуль объекта обработки"
---
# /epf-bsp-init - Регистрация обработки в БСП
Добавляет в модуль объекта обработки функцию `СведенияОВнешнейОбработке`, необходимую для регистрации в подсистеме "Дополнительные отчеты и обработки" БСП.
## Usage
```
/epf-bsp-init <ProcessorName> <Вид> [Назначение...]
```
| Параметр | Обязательный | По умолчанию | Описание |
|---------------|:------------:|--------------|---------------------------------------------------------|
| ProcessorName | да | - | Имя обработки (должна быть создана через `/epf-init`) |
| Вид | да | - | Вид обработки (см. маппинг ниже) |
| Назначение | * | - | Объекты метаданных для назначаемых видов |
| SrcDir | нет | `src` | Каталог исходников |
\* Назначение обязательно для видов: ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов.
## Маппинг вида обработки
Пользователь может указать вид в свободной форме. Определи нужный по контексту:
| Пользователь пишет | Вид | API-метод |
|-------------------------------------------|----------------------------|----------------------------------------------|
| доп обработка, обработка, глобальная | ДополнительнаяОбработка | `ВидОбработкиДополнительнаяОбработка` |
| доп отчет, глобальный отчет | ДополнительныйОтчет | `ВидОбработкиДополнительныйОтчет` |
| заполнение, заполнить | ЗаполнениеОбъекта | `ВидОбработкиЗаполнениеОбъекта` |
| отчет (назначаемый, для объекта) | Отчет | `ВидОбработкиОтчет` |
| печатная форма, печать | ПечатнаяФорма | `ВидОбработкиПечатнаяФорма` |
| создание связанных объектов | СозданиеСвязанныхОбъектов | `ВидОбработкиСозданиеСвязанныхОбъектов` |
## Тип команды по умолчанию
| Вид | ТипКоманды по умолчанию |
|----------------------------|-------------------------------------------|
| ДополнительнаяОбработка | `ТипКомандыОткрытиеФормы` |
| ДополнительныйОтчет | `ТипКомандыОткрытиеФормы` |
| ЗаполнениеОбъекта | `ТипКомандыВызовСерверногоМетода` |
| Отчет | `ТипКомандыОткрытиеФормы` |
| ПечатнаяФорма | `ТипКомандыВызовСерверногоМетода` |
| СозданиеСвязанныхОбъектов | `ТипКомандыВызовСерверногоМетода` |
## Шаблон: СведенияОВнешнейОбработке
Базовый шаблон - одинаковый для всех видов, отличаются только вызовы API-методов и условные секции.
```bsl
Функция СведенияОВнешнейОбработке Экспорт
МетаданныеОбработки = Метаданные;
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ВидОбработки}};
ПараметрыРегистрации.Версия = "1.0";
{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить;
НоваяКоманда.Представление = МетаданныеОбработки.Представление;
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;
{{СЕКЦИЯ_МОДИФИКАТОР}}
Возврат ПараметрыРегистрации;
КонецФункции
```
### Подстановки
- `{{ВидОбработки}}` - API-метод из таблицы маппинга вида
- `{{ТипКоманды}}` - API-метод из таблицы типа команды по умолчанию
### Условные секции
**`{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}`** - только для назначаемых видов (ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов). Одна строка на каждый объект:
```bsl
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
```
Формат имени объекта: `ИмяКлассаОбъектаМетаданного.ИмяОбъекта` (например `Документ.СчетНаОплату`, `Справочник.Контрагенты`).
Для глобальных видов (ДополнительнаяОбработка, ДополнительныйОтчет) - секция не нужна, удалить вместе с пустой строкой.
**`{{СЕКЦИЯ_МОДИФИКАТОР}}`** - только для ПечатнаяФорма:
```bsl
НоваяКоманда.Модификатор = "ПечатьMXL";
```
Для остальных видов - удалить вместе с пустой строкой.
## Шаблоны серверных обработчиков
Для видов с типом команды `ВызовСерверногоМетода` добавь соответствующую процедуру-обработчик в ту же область `ПрограммныйИнтерфейс`, после `СведенияОВнешнейОбработке`.
### Для ЗаполнениеОбъекта / СозданиеСвязанныхОбъектов
```bsl
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
```
### Для ПечатнаяФорма
```bsl
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
```
### Для ДополнительнаяОбработка / ДополнительныйОтчет (с ВызовСерверногоМетода)
Если пользователь явно выбрал серверный метод вместо открытия формы:
```bsl
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// TODO: Реализация
КонецПроцедуры
```
Обрати внимание: у глобальных обработок нет параметра `ОбъектыНазначения`.
## Инструкции
1. Найди `ObjectModule.bsl` через Glob: `src/{{ProcessorName}}/Ext/ObjectModule.bsl`
2. Прочитай файл
3. Если `СведенияОВнешнейОбработке` уже есть - сообщи пользователю и не дублируй
4. Если файл не найден - предложи сначала вызвать `/epf-init`
5. Найди область `#Область ПрограммныйИнтерфейс` ... `#КонецОбласти`
6. Вставь функцию `СведенияОВнешнейОбработке` внутрь этой области
7. Если вид требует серверный обработчик - вставь его тоже в эту область, после функции
8. Используй табы для отступов (как в исходном файле)
## Пример
Пользователь: `/epf-bsp-init МояОбработка печатная форма для Документ.СчетНаОплату`
Результат в `ObjectModule.bsl`:
```bsl
#Область ОписаниеПеременных
#КонецОбласти
#Область ПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке Экспорт
МетаданныеОбработки = Метаданные;
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма;
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить;
НоваяКоманда.Представление = МетаданныеОбработки.Представление;
НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода;
НоваяКоманда.ПоказыватьОповещение = Ложь;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// TODO: Реализация
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти
```
## Дальнейшие шаги
- Добавить еще команду: `/epf-bsp-add-command`
- Добавить форму: `/epf-add-form`
- Добавить макет: `/template-add`
- Собрать EPF: `/epf-build`