Создание внешней обработки EPF
MCP routing
- Канонической операции создания внешней обработки на поверхности нет.
unica.applyправит существующий узел; дескриптор внешнего объекта вне конфигурации ни одна операция не заводит. - Сформируй дескриптор и
ObjectModule.bslфайловыми средствами по формату ниже, объяви набор нужного типа вv8project.yaml, затем проверьunica.check {}и прочитайunica.view {}: набор обязан читаться какsourceFormat=platform_xml. - Сборку
.epfсловарь тоже не публикует:artifact.buildсобирает только.cfи.cfe. Сообщай это как пробел контракта, а не обходи runner-ом. - Чтение и проверка идут через MCP
unica(unica.view,unica.check); внутренние adapters и skill-local scripts не вызывать. - Runtime идёт через
unica.run: вызов безopотдаёт словарь операций и контракт каждой —argsSchema,execution,previewRequired,ifRevRequiredOnApply. Контракт вызова бери оттуда, а не из этого текста; выбирай только операцию сimplemented: trueи не выдумывай аргументов записи сargsSchema: null; превью исполнением не является. Не обходи контракт прямым runner-ом. - Сборку
.epf/.erfиз исходников словарьunica.runне публикует:artifact.buildсобирает только.cfи.cfe. Сообщай это как пробел контракта, а не обходи runner-ом.
Порядок работы
- Убедиться, что
v8project.yamlиспользует Designer mode: явноformat: DESIGNERлибо полеformatотсутствует и действует Designer default v8-runner. Skill создаёт platform XML, а EDT external-project layout не поддерживается. - Сохранить существующие
workPath,infobase, credentials и local overrides. Не заменять connection string и не инициализировать существующую ИБ ради scaffold. - Найти source-set с
type: EXTERNAL_DATA_PROCESSORSи передать егоpathкакOutputDirбез вложенного подкаталога. v8-runner ищет descriptors непосредственно в корне source-set. - Если source-set ещё не объявлен, создать scaffold в выбранном новом каталоге, затем явно добавить этот каталог как корень Designer source-set. Проверить регистрацию через
unica.view {}:kind=external_processor,sourceFormat=platform_xml. - Передать
FormName, только если нужна пустая управляемая форма. Без него создаются descriptor иObjectModule.bsl. - Записав файлы, проверить набор:
unica.check {}иunica.view {}— превью и применение тут не при чём, операции нет. - Публикацию артефакта не обещать:
artifact.buildвunica.run.epfне собирает и отвечаетunsupported_operation.
Name и FormName должны быть идентификаторами 1С. Существующие descriptor или одноимённый каталог не перезаписываются. При format: EDT остановиться и объяснить несовместимость, не создавать Designer XML внутри EDT source-set.
В существующем валидном v8project.yaml добавить только этот фрагмент, используя ключ source-set в единственном числе и не затирая остальные поля:
source-set:
- name: external-processors
type: EXTERNAL_DATA_PROCESSORS
path: src/external-processors
Для нового изолированного workspace полный минимальный пример имеет также обязательный runtime-контекст:
workPath: build/runtime
execution_timeout: 300000
format: DESIGNER
builder: DESIGNER
infobase:
connection: 'File=build/ib'
source-set:
- name: external-processors
type: EXTERNAL_DATA_PROCESSORS
path: src/external-processors
Не вызывай infobase.create ради scaffold или существующей проектной базы: он заводит базу, а для scaffold это не нужно. Для существующей connection сохранить настройки без переинициализации; db-auth-check может классифицировать только уже предоставленное runtime evidence и не запускает auth probe.
Параметры
| Параметр | Назначение |
|---|---|
Name |
Имя внешней обработки, обязательно |
Synonym |
Русский синоним; по умолчанию равен Name |
OutputDir |
Корень external source-set, обязательно |
FormName |
Опциональная пустая управляемая форма |
Примеры
Поля, которые должен нести записанный дескриптор:
{
"Name": "ИмпортТоваров",
"Synonym": "Импорт товаров",
"OutputDir": "src/external-processors",
"FormName": "ОсновнаяФорма"
}
Верификация
Проверь результат до того, как объявлять объект готовым. Проверить, что созданы <Name>.xml, <Name>/Ext/ObjectModule.bsl и, если запрошена форма, три файла под <Name>/Forms/. Форму дополнительно проверить unica.check по адресу её узла. Отдельный generic Meta validator не использовать: он не принимает root ExternalDataProcessor. Не создавать Configuration.xml или platform-generated CDFI sidecar; legitimate external descriptor может называться ConfigDumpInfo.xml, если пользователь выбрал такое имя объекта.
Сборку и загрузку артефакта словарь unica.run не публикует: artifact.build отвечает unsupported_operation на .epf/.erf, а cf.import принимает только .cf и .cfe. Сообщай публикацию как пробел контракта Unica MCP.