/epf-bsp-add-command - Добавление команды БСП
SkillAI & modelsThis skill lets your AI add a command to an additional processing in 1C, following the rules of the Standard Subsystems Library. Once added, your AI can create the command and its code for you, so a new command appears in your 1C processing without you writing it by hand.
Available today. Use it from your connected AI after setup.
No other account needed.
Add the skill, then ask your AI to add a command to the additional processing in your 1C project.
Then ask your AI: use the /epf-bsp-add-command - Добавление команды БСП skill
What your AI can do with it
- Add a new command to a 1C additional processing
- Make the command meet the Standard Subsystems Library requirements
- Generate the command code in your 1C project
What this skill tells your AI
The instructions your AI receives, as published by desko77/claude-code-skills-1c in skills/1c-bsp-command/SKILL.md and read by ahel’s review.
Добавляет команду в существующую функцию СведенияОВнешнейОбработке() и генерирует соответствующий обработчик.
Предварительно обработка должна быть инициализирована через /epf-bsp-init.
Usage
/epf-bsp-add-command <ProcessorName> <Идентификатор> [ТипКоманды] [Представление]
| Параметр | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ProcessorName | да | - | Имя обработки |
| Идентификатор | да | - | Внутреннее имя команды (латиница) |
| ТипКоманды | нет | из вида обработки | Тип запуска команды (см. маппинг ниже) |
| Представление | нет | = Идентификатор | Отображаемое имя команды для пользователя |
| SrcDir | нет | src | Каталог исходников |
Маппинг типов команд
Пользователь может указать тип в свободной форме:
| Пользователь пишет | ТипКоманды |
|---|---|
| открыть форму, форма | ТипКомандыОткрытиеФормы() |
| клиентский метод, на клиенте | ТипКомандыВызовКлиентскогоМетода() |
| серверный метод, на сервере | ТипКомандыВызовСерверногоМетода() |
| заполнение формы, заполнить форму | ТипКомандыЗаполнениеФормы() |
| сценарий, безопасный режим | ТипКомандыСценарийВБезопасномРежиме() |
Если пользователь не указал тип - определи по виду обработки из существующего кода СведенияОВнешнейОбработке():
| Вид обработки (из кода) | ТипКоманды по умолчанию |
|---|---|
| ДополнительнаяОбработка | ТипКомандыОткрытиеФормы() |
| ДополнительныйОтчет | ТипКомандыОткрытиеФормы() |
| ЗаполнениеОбъекта | ТипКомандыВызовСерверногоМетода() |
| Отчет | ТипКомандыОткрытиеФормы() |
| ПечатнаяФорма | ТипКомандыВызовСерверногоМетода() |
| СозданиеСвязанныхОбъектов | ТипКомандыВызовСерверногоМетода() |
Шаблон добавления команды
Вставляется в СведенияОВнешнейОбработке() перед строкой Возврат ПараметрыРегистрации:
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = '{{Представление}}'");
НоваяКоманда.Идентификатор = "{{Идентификатор}}";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;
Для печатных форм (ВидОбработкиПечатнаяФорма) добавь также:
НоваяКоманда.Модификатор = "ПечатьMXL";
Примечание: в отличие от первой команды (из /epf-bsp-init), дополнительные команды используют строковые литералы НСтр("ru = '...'") для представления и строку для идентификатора, а не Метаданные().
Шаблоны обработчиков
ВызовСерверногоМетода - если обработчик уже есть
Если процедура ВыполнитьКоманду уже существует в модуле объекта, добавь ветку перед КонецЕсли:
ИначеЕсли ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
ВызовСерверногоМетода - если обработчика нет
Для глобальных обработок (без ОбъектыНазначения):
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры
Для назначаемых обработок (с ОбъектыНазначения):
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры
ПечатнаяФорма - если процедура Печать уже есть
Добавь блок перед КонецПроцедуры:
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "{{Идентификатор}}");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Сформировать{{Идентификатор}}(МассивОбъектов, ОбъектыПечати);
ПечатнаяФорма.СинонимМакета = НСтр("ru = '{{Представление}}'");
КонецЕсли;
ПечатнаяФорма - если процедуры Печать нет
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "{{Идентификатор}}");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Сформировать{{Идентификатор}}(МассивОбъектов, ОбъектыПечати);
ПечатнаяФорма.СинонимМакета = НСтр("ru = '{{Представление}}'");
КонецЕсли;
КонецПроцедуры
ВызовКлиентскогоМетода
Добавляется в модуль формы (Forms/<FormName>/Ext/Form/Module.bsl):
Для глобальных обработок:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры
Для назначаемых обработок:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры
Если процедура уже есть - добавь ветку ИначеЕсли.
Инструкции
- Найди и прочитай
ObjectModule.bslчерез Glob:src/{{ProcessorName}}/Ext/ObjectModule.bsl - Убедись что
СведенияОВнешнейОбработке()существует. Если нет - предложи вызвать/epf-bsp-init - Определи вид обработки из существующего кода (найди строку с
ВидОбработки...()) - Вставь блок команды перед
Возврат ПараметрыРегистрации - Добавь обработчик:
- Для серверных обработчиков - в
ObjectModule.bsl, областьПрограммныйИнтерфейс - Для клиентских обработчиков - в модуль формы (найти через Glob:
src/{{ProcessorName}}/Forms/*/Ext/Form/Module.bsl)
- Для серверных обработчиков - в
- Если обработчик (
ВыполнитьКоманду/Печать) уже есть - добавь ветку, не создавай дубль процедуры - Используй табы для отступов
Пример
Пользователь: /epf-bsp-add-command МояОбработка ЗаказПокупателя серверный "Заказ покупателя"
В СведенияОВнешнейОбработке() перед Возврат добавится:
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Заказ покупателя'");
НоваяКоманда.Идентификатор = "ЗаказПокупателя";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Ложь;
И в существующую процедуру ВыполнитьКоманду добавится блок обработки.
Signals
- GitHub stars
- 61
- Forks
- 14
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
x-1c-bsp-command- Source
- github.com/desko77/claude-code-skills-1c