framework/skills/tool-usage/platform-data/platform-data-core/SKILL.md
Работа с данными платформы 1С (Platform Data Core). Навык объединяет три операции: поиск и анализ метаданных конфигурации, разбор навигационных ссылок и выполнение запросов к базе данных.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework platform-data-coreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Три операции, которые обычно используются вместе в одном рабочем цикле:
Принцип: Перед работой с бизнес-логикой — исследовать метаданные. Не создавать объекты «наугад», если пользователь не попросил явно.
| Tool | Параметры | Назначение |
|------|-----------|------------|
| list_metadata_objects | metaType, nameMask, maxItems | Поиск объектов по типу и маске имени |
| get_metadata_structure | metaType, name | Структура: реквизиты, ТЧ, измерения, ресурсы |
| navigate_symbol | — | Переход к модулям, процедурам найденных объектов |
| get_call_graph | — | Анализ цепочек вызовов в модулях |
list_metadata_objects(metaType, nameMask) — проверить существование и тип. Для нечёткого поиска: nameMask: "*Номенклатура*".get_metadata_structure(metaType, name) — реквизиты, ТЧ, измерения, ресурсы. Обязательно перед построением запроса.navigate_symbol → get_call_graph.get_metadata_structure для верификации.| Ошибка | Решение | |--------|---------| | Поиск по общему слову даёт много результатов | Сузить nameMask; указать metaType; уменьшить maxItems | | Агент пытается создать объект сам | Протокол: агент описывает, пользователь создаёт в Конфигураторе/EDT |
Справочник синтаксиса: references/query-syntax-cheatsheet.md
list_metadata_objects → get_metadata_structurevalidate_queryexecute_queryНикогда не угадывай имена — конфигурации 1С различаются. Один вызов за метаданными дешевле отладки провалившегося запроса.
При выполнении запросов через execute_query (HTTP/MCP без параметров) значения задаются явно в тексте запроса. Параметры &Имя могут не поддерживаться.
Для запросов, возвращающих строки данных, всегда ограничивай количество записей:
ВЫБРАТЬ ПЕРВЫЕ 100
Документы.Номер,
Документы.Дата
ИЗ
Документ.РеализацияТоваровУслуг КАК Документы
Исключения — ПЕРВЫЕ N не нужен и вреден:
| Случай | Почему не нужен |
|--------|-----------------|
| Агрегатные запросы (КОЛИЧЕСТВО, СУММА, МАКСИМУМ) | Возвращают одну строку; ПЕРВЫЕ 1 избыточен и может дать неверный результат при группировке |
| Проверка существования (ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка ИЗ ... ГДЕ ...) | ПЕРВЫЕ 1 здесь уместен и уже ограничивает |
| ОБЪЕДИНИТЬ ВСЕ в подзапросах | Ограничение задаётся на внешнем уровне |
❌ НЕПРАВИЛЬНО (если &Параметр недоступен):
ГДЕ Товар = &Товар
✅ ПРАВИЛЬНО (сравнение через примитивные реквизиты):
ГДЕ Товар.Наименование = "iPhone 17 Pro Max"
ГДЕ Контрагент.ИНН = "7707083893"
execute_query через HTTP/MCP не поддерживает параметры &Ссылка, поэтому сравнивать ссылочные поля напрямую невозможно — используй примитивные реквизиты объекта.
❌ НЕПРАВИЛЬНО (сравнение ссылок напрямую):
ГДЕ Документ.Контрагент = Справочник.Контрагенты.Ссылка
✅ ПРАВИЛЬНО (сравнение через примитивные реквизиты):
ГДЕ Документ.Контрагент.Наименование = "ООО Ромашка"
ГДЕ Документ.Контрагент.Код = "000001"
ГДЕ Документ.Контрагент.ИНН = "7707083893"
⚠️ Важно — риск неоднозначности. Наименование и Код не гарантируют уникальность:
Наименование— может повторяться в разных папках или при дубляхКод— уникален внутри справочника, предпочтительнееИНН,Артикули другие бизнес-идентификаторы — используй, если они уникальны в этой конфигурацииКогда допустимо: диагностика, анализ данных, разовые запросы где дубли маловероятны. Когда недопустимо: критически важная выборка, где ложное совпадение по имени даст неверный результат — в этом случае уточни у пользователя точный идентификатор или используй
ПОДОБНОс предупреждением о возможных дублях.
ГДЕ Документы.Дата >= ДАТАВРЕМЯ(2026, 1, 1)
И Документы.Дата < ДАТАВРЕМЯ(2026, 2, 1)
Формат: ДАТАВРЕМЯ(Год, Месяц, День[, Час, Минута, Секунда])
ГДЕ Номенклатура.Наименование = "iPhone 17 Pro Max, 512 Гб"
ГДЕ Контрагент.ИНН = "7707083893"
| Ошибка | Решение |
|--------|---------|
| NULL в вычислениях | ЕСТЬNULL(Поле, ЗначениеПоУмолчанию) при LEFT JOIN |
| Медленный запрос с ИЛИ | Заменить на В (...) или ОБЪЕДИНИТЬ ВСЕ |
| Медленный запрос к Регистратору | ВЫРАЗИТЬ(Регистратор КАК Документ.Имя) + ССЫЛКА в ГДЕ |
| Триггер | Действие |
|---------|----------|
| Пользователь даёт ссылку e1cib/data/... | parse_nav_link → тип + ссылка → запросы/анализ |
| Нужно сформировать ссылку по данным из запроса | get_nav_link(тип, ссылка) → ссылка для ответа |
parse_nav_link → извлечь тип и ref → построить запрос → execute_query.execute_query вернул ссылку → get_nav_link(тип, ссылка) → вернуть пользователю.| Capability | Назначение |
|------------|------------|
| parse_nav_link | Разбор e1cib/data/... — извлечение типа объекта и ссылки |
| get_nav_link | Формирование навигационной ссылки по типу + ссылке |
tools
Diagnostics for Vanessa Automation runs. Use when a feature scenario failed, artifacts were not created, or you need to classify a failure after launch.
tools
Creating and refining Vanessa Automation feature scenarios based on real project requirements. Use when you need to write or update a scenario test, not just run it.
tools
--- name: v8-session-manager description: Use when working with the 1С session manager (v8-session-manager) - launch, configuration, connecting 1С clients, reading session_list, calling proxied MCP-tools from 1С extensions, diagnostics. Triggers: mention of `v8-session-manager`, `session_list`, 1С extension MCP showcase, error “no active sessions” / “session_id required”, connecting a client to the manager via `mcpMode=ws`. provides_capabilities: # Built-in manager tools — always available whi
tools
Use when Codex needs to manage v8-runner on local 1C projects through the CLI: configure v8project.yaml, initialize infobases or EDT workspaces, build sources from Designer or EDT, run syntax checks and tests, dump infobase changes, convert source formats, load or export artifacts, launch 1C clients, or choose safe 1C automation command sequences.