К основному содержанию
скилл CX Codex

epf-bsp-init — скилл для Claude Code: что делает и как установить

Генерирует экспортную функцию СведенияОВнешнейОбработке в модуле 1С-обработки для интеграции с подсистемой БСП «Дополнительные отчёты и обработки».

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills
Открыть на GitHub

Что делает epf-bsp-init

Скилл находит файл ObjectModule.bsl в каталоге src/<ProcessorName>/Ext/ и добавляет функцию регистрации в секцию #Область ПрограммныйИнтерфейс. Он определяет тип обработки по переданным аргументам, настраивает параметры команды по умолчанию и расставляет отступы табуляцией.

Для назначаемых видов вроде заполнения объектов или печатных форм скилл прописывает метаданные назначения и создаёт заготовки серверных процедур ВыполнитьКоманду или Печать. Без созданной структуры исходников через /epf-init генератор работать не будет.

Если функция СведенияОВнешнейОбработке уже присутствует в файле, скилл сообщит об этом и не станет её дублировать.

Какие задачи решает

  • подготовить внешнюю обработку к регистрации в БСП
  • сгенерировать шаблон функции СведенияОВнешнейОбработке
  • добавить серверный обработчик для внешней печатной формы
  • прописать объекты назначения для обработки заполнения

Примеры запросов агенту

  • /epf-bsp-init ЗаполнениеСчетов заполнение Документ.СчетНаОплату
  • /epf-bsp-init ПрайсЛист печатная форма для Справочник.Номенклатура
  • /epf-bsp-init ВыгрузкаДанных дополнительная обработка

Как установить epf-bsp-init

1Через маркетплейс плагинов

/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills

Команда ставит плагин 1c-skills целиком, со всеми его скиллами

2Через Skills CLI (Vercel)

npx skills add Nikolay-Shirokov/cc-1c-skills --skill epf-bsp-init -a claude-code

3Вручную: положить файлы

~/.claude/skills/epf-bsp-init/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/epf-bsp-init/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о epf-bsp-init

Как установить epf-bsp-init в Claude Code?

Выполните в терминале агента /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, а затем команду /plugin install 1c-skills@cc-1c-skills.

Что делает скилл epf-bsp-init?

Вставляет в модуль объекта внешней обработки функцию СведенияОВнешнейОбработке и нужные серверные процедуры для работы с БСП.

Что делать, если файл ObjectModule.bsl не найден?

Сначала выполните команду /epf-init, чтобы создать исходную структуру файлов обработки в каталоге src.

Исходный текст

SKILL.md · MIT
---
name: epf-bsp-init
description: Сформировать функцию `СведенияОВнешнейОбработке` в модуле объекта обработки — описание для подключения через подсистему БСП «Дополнительные отчёты и обработки». Используй когда нужно сделать обработку совместимой с БСП, подключаемой через «Дополнительные отчёты и обработки»
argument-hint: <ProcessorName> <Вид>
allowed-tools:
  - Read
  - Edit
  - Glob
  - Grep
---

# /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: Реализация

КонецПроцедуры
```

### Для ДополнительнаяОбработка / ДополнительныйОтчет (с ВызовСерверногоМетода)

Если пользователь явно выбрал серверный метод вместо открытия формы:

```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`
- Добавить форму: `/form-add`
- Добавить макет: `/template-add`
- Собрать EPF: `/epf-build`

© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills

Темы и платформы

Каталог скиллов SKILL.md →

Из того же набора59

web-info Проверяет статус Apache HTTP Server, список опубликованных баз 1С и свежие ошибки в логе. Пригодится при отладке веб-сервисов и OData. CX Codex 44установок interface-validate Проверяет CommandInterface.xml командного интерфейса 1С на структурные ошибки. Нужен после настройки интерфейса подсистемы. CX Codex 44установок help-add Скилл добавляет встроенную справку к объекту 1С: создаёт файлы помощи и связывает её с формами объекта. CX Codex 44установок form-remove Удаляет формы из выгруженных исходников 1С и вычищает ссылки на них из корневого XML объекта. Пригодится при рефакторинге конфигураций. CX Codex 44установок db-update Применяет изменения основной конфигурации 1С к конфигурации базы данных. Нужен, когда после загрузки XML или Git-ветки надо отдельным шагом обновить БД. CX Codex 44установок db-run Запускает информационную базу 1С:Предприятие в пользовательском режиме прямо из диалога с ассистентом, подтягивая настройки из конфигурации проекта. CX Codex 44установок db-dump-xml Выгружает конфигурацию 1С в XML-файлы. Подходит для полной, инкрементальной или частичной выгрузки исходников. CX Codex 44установок db-create Создаёт файловую или серверную информационную базу 1С. Нужен, когда требуется новая пустая база или создание из шаблона. CX Codex 44установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой