agentleFS
gybson63gybson63/1c-oData-skill/skills/1cconfinfo/SKILL.md

1cconfinfo

Skill8 starsChanged 5 months agoMITView on GitHub

Анализ структуры конфигурации 1С:Предприятие — по XML-файлам выгрузки или через OData $metadata. Если Configuration.xml недоступен, автоматически использует OData.

The file

Files
SKILL.md

1cconfinfo — анализ конфигурации 1С

Описание

Скилл для анализа структуры конфигурации 1С:Предприятие. Поддерживает три источника данных:

ИсточникКогда использовать
MCP 1c-conf-doc (conf_doc_*)Подключён MCP и backend доступен — семантический поиск по полной выгрузке
XML-выгрузка (Configuration.xml)Есть выгрузка конфигурации в файлы
OData $metadataНет выгрузки, но есть опубликованная база

Приоритет: сначала MCP conf-doc (если подключён), затем Configuration.xml, затем OData $metadata.

См. skills/conf-doc/SKILL.md.


Источник 1: XML-выгрузка конфигурации

Используй скилл cf-info для анализа XML-выгрузки:

python .claude/skills/cf-info/scripts/cf-info.py -ConfigPath <путь_к_Configuration.xml_или_папке>

Или через PowerShell:

powershell -NoProfile -File .claude/skills/cf-info/scripts/cf-info.ps1 -ConfigPath <путь>

Режимы: overview (default), brief, full.

Структура выгрузки

Configuration.xml — корневой дескриптор метаданных:

  • имя, версию, поставщика
  • ссылки на все объекты конфигурации
Тип объектаПапка
СправочникиCatalogs/
ДокументыDocuments/
РегистрыСведенийInformationRegisters/
РегистрыНакопленияAccumulationRegisters/
ПеречисленияEnums/
ОтчётыReports/
ОбработкиDataProcessors/
ОбщиеМодулиCommonModules/
РолиRoles/
ПодсистемыSubsystems/
РегламентныеЗаданияScheduledJobs/
ПланыОбменаExchangePlans/
HTTPСервисыHTTPServices/

Источник 2: OData $metadata (когда нет Configuration.xml)

Если выгрузки нет, используй скрипт odata-cfg-info.py:

python skills/1cconfinfo/scripts/odata-cfg-info.py [-Mode overview|brief|full]

Скрипт читает credentials из env.json, запрашивает {odata_url}/$metadata, кэширует ответ в .cache/ и показывает состав опубликованных объектов.

Параметры скрипта

ПараметрОписаниеПо умолчанию
-Modeoverview / brief / fulloverview
-EnvFileПуть к env.jsonenv.json
-EnvProfileПрофиль в env.jsondefault
-ODataUrlПереопределить URLиз env.json
-CacheDirПапка для кэша.cache
-CacheTTLВремя жизни кэша (сек)3600
-ForceRefreshИгнорировать кэшfalse

Примеры

# Обзор (из кэша если есть, иначе — из OData)
python skills/1cconfinfo/scripts/odata-cfg-info.py

# Полный список объектов
python skills/1cconfinfo/scripts/odata-cfg-info.py -Mode full

# Принудительно обновить кэш
python skills/1cconfinfo/scripts/odata-cfg-info.py -ForceRefresh

# Краткая строка
python skills/1cconfinfo/scripts/odata-cfg-info.py -Mode brief

# Другой профиль
python skills/1cconfinfo/scripts/odata-cfg-info.py -EnvProfile prod

Как работает кэш

  • Файл кэша: .cache/odata_metadata_<hash>.xml (hash от URL базы)
  • TTL по умолчанию: 1 час (3600 сек)
  • Повторные вызовы в течение часа работают без сетевых запросов
  • -ForceRefresh принудительно обновляет кэш

Ограничения OData vs XML

ВозможностьXML-выгрузкаOData
Все объекты конфигурации✓✗ (только опубликованные)
Реквизиты объектов✓✓ (через EntityType)
Версия конфигурации✓✗
Роли, подсистемы, модули✓✗
Работает без выгрузки✗✓

Настройка env.json

{
  "default": {
    "odata_url": "http://localhost/your_base/odata/standard.odata",
    "odata_user": "Администратор",
    "odata_password": "пароль"
  }
}

Важно: Для кириллических паролей используй только этот скрипт. curl -u и PowerShell ломают кодировку при base64.


Алгоритм выбора источника

1. Подключён ли MCP 1c-conf-doc и conf_doc_health OK?
   ДА → conf_doc_search / conf_doc_get_object / conf_doc_get_object_chunk
   НЕТ → перейти к п.2

2. Есть ли Configuration.xml (или папка с ним)?
   ДА → использовать cf-info (полная информация)
   НЕТ → перейти к п.3

3. Есть ли env.json с odata_url?
   ДА → использовать odata-cfg-info.py (опубликованные объекты)
   НЕТ → попросить пользователя указать путь к выгрузке или настроить env.json

Структура файла объекта (XML-выгрузка)

<MetaDataObject xmlns="..." version="2.20">
  <Catalog uuid="...">
    <Properties>
      <Name>ИмяОбъекта</Name>
      <Synonym><v8:item><v8:content>Синоним</v8:content></v8:item></Synonym>
    </Properties>
    <ChildObjects>
      <Attribute uuid="...">
        <Properties>
          <Name>ИмяРеквизита</Name>
          <Type><v8:Type>cfg:CatalogRef.ДругойСправочник</v8:Type></Type>
        </Properties>
      </Attribute>
    </ChildObjects>
  </Catalog>
</MetaDataObject>

Типы ссылок в реквизитах

<v8:Type>cfg:CatalogRef.ИмяСправочника</v8:Type>
<v8:Type>cfg:DocumentRef.ИмяДокумента</v8:Type>
<v8:Type>cfg:EnumRef.ИмяПеречисления</v8:Type>
<v8:Type>xsd:string</v8:Type>
<v8:Type>xsd:decimal</v8:Type>
<v8:Type>xsd:boolean</v8:Type>
<v8:Type>xsd:dateTime</v8:Type>

Соглашения об именовании

ПаттернПримерЗначение
ПрисоединенныеФайлы суффиксСотрудникиПрисоединенныеФайлыКаталог прикреплённых файлов
бит_ префиксбит_ДоверенностьКастомный объект доработки
Удалить префиксУдалитьБанкиУстаревший объект
адаптер_ префиксадаптер_ВходящиеСообщенияОбъект интеграционного адаптера

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.