# Примеры агентских сценариев Реальные диалоги AI-ассистента с базой 1С через INFATON MCP Server. --- ## Сценарий 1: Найти задвоенных контрагентов по ИНН **Задача:** в базе 1С:ERP накопились дубли контрагентов с одинаковым ИНН. ``` Пользователь: Найди задвоенных контрагентов по ИНН в базе AI → find_duplicates({ "full_name": "Справочник.Контрагенты", "attributes": "ИНН", "threshold": 100, "max_results": 200 }) Результат: найдено 14 пар дублей AI: «Обнаружено 14 пар контрагентов с совпадающим ИНН. Например: "ООО Ромашка" (GUID: abc...) и "Ромашка ООО" (GUID: def...) — ИНН 7701234567. Показать полный список или сразу отметить на удаление дубли?» ``` --- ## Сценарий 2: Провести цепочку документов **Задача:** создать реализацию и счёт-фактуру на основании заказа клиента. ``` Пользователь: Создай реализацию и счёт-фактуру на основании заказа №ЗК-00001234 AI → find_by_code({ "full_name": "Документ.ЗаказКлиента", "code": "ЗК-00001234" }) → guid: "11111111-2222-3333-4444-555555555555" AI → fill_on_basis({ "target_type": "Документ.РеализацияТоваровУслуг", "base_type": "Документ.ЗаказКлиента", "base_guid": "11111111-2222-3333-4444-555555555555" }) → новый GUID реализации: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" AI → post_document({ "full_name": "Документ.РеализацияТоваровУслуг", "guid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }) AI → fill_on_basis({ "target_type": "Документ.СчетФактураВыданный", "base_type": "Документ.РеализацияТоваровУслуг", "base_guid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }) AI: «Цепочка создана: ЗаказКлиента №ЗК-00001234 → РеализацияТоваровУслуг №РТУ-00005678 (проведена) → СчётФактура №СФ-00009012 Провести счёт-фактуру?» ``` --- ## Сценарий 3: Остатки товаров на складах **Задача:** получить текущие остатки по складам для группы номенклатуры. ``` Пользователь: Какие остатки по складам для номенклатуры "Ноутбук Lenovo"? AI → find_by_name({ "full_name": "Справочник.Номенклатура", "name": "Ноутбук Lenovo" }) → guid: "cccccccc-dddd-eeee-ffff-000000000001" AI → get_register_totals({ "full_name": "РегистрНакопления.ТоварыНаСкладах", "dimensions": { "Номенклатура": "cccccccc-dddd-eeee-ffff-000000000001" }, "balance_type": "balance" }) Результат: AI: «Остатки "Ноутбук Lenovo" на 17.06.2026: • Склад Основной — 12 шт. • Склад Розничный — 3 шт. • Склад Брак — 1 шт. Итого: 16 шт.» ``` --- ## Сценарий 4: Проверить остатки по счёту бухучёта **Задача:** получить дебетовые остатки по счёту 41.01 за I квартал 2026. ``` Пользователь: Покажи остатки по счёту 41.01 за Q1 2026 AI → get_balance({ "account_code": "41.01", "period_from": "2026-01-01T00:00:00", "period_to": "2026-03-31T23:59:59", "balance_type": "balance_and_turnovers" }) AI: «Счёт 41.01 — Товары на складах: • Остаток на начало: 4 820 500 ₽ • Оборот Дт: 12 340 000 ₽ (поступление) • Оборот Кт: 9 150 000 ₽ (реализация) • Остаток на конец: 8 010 500 ₽» ``` --- ## Сценарий 5: Диагностика — кто и что изменял сегодня **Задача:** расследовать, кто изменял документы реализации сегодня. ``` Пользователь: Кто сегодня изменял документы реализации? AI → get_event_log({ "period_from": "20260617", "period_to": "20260617", "event_filter": "Данные.Изменение" }) AI: «За 17.06.2026 зафиксировано 23 изменения документов: • Иванова А.А. — 14 изменений (РеализацияТоваровУслуг) • Петров С.В. — 7 изменений (ЗаказКлиента) • Администратор — 2 изменения Показать детали по конкретному пользователю?» ``` --- ## Сценарий 6: Пакетное создание номенклатуры **Задача:** создать несколько позиций номенклатуры за один вызов. ``` Пользователь: Создай три новых позиции номенклатуры: Ноутбук A, Ноутбук B, Ноутбук C AI → execute_batch({ "operations": [ { "tool": "create_object", "arguments": { "full_name": "Справочник.Номенклатура", "attributes": { "Наименование": "Ноутбук A", "ВидНоменклатуры_guid": "..." } } }, { "tool": "create_object", "arguments": { "full_name": "Справочник.Номенклатура", "attributes": { "Наименование": "Ноутбук B", "ВидНоменклатуры_guid": "..." } } }, { "tool": "create_object", "arguments": { "full_name": "Справочник.Номенклатура", "attributes": { "Наименование": "Ноутбук C", "ВидНоменклатуры_guid": "..." } } } ], "transactional": true }) AI: «Создано 3 позиции номенклатуры в одной транзакции: • Ноутбук A — GUID: aaa... • Ноутбук B — GUID: bbb... • Ноутбук C — GUID: ccc...» ``` --- ## Сценарий 7: Синхронизация цифрового двойника (CDC) **Задача:** получить все изменения заказов клиентов за последние 5 минут для обновления двойника. ``` AI (автоматически каждые 5 минут) → get_changes_since({ "full_name": "Документ.ЗаказКлиента", "since": "2026-06-17T18:55:00", "include_data": false, "max_results": 500 }) → Результат: 3 изменения { guid: "111...", change_type: "update", timestamp: "18:57:23" } { guid: "222...", change_type: "create", timestamp: "18:58:44" } { guid: "333...", change_type: "delete", timestamp: "18:59:01" } AI → execute_batch: get_object_by_ref для каждого изменённого объекта → Двойник обновлён, watermark: "2026-06-17T19:00:00" ``` --- ## Конфигурация только для чтения (безопасная) Если AI-ассистент используется только для аналитики, ограничьте инструменты: ```json { "mcpServers": { "1c-readonly": { "command": "npx", "args": ["infaton-mcp"], "env": { "ONEC_URL": "https://your-server/base/hs/mcp/", "ONEC_USER": "mcp_readonly", "ONEC_PASSWORD": "...", "ONEC_ALLOWED_TOOLS": "get_metadata_tree,get_object_metadata,get_object_attributes,get_object_tabular_sections,get_enum_values,get_register_dimensions,get_document_movements,search_metadata,execute_query,get_object_by_ref,get_list,find_by_code,find_by_name,get_register_records,get_document_list,get_server_info,get_event_log,get_balance,get_register_totals,get_accounting_entries,get_related_documents,get_form_structure,get_rights,find_duplicates" } } } } ```