$npx -y skills add Nikolay-Shirokov/cc-1c-skills --skill epf-bsp-initСформировать функцию СведенияОВнешнейОбработке в модуле объекта обработки — описание для подключения через подсистему БСП «Дополнительные отчёты и обработки». Используй когда нужно сделать обработку совместимой с БСП, подключаемой через «Дополнительные отчёты и обработки»
| 1 | # /epf-bsp-init — Регистрация обработки в БСП |
| 2 | |
| 3 | Добавляет в модуль объекта обработки функцию `СведенияОВнешнейОбработке()`, необходимую для регистрации в подсистеме «Дополнительные отчёты и обработки» БСП. |
| 4 | |
| 5 | ## Usage |
| 6 | |
| 7 | ``` |
| 8 | /epf-bsp-init <ProcessorName> <Вид> [Назначение...] |
| 9 | ``` |
| 10 | |
| 11 | | Параметр | Обязательный | По умолчанию | Описание | |
| 12 | |---------------|:------------:|--------------|---------------------------------------------------------| |
| 13 | | ProcessorName | да | — | Имя обработки (должна быть создана через `/epf-init`) | |
| 14 | | Вид | да | — | Вид обработки (см. маппинг ниже) | |
| 15 | | Назначение | * | — | Объекты метаданных для назначаемых видов | |
| 16 | | SrcDir | нет | `src` | Каталог исходников | |
| 17 | |
| 18 | \* Назначение обязательно для видов: ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов. |
| 19 | |
| 20 | ## Маппинг вида обработки |
| 21 | |
| 22 | Пользователь может указать вид в свободной форме. Определи нужный по контексту: |
| 23 | |
| 24 | | Пользователь пишет | Вид | API-метод | |
| 25 | |-------------------------------------------|----------------------------|----------------------------------------------| |
| 26 | | доп обработка, обработка, глобальная | ДополнительнаяОбработка | `ВидОбработкиДополнительнаяОбработка()` | |
| 27 | | доп отчёт, глобальный отчёт | ДополнительныйОтчет | `ВидОбработкиДополнительныйОтчет()` | |
| 28 | | заполнение, заполнить | ЗаполнениеОбъекта | `ВидОбработкиЗаполнениеОбъекта()` | |
| 29 | | отчёт (назначаемый, для объекта) | Отчет | `ВидОбработкиОтчет()` | |
| 30 | | печатная форма, печать | ПечатнаяФорма | `ВидОбработкиПечатнаяФорма()` | |
| 31 | | создание связанных объектов | СозданиеСвязанныхОбъектов | `ВидОбработкиСозданиеСвязанныхОбъектов()` | |
| 32 | |
| 33 | ## Тип команды по умолчанию |
| 34 | |
| 35 | | Вид | ТипКоманды по умолчанию | |
| 36 | |----------------------------|-------------------------------------------| |
| 37 | | ДополнительнаяОбработка | `ТипКомандыОткрытиеФормы()` | |
| 38 | | ДополнительныйОтчет | `ТипКомандыОткрытиеФормы()` | |
| 39 | | ЗаполнениеОбъекта | `ТипКомандыВызовСерверногоМетода()` | |
| 40 | | Отчет | `ТипКомандыОткрытиеФормы()` | |
| 41 | | ПечатнаяФорма | `ТипКомандыВызовСерверногоМетода()` | |
| 42 | | СозданиеСвязанныхОбъектов | `ТипКомандыВызовСерверногоМетода()` | |
| 43 | |
| 44 | ## Шаблон: СведенияОВнешнейОбработке |
| 45 | |
| 46 | Базовый шаблон — одинаковый для всех видов, отличаются только вызовы API-методов и условные секции. |
| 47 | |
| 48 | ```bsl |
| 49 | Функция СведенияОВнешнейОбработке() Экспорт |
| 50 | |
| 51 | МетаданныеОбработки = Метаданные(); |
| 52 | |
| 53 | ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); |
| 54 | ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ВидОбработки}}; |
| 55 | ПараметрыРегистрации.Версия = "1.0"; |
| 56 | |
| 57 | {{СЕКЦИЯ_НАЗНАЧЕНИЕ}} |
| 58 | |
| 59 | НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); |
| 60 | НоваяКоманда.Представление = МетаданныеОбработки.Представление(); |
| 61 | НоваяКоманда.Идентификатор = МетаданныеОбработки.Имя; |
| 62 | НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}}; |
| 63 | НоваяКоманда.ПоказыватьОповещение = Ложь; |
| 64 | {{СЕКЦИЯ_МОДИФИКАТОР}} |
| 65 | |
| 66 | Возврат ПараметрыРегистрации; |
| 67 | |
| 68 | КонецФункции |
| 69 | ``` |
| 70 | |
| 71 | ### Подстановки |
| 72 | |
| 73 | - `{{ВидОбработки}}` — API-метод из таблицы маппинга вида |
| 74 | - `{{ТипКоманды}}` — API-метод из таблицы типа команды по умолчанию |
| 75 | |
| 76 | ### Условные секции |
| 77 | |
| 78 | **`{{СЕКЦИЯ_НАЗНАЧЕНИЕ}}`** — только для назначаемых видов (ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов). Одна строка на каждый объект: |
| 79 | |
| 80 | ```bsl |
| 81 | ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплату"); |
| 82 | ``` |
| 83 | |
| 84 | Формат имени объекта: `ИмяКлассаОбъектаМетаданного.ИмяОбъекта` (например `Документ.СчетНаОплату`, `Справочник.Контрагенты`). |
| 85 | |
| 86 | Для глобальных видов (ДополнительнаяОбработка, ДополнительныйОтчет) — секция не нужна, удалить вместе с пустой строкой. |
| 87 | |
| 88 | **`{{СЕКЦИЯ_МОДИФИКАТОР}}`** — только для ПечатнаяФорма: |
| 89 | |
| 90 | ```bsl |
| 91 | НоваяКоманда.Модификатор = "ПечатьMXL"; |
| 92 | ``` |
| 93 | |
| 94 | Для остальных видов — удалить вместе с пустой строкой. |
| 95 | |
| 96 | ## Шаблоны серверных обработчиков |
| 97 | |
| 98 | Для видов с типом команды `ВызовСерверногоМетода` добавь соответствующую процедуру-обработчик в ту же область `ПрограммныйИ |