KD 2.0 - правила обмена через MCP-toolkit
Скилл описывает, как агент создает/изменяет правила обмена в живой ИБ
"Конвертация данных 2.1" (КД 2.0) через MCP-toolkit HTTP API (порт по
умолчанию 6003, в проектах часто 7003) и в финале выгружает XML
штатными обработками КД.
Что такое КД 2.0
- Конфигурация фирмы "1С", v2.1.8.2, обычные формы, режим совместимости
8.2.13. Программа для разработки правил обмена данными между парами
конфигураций (например, БП КОРП -> УПП, УТ -> ERP).
- Результат работы в КД - XML с правилами, который грузится в
"Универсальный обмен данными в формате XML" в конфигурации-источнике.
- Все правила хранятся в справочниках самой КД:
Конвертации,
ПравилаКонвертацииОбъектов, ПравилаКонвертацииСвойств,
ПравилаКонвертацииЗначений, ПравилаВыгрузкиДанных,
ПравилаОчисткиДанных, ПравилаРегистрацииОбъектов, плюс
Конфигурации/Объекты/Свойства/Значения (теневая модель метаданных
источника и приемника).
Архитектура работы
Claude (агент)
↕ MCP-протокол / прямые tool-вызовы
Скилл kd2-rules
↕ HTTP POST :6003/api/* (или :7003 если переопределен порт)
MCP-toolkit (обработка MCP_Toolkit.epf в живой ИБ)
↕ внутрипроцессно
ИБ КД 2.0
↕ через ВыгрузкаКонвертации.ВыполнитьВыгрузкуПравил()
Файл XML с правилами обмена
Низкоуровневый транспорт - MCP-toolkit (скилл 1c-mcp-toolkit). Главные
эндпоинты, которые используются здесь:
POST /api/execute_query - читать справочники КД и их связи.
POST /api/execute_code - создавать/изменять элементы справочников,
запускать экспортные методы обработок.
GET /api/health - проверка живости.
Предварительные требования
- Запущенная ИБ КД 2.0 в тонком/толстом клиенте с открытой обработкой
MCP_Toolkit.epf (см. скилл 1c-mcp-toolkit). HTTP-сервер слушает
localhost:6003 (или :7003 по настройке).
- В форме toolkit-а проверить и при необходимости снять защиту от записи:
снять флажки на ключевые слова
Записать, Удалить,
УстановитьПривилегированныйРежим. Без этого работают только
execute_query и read-only вызовы.
- Желательно тестовая копия ИБ КД, а не production - правила пишутся
напрямую в справочники.
Быстрая проверка готовности
curl http://localhost:7003/health
# Ожидание: {"status":"healthy", ...}
curl -sS -X POST "http://localhost:7003/api/execute_query" \
-H "Content-Type: application/json" \
-d '{"query":"ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Кол ИЗ Справочник.Конвертации"}'
Карта references
| Документ |
Что внутри |
Когда читать |
references/helpers.md |
библиотека готовых BSL-заготовок для execute_code: списки ПКО/ПКС/ПКЗ, дамп обработчиков, флаги ПКО, ПКС по ссылке на Свойство, выгрузка комплекта XML, поиск объектов с учетом префикса типа, идиомы передачи значений |
нужен запрос или правка объектов КД - СНАЧАЛА сюда, не сочинять скрипт с нуля |
references/architecture.md |
объектная модель КД, иерархия Владелец, полные списки реквизитов всех ключевых справочников |
проектирование новой операции, нужны типы и связи |
references/methods.md |
экспортные методы обработок выгрузки/загрузки + file:line + параметры (реквизиты обработки) |
вызов конкретного метода через execute_code |
references/workflows.md |
end-to-end сценарии: подготовка ИБ, загрузка метаданных, создание правил, выгрузка XML, импорт XML, автонастройка |
впервые делаешь полный цикл или сложный сценарий |
references/xml-schema.md |
схема итогового XML правил обмена + маппинг полей справочника на XML |
надо понять, что КД ожидает увидеть в XML, или сверить результат с эталоном |
references/troubleshooting.md |
типичные ошибки и ограничения toolkit-а, особенности КД 2.0 |
при ошибке execute_code/execute_query |
5 базовых операций (краткий справочник)
1. Найти конвертацию по имени
Конв = Справочники.Конвертации.НайтиПоНаименованию("Имя_Конвертации");
Если Конв.Пустая() Тогда
ВызватьИсключение "Конвертация не найдена";
КонецЕсли;
Результат = XMLСтрока(Конв);
2. Список ПКО в конвертации
curl -sS -X POST "http://localhost:7003/api/execute_query" \
-H "Content-Type: application/json" \
-d '{
"query": "ВЫБРАТЬ ПКО.Наименование, ПКО.ТипИсточника, ПКО.ТипПриемника, ПКО.Порядок ИЗ Справочник.ПравилаКонвертацииОбъектов КАК ПКО ГДЕ ПКО.Владелец.Наименование = &Конв И НЕ ПКО.ЭтоГруппа УПОРЯДОЧИТЬ ПО ПКО.Порядок",
"params": {"Конв": "Имя_Конвертации"}
}'
3. Создать ПКО
Конв = Справочники.Конвертации.НайтиПоНаименованию("МояКонвертация");
ОбъИст = Справочники.Объекты.НайтиПоНаименованию("Контрагенты", Истина, Конв.Источник);
ОбъПр = Справочники.Объекты.НайтиПоНаименованию("Контрагенты", Истина, Конв.Приемник);
ПКО = Справочники.ПравилаКонвертацииОбъектов.СоздатьЭлемент();
ПКО.Владелец = Конв;
ПКО.Наименование = "Контрагенты";
ПКО.Источник = ОбъИст;
ПКО.Приемник = ОбъПр;
ПКО.ТипИсточника = "СправочникСсылка.Контрагенты";
ПКО.ТипПриемника = "СправочникСсылка.Контрагенты";
ПКО.Порядок = 100;
ПКО.Записать();
Результат = Новый Структура("ссылка", XMLСтрока(ПКО.Ссылка));
4. Создать ПКС внутри ПКО
ПКО = Справочники.ПравилаКонвертацииОбъектов.НайтиПоНаименованию("Контрагенты", Истина, Конв);
СвИст = Справочники.Свойства.НайтиПоНаименованию("Наименование", Истина, ПКО.Источник);
СвПр = Справочники.Свойства.НайтиПоНаименованию("Наименование", Истина, ПКО.Приемник);
ПКС = Справочники.ПравилаКонвертацииСвойств.СоздатьЭлемент();
ПКС.Владелец = ПКО;
ПКС.Источник = СвИст;
ПКС.Приемник = СвПр;
ПКС.ИмяИсточника = "Наименование";
ПКС.ИмяПриемника = "Наименование";
ПКС.ТипИсточника = "Строка";
ПКС.ТипПриемника = "Строка";
ПКС.ВидИсточника = "Свойство";
ПКС.ВидПриемника = "Свойство";
ПКС.Наименование = "Наименование --> Наименование";
ПКС.Порядок = 100;
ПКС.Записать();
5. Выгрузить конвертацию в XML
Конв = Справочники.Конвертации.НайтиПоНаименованию("МояКонвертация");
Обр = Обработки.ВыгрузкаКонвертации.Создать();
Обр.КонвертацияДляВыгрузки = Конв;
Обр.ИмяФайлаПравил = "C:\Output\rules.xml";
Обр.СжиматьФайлПравил = Ложь;
Обр.ВыгружатьПравилаКорреспондента = Ложь;
Обр.ВыгружатьПравилаРегистрации = Ложь;
Обр.ВыполнитьВыгрузкуПравил();
Файл = Новый Файл(Обр.ИмяФайлаПравил);
Результат = Новый Структура("ok,path,size", Истина, Обр.ИмяФайлаПравил, Файл.Размер());
Принципы работы
Все справочники иерархические "Папки и элементы". ПКО-группы (ЭтоГруппа=true)
используются для логической группировки правил внутри конвертации.
Владелец = главная связь. ПКО подчинен Конвертации, ПКС/ПКЗ подчинены ПКО,
Объекты подчинены Конфигурации, Свойства подчинены Объектам, Значения
подчинены Свойствам.
Денормализованные дубликаты. Поля типа ИмяИсточника/ТипИсточника в ПКО и
ПКС - строковые копии данных из связанной ссылки (для быстрого поиска без
join-ов). Заполняй их явно при создании.
Поле Код в Конвертациях и ПКО - это "внутренний идентификатор" (UUID-подобная
строка фиксированной длины 40 символов с trailing-пробелами). Используется в
итоговом XML как <Ид> и <КодПравилаКонвертации>.
Имя файла в ИмяФайлаПравил должно быть путем к существующему каталогу.
КаталогВременныхФайлов() - надежный способ получить временную папку клиента.
Гигиена скриптов. Одноразовые/отладочные BSL-скрипты класть только в
tools/_tmp/ рабочего каталога КД и чистить после задачи. Устойчивые
операции не копить в одноразовых файлах - брать из references/helpers.md
и добавлять новые заготовки туда же.
Ограничения
- Все ключевые методы КД работают через
execute_code без явного
execution_context (toolkit живет в клиентском контексте 1С,
директива #Если Клиент Тогда не блокирует).
- В стандартной конфигурации toolkit-а заблокированы ключевые слова
Записать, Удалить, УстановитьПривилегированныйРежим. Для создания
правил - отключить защиту в форме toolkit-а.
- Возможны trailing-пробелы в строковых ссылочных полях (
Код 40 символов
с пробелами). При сравнениях использовать СокрЛП(...).
- Обработка
ВыгрузкаКонвертации использует переменную модуля
мФормаПрогрессора.Значение - при программном запуске она остается
не инициализированной, но падения не происходит.
Связанные скиллы
1c-mcp-toolkit - HTTP API к живой ИБ 1С (этот скилл - надстройка
поверх него).
composing-1c-queries - синтаксис языка запросов 1С для execute_query.
1---2name: kd2-rules3description: Программная разработка правил обмена в "Конвертация данных 2.1" (КД 2.0) через MCP-toolkit к живой ИБ. Создание/чтение/изменение Конвертаций, ПКО, ПКС, ПКЗ, ПВД, ПОД в справочниках КД и выгрузка итогового XML штатными обработками КД (ВыгрузкаКонвертации, ВыгрузкаРегистрации, ЗагрузкаКонвертации, ЗагрузкаСтруктурыМетаданных). Содержит схему данных, шаблоны BSL для execute_code, схему итогового XML, типичные ошибки. Триггеры на русском: "работа с КД 2.0", "правила обмена в КД", "создать конвертацию", "настроить ПКО ПКС ПКЗ", "выгрузить правила обмена в XML", "конвертация данных 2.1", "загрузить метаданные конфигурации в КД", "автонастройка правил конвертации". Триггеры на английском: "1C data conversion rules", "KD 2.0", "create conversion rule", "PKO PKS PKZ", "export exchange rules XML".4---56# KD 2.0 - правила обмена через MCP-toolkit78Скилл описывает, как агент создает/изменяет правила обмена в живой ИБ9"Конвертация данных 2.1" (КД 2.0) через `MCP-toolkit` HTTP API (порт по10умолчанию `6003`, в проектах часто `7003`) и в финале выгружает XML11штатными обработками КД.1213## Что такое КД 2.01415- Конфигурация фирмы "1С", v2.1.8.2, обычные формы, режим совместимости16 8.2.13. Программа для разработки правил обмена данными между парами17 конфигураций (например, БП КОРП -> УПП, УТ -> ERP).18- Результат работы в КД - XML с правилами, который грузится в19 "Универсальный обмен данными в формате XML" в конфигурации-источнике.20- Все правила хранятся в справочниках самой КД: `Конвертации`,21 `ПравилаКонвертацииОбъектов`, `ПравилаКонвертацииСвойств`,22 `ПравилаКонвертацииЗначений`, `ПравилаВыгрузкиДанных`,23 `ПравилаОчисткиДанных`, `ПравилаРегистрацииОбъектов`, плюс24 `Конфигурации`/`Объекты`/`Свойства`/`Значения` (теневая модель метаданных25 источника и приемника).2627## Архитектура работы2829```30Claude (агент)31 ↕ MCP-протокол / прямые tool-вызовы32Скилл kd2-rules33 ↕ HTTP POST :6003/api/* (или :7003 если переопределен порт)34MCP-toolkit (обработка MCP_Toolkit.epf в живой ИБ)35 ↕ внутрипроцессно36ИБ КД 2.037 ↕ через ВыгрузкаКонвертации.ВыполнитьВыгрузкуПравил()38Файл XML с правилами обмена39```4041Низкоуровневый транспорт - `MCP-toolkit` (скилл `1c-mcp-toolkit`). Главные42эндпоинты, которые используются здесь:4344- `POST /api/execute_query` - читать справочники КД и их связи.45- `POST /api/execute_code` - создавать/изменять элементы справочников,46 запускать экспортные методы обработок.47- `GET /api/health` - проверка живости.4849## Предварительные требования50511. Запущенная ИБ КД 2.0 в тонком/толстом клиенте с открытой обработкой52 `MCP_Toolkit.epf` (см. скилл `1c-mcp-toolkit`). HTTP-сервер слушает53 `localhost:6003` (или `:7003` по настройке).542. В форме toolkit-а проверить и при необходимости снять защиту от записи:55 снять флажки на ключевые слова `Записать`, `Удалить`,56 `УстановитьПривилегированныйРежим`. Без этого работают только57 `execute_query` и read-only вызовы.583. Желательно тестовая копия ИБ КД, а не production - правила пишутся59 напрямую в справочники.6061## Быстрая проверка готовности6263```sh64curl http://localhost:7003/health65# Ожидание: {"status":"healthy", ...}6667curl -sS -X POST "http://localhost:7003/api/execute_query" \68 -H "Content-Type: application/json" \69 -d '{"query":"ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Кол ИЗ Справочник.Конвертации"}'70```7172## Карта references7374| Документ | Что внутри | Когда читать |75|---|---|---|76| `references/helpers.md` | библиотека готовых BSL-заготовок для `execute_code`: списки ПКО/ПКС/ПКЗ, дамп обработчиков, флаги ПКО, ПКС по ссылке на Свойство, выгрузка комплекта XML, поиск объектов с учетом префикса типа, идиомы передачи значений | нужен запрос или правка объектов КД - СНАЧАЛА сюда, не сочинять скрипт с нуля |77| `references/architecture.md` | объектная модель КД, иерархия Владелец, полные списки реквизитов всех ключевых справочников | проектирование новой операции, нужны типы и связи |78| `references/methods.md` | экспортные методы обработок выгрузки/загрузки + file:line + параметры (реквизиты обработки) | вызов конкретного метода через `execute_code` |79| `references/workflows.md` | end-to-end сценарии: подготовка ИБ, загрузка метаданных, создание правил, выгрузка XML, импорт XML, автонастройка | впервые делаешь полный цикл или сложный сценарий |80| `references/xml-schema.md` | схема итогового XML правил обмена + маппинг полей справочника на XML | надо понять, что КД ожидает увидеть в XML, или сверить результат с эталоном |81| `references/troubleshooting.md` | типичные ошибки и ограничения toolkit-а, особенности КД 2.0 | при ошибке `execute_code`/`execute_query` |8283## 5 базовых операций (краткий справочник)8485### 1. Найти конвертацию по имени8687```bsl88Конв = Справочники.Конвертации.НайтиПоНаименованию("Имя_Конвертации");89Если Конв.Пустая() Тогда90 ВызватьИсключение "Конвертация не найдена";91КонецЕсли;92Результат = XMLСтрока(Конв);93```9495### 2. Список ПКО в конвертации9697```sh98curl -sS -X POST "http://localhost:7003/api/execute_query" \99 -H "Content-Type: application/json" \100 -d '{101 "query": "ВЫБРАТЬ ПКО.Наименование, ПКО.ТипИсточника, ПКО.ТипПриемника, ПКО.Порядок ИЗ Справочник.ПравилаКонвертацииОбъектов КАК ПКО ГДЕ ПКО.Владелец.Наименование = &Конв И НЕ ПКО.ЭтоГруппа УПОРЯДОЧИТЬ ПО ПКО.Порядок",102 "params": {"Конв": "Имя_Конвертации"}103 }'104```105106### 3. Создать ПКО107108```bsl109Конв = Справочники.Конвертации.НайтиПоНаименованию("МояКонвертация");110ОбъИст = Справочники.Объекты.НайтиПоНаименованию("Контрагенты", Истина, Конв.Источник);111ОбъПр = Справочники.Объекты.НайтиПоНаименованию("Контрагенты", Истина, Конв.Приемник);112113ПКО = Справочники.ПравилаКонвертацииОбъектов.СоздатьЭлемент();114ПКО.Владелец = Конв;115ПКО.Наименование = "Контрагенты";116ПКО.Источник = ОбъИст;117ПКО.Приемник = ОбъПр;118ПКО.ТипИсточника = "СправочникСсылка.Контрагенты";119ПКО.ТипПриемника = "СправочникСсылка.Контрагенты";120ПКО.Порядок = 100;121ПКО.Записать();122123Результат = Новый Структура("ссылка", XMLСтрока(ПКО.Ссылка));124```125126### 4. Создать ПКС внутри ПКО127128```bsl129ПКО = Справочники.ПравилаКонвертацииОбъектов.НайтиПоНаименованию("Контрагенты", Истина, Конв);130СвИст = Справочники.Свойства.НайтиПоНаименованию("Наименование", Истина, ПКО.Источник);131СвПр = Справочники.Свойства.НайтиПоНаименованию("Наименование", Истина, ПКО.Приемник);132133ПКС = Справочники.ПравилаКонвертацииСвойств.СоздатьЭлемент();134ПКС.Владелец = ПКО;135ПКС.Источник = СвИст;136ПКС.Приемник = СвПр;137ПКС.ИмяИсточника = "Наименование";138ПКС.ИмяПриемника = "Наименование";139ПКС.ТипИсточника = "Строка";140ПКС.ТипПриемника = "Строка";141ПКС.ВидИсточника = "Свойство";142ПКС.ВидПриемника = "Свойство";143ПКС.Наименование = "Наименование --> Наименование";144ПКС.Порядок = 100;145ПКС.Записать();146```147148### 5. Выгрузить конвертацию в XML149150```bsl151Конв = Справочники.Конвертации.НайтиПоНаименованию("МояКонвертация");152Обр = Обработки.ВыгрузкаКонвертации.Создать();153Обр.КонвертацияДляВыгрузки = Конв;154Обр.ИмяФайлаПравил = "C:\Output\rules.xml";155Обр.СжиматьФайлПравил = Ложь;156Обр.ВыгружатьПравилаКорреспондента = Ложь;157Обр.ВыгружатьПравилаРегистрации = Ложь;158Обр.ВыполнитьВыгрузкуПравил();159160Файл = Новый Файл(Обр.ИмяФайлаПравил);161Результат = Новый Структура("ok,path,size", Истина, Обр.ИмяФайлаПравил, Файл.Размер());162```163164## Принципы работы1651661. **Все справочники иерархические** "Папки и элементы". ПКО-группы (`ЭтоГруппа=true`)167 используются для логической группировки правил внутри конвертации.1681692. **Владелец = главная связь.** ПКО подчинен Конвертации, ПКС/ПКЗ подчинены ПКО,170 Объекты подчинены Конфигурации, Свойства подчинены Объектам, Значения171 подчинены Свойствам.1721733. **Денормализованные дубликаты.** Поля типа `ИмяИсточника`/`ТипИсточника` в ПКО и174 ПКС - строковые копии данных из связанной ссылки (для быстрого поиска без175 join-ов). Заполняй их явно при создании.1761774. **Поле `Код`** в Конвертациях и ПКО - это "внутренний идентификатор" (UUID-подобная178 строка фиксированной длины 40 символов с trailing-пробелами). Используется в179 итоговом XML как `<Ид>` и `<КодПравилаКонвертации>`.1801815. **Имя файла в `ИмяФайлаПравил`** должно быть путем к существующему каталогу.182 `КаталогВременныхФайлов()` - надежный способ получить временную папку клиента.1831846. **Гигиена скриптов.** Одноразовые/отладочные BSL-скрипты класть только в185 `tools/_tmp/` рабочего каталога КД и чистить после задачи. Устойчивые186 операции не копить в одноразовых файлах - брать из `references/helpers.md`187 и добавлять новые заготовки туда же.188189## Ограничения190191- Все ключевые методы КД работают через `execute_code` без явного192 `execution_context` (toolkit живет в клиентском контексте 1С,193 директива `#Если Клиент Тогда` не блокирует).194- В стандартной конфигурации toolkit-а заблокированы ключевые слова195 `Записать`, `Удалить`, `УстановитьПривилегированныйРежим`. Для создания196 правил - отключить защиту в форме toolkit-а.197- Возможны trailing-пробелы в строковых ссылочных полях (`Код` 40 символов198 с пробелами). При сравнениях использовать `СокрЛП(...)`.199- Обработка `ВыгрузкаКонвертации` использует переменную модуля200 `мФормаПрогрессора.Значение` - при программном запуске она остается201 не инициализированной, но падения не происходит.202203## Связанные скиллы204205- `1c-mcp-toolkit` - HTTP API к живой ИБ 1С (этот скилл - надстройка206 поверх него).207- `composing-1c-queries` - синтаксис языка запросов 1С для `execute_query`.