desko77/cursor-1c-skills/1c-bsp-command

Claude Code and agent skill by desko77/cursor-1c-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Добавить команду в дополнительную обработку БСП

Install

npx vskill@latest install desko77/cursor-1c-skills/1c-bsp-command

SKILL.md

/epf-bsp-add-command - Добавление команды БСП

Добавляет команду в существующую функцию СведенияОВнешнейОбработке и генерирует соответствующий обработчик.

Предварительно обработка должна быть инициализирована через /epf-bsp-init.

Usage

/epf-bsp-add-command <ProcessorName> <Идентификатор> [ТипКоманды] [Представление]
ПараметрОбязательныйПо умолчаниюОписание
ProcessorNameда-Имя обработки
Идентификаторда-Внутреннее имя команды (латиница)
ТипКомандынетиз вида обработкиТип запуска команды (см. маппинг ниже)
Представлениенет= ИдентификаторОтображаемое имя команды для пользователя
SrcDirнетsrcКаталог исходников

Маппинг типов команд

Пользователь может указать тип в свободной форме:

Пользователь пишетТипКоманды
открыть форму, формаТипКомандыОткрытиеФормы
клиентский метод, на клиентеТипКомандыВызовКлиентскогоМетода
серверный метод, на сервереТипКомандыВызовСерверногоМетода
заполнение формы, заполнить формуТипКомандыЗаполнениеФормы
загрузка данных из файла, загрузкаТипКомандыЗагрузкаДанныхИзФайла

Если пользователь не указал тип - определи по виду обработки из существующего кода СведенияОВнешнейОбработке:

Вид обработки (из кода)ТипКоманды по умолчанию
ДополнительнаяОбработкаТипКомандыОткрытиеФормы
ДополнительныйОтчетТипКомандыОткрытиеФормы
ЗаполнениеОбъектаТипКомандыВызовСерверногоМетода
ОтчетТипКомандыОткрытиеФормы
ПечатнаяФормаТипКомандыВызовСерверногоМетода
СозданиеСвязанныхОбъектовТипКомандыВызовСерверногоМетода

Шаблон добавления команды

Вставляется в СведенияОВнешнейОбработке перед строкой Возврат ПараметрыРегистрации:

bsl
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить;
НоваяКоманда.Представление = НСтр("ru = '{{Представление}}'");
НоваяКоманда.Идентификатор = "{{Идентификатор}}";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.{{ТипКоманды}};
НоваяКоманда.ПоказыватьОповещение = Ложь;

Для печатных форм (ВидОбработкиПечатнаяФорма) добавь также:

bsl
НоваяКоманда.Модификатор = "ПечатьMXL";

Для команд загрузки данных из файла (ТипКомандыЗагрузкаДанныхИзФайла) поле Модификатор обязательно и должно содержать полное имя объекта метаданных-приемника:

bsl
НоваяКоманда.Модификатор = "Справочник.Номенклатура";

Без модификатора команда не привязывается к справочнику в мастере загрузки данных из файла.

Примечание: в отличие от первой команды (из /epf-bsp-init), дополнительные команды используют строковые литералы НСтр("ru = '...'") для представления и строку для идентификатора, а не Метаданные.

Шаблоны обработчиков

ВызовСерверногоМетода - если обработчик уже есть

Если процедура ВыполнитьКоманду уже существует в модуле объекта, добавь ветку перед КонецЕсли:

bsl
ИначеЕсли ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
ВызовСерверногоМетода - если обработчика нет

Для глобальных обработок (без ОбъектыНазначения):

bsl
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры

Для назначаемых обработок (с ОбъектыНазначения):

bsl
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры
ПечатнаяФорма - если процедура Печать уже есть

Добавь блок перед КонецПроцедуры:

bsl
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "{{Идентификатор}}");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Сформировать{{Идентификатор}}(МассивОбъектов, ОбъектыПечати);
ПечатнаяФорма.СинонимМакета = НСтр("ru = '{{Представление}}'");
КонецЕсли;
ПечатнаяФорма - если процедуры Печать нет
bsl
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "{{Идентификатор}}");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Сформировать{{Идентификатор}}(МассивОбъектов, ОбъектыПечати);
ПечатнаяФорма.СинонимМакета = НСтр("ru = '{{Представление}}'");
КонецЕсли;
КонецПроцедуры
ВызовКлиентскогоМетода

Добавляется в модуль формы (Forms/<FormName>/Ext/Form/Module.bsl):

Для глобальных обработок:

bsl
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры

Для назначаемых обработок:

bsl
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
Если ИдентификаторКоманды = "{{Идентификатор}}" Тогда
// TODO: Реализация {{Идентификатор}}
КонецЕсли;
КонецПроцедуры

Если процедура уже есть - добавь ветку ИначеЕсли.

Инструкции

  1. Найди и прочитай ObjectModule.bsl через Glob: src/{{ProcessorName}}/Ext/ObjectModule.bsl
  2. Убедись что СведенияОВнешнейОбработке существует. Если нет - предложи вызвать /epf-bsp-init
  3. Определи вид обработки из существующего кода (найди строку с ВидОбработки...)
  4. Вставь блок команды перед Возврат ПараметрыРегистрации
  5. Добавь обработчик:
  • Для серверных обработчиков - в ObjectModule.bsl, область ПрограммныйИнтерфейс
  • Для клиентских обработчиков - в модуль формы (найти через Glob: src/{{ProcessorName}}/Forms/*/Ext/Form/Module.bsl)
  1. Если обработчик (ВыполнитьКоманду / Печать) уже есть - добавь ветку, не создавай дубль процедуры
  2. Используй табы для отступов

Пример

Пользователь: /epf-bsp-add-command МояОбработка ЗаказПокупателя серверный "Заказ покупателя"

В СведенияОВнешнейОбработке перед Возврат добавится:

bsl
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить;
НоваяКоманда.Представление = НСтр("ru = 'Заказ покупателя'");
НоваяКоманда.Идентификатор = "ЗаказПокупателя";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода;
НоваяКоманда.ПоказыватьОповещение = Ложь;

И в существующую процедуру ВыполнитьКоманду добавится блок обработки.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/desko77/cursor-1c-skills/1c-bsp-command/badge)](https://verified-skill.com/skills/desko77/cursor-1c-skills/1c-bsp-command)

Something wrong with this skill or its page? Tell us.