Бесплатный MCP-сервер для 1С: ИИ читает данные базы и структуру метаданных (MCP:RSV Data)

22.06.26

Интеграция - Нейросети

Бесплатный MCP-сервер, который даёт ИИ-ассистенту (Claude, Cursor и др.) читать данные рабочей базы 1С простыми словами — остатки, документы, справочники, регистры. Агенту не нужно знать язык запросов 1С: он описывает, что хочет, а сервер строит запрос сам. Работает на любой конфигурации (УТ, ERP, БП, самописная), только чтение, отдаёт лишь то, что доступно текущему пользователю. Вторая функция — отдаёт актуальную структуру метаданных любой конфигурации (таблицы, поля, типы), что полезно и при разработке как контекст для ИИ-агента. Реализован как расширение конфигурации.

MCP:RSV Data — пользовательское описание

Что это. Бесплатный MCP-сервер, который даёт ИИ-агенту (Claude, Cursor и др.) читать данные рабочей базы 1С простыми словами: остатки, документы, справочники, регистры. Агенту не нужно знать язык запросов 1С — он описывает, что хочет, а сервер сам строит запрос. Работает на любой конфигурации и отдаёт только то, что доступно текущему пользователю на чтение.

Это руководство объясняет, как всё устроено и как агент получает данные, на простом языке и с примерами. Оно описывает то, что есть в продукте сейчас.


1. Что это и зачем

MCP:RSV Data — это «мост» между ИИ-агентом и данными вашей рабочей базы 1С. Программист 1С (или аналитик) пишет своему агенту простыми словами: «покажи остатки по складам», «найди контрагента», «сколько продали такого-то товара» — а агент через MCP:RSV Data получает реальные данные из базы.

Ключевые идеи:

  • Простота. Агенту не нужно знать внутреннее устройство конкретной конфигурации или язык запросов 1С. Он спрашивает структуру и описывает, что хочет.
  • Универсальность. Работает на любой конфигурации (УТ, ERP, БП, самописная) — потому что опирается на метаданные самой базы, а не на жёстко прописанные имена.
  • Только чтение. Инструменты читают данные и не меняют базу. Видно только то, что доступно текущему пользователю на чтение.
  • Полезно и при разработке (вторая функция). Кроме чтения данных, инструменты осмотра (describe, get_structure) отдают актуальную структуру метаданных любой конфигурации — точные имена таблиц и полей, типы, значения перечислений, табличные части. Это удобный контекст для ИИ-агента и в задачах разработки: агент видит реальную структуру базы и не выдумывает имена.
  • Это про ДАННЫЕ, не про разработку. Сам код, метаданные и формы MCP:RSV Data не меняет — только читает данные и структуру. Если нужно их создавать и редактировать (BSL, объекты, формы, СКД, отладка) — это другой, платный продукт для разработки в 1С:EDT: MCP:RSV Server.

2. Скачать, установить и подключить

Где скачать

Последняя версия — всегда по одной постоянной ссылке (не меняется от релиза к релизу):

В архиве MCP-RSV-Data.zip: расширение RSVData.cfe, программа-мост rsvdata-bridge.exe (Windows) и это руководство.

Из чего состоит продукт

  • Расширение MCP:RSV Data (файл RSVData.cfe) — устанавливается в базу 1С. В нём вся логика: инструменты и чтение данных.
  • К расширению подключается ИИ-клиент (Claude, Cursor и др.) по протоколу MCP. Клиент видит набор инструментов (tools); когда агент вызывает инструмент, расширение читает данные и возвращает результат.
  • Программа rsvdata-bridge.exe (Windows) — у неё две роли, они зависят от способа подключения:
    • для HTTP-сервиса она необязательна — это просто помощник, который формирует готовый блок настроек; тот же блок можно написать вручную (см. ниже), и на Linux/macOS так и делают;
    • для локального моста она обязательна — именно она и есть мост между клиентом и базой.

Подключить ИИ-клиент к данным можно двумя способами: через HTTP-сервис 1С или через локальный мост. Расширение в базу ставится в любом случае.

Шаг 1. Установить расширение в базу (нужно для обоих способов)

Подключите RSVData.cfe к базе — стандартная одноразовая операция:

  • Из 1С:Предприятия: функции технического специалиста -> «Управление расширениями конфигурации» -> «Добавить» -> выберите файл RSVData.cfe -> перезапустите программу.
  • Или из Конфигуратора: Конфигурация -> Расширения -> добавить расширение и загрузить из файла RSVData.cfe -> обновить конфигурацию базы данных (F7).

Способ 1. Через HTTP-сервис 1С

Подходит, если база опубликована на веб-сервере (IIS/Apache) с включёнными HTTP-сервисами расширения и включённой аутентификацией 1С. Адрес сервиса после публикации имеет вид http://<сервер>/<имя_публикации>/hs/rsvdata/mcp.

Конфиг клиента для этого способа (пример для Claude Code):

{
  "mcpServers": {
    "rsv-data": {
      "type": "http",
      "url": "http://localhost/UT_Demo/hs/rsvdata/mcp",
      "headers": {
        "Authorization": "Basic <строка_Base64>"
      }
    }
  }
}

Важно: значение type у разных клиентов разное — если поставить не то, клиент выдаёт ошибку схемы и не подключается:

Клиент значение type
Claude Code, VS Code http
Cursor streamable-http
Cline streamableHttp

Здесь <строка_Base64> — это логин:пароль пользователя 1С (через двоеточие), закодированные в Base64 (UTF-8). Для этого способа программа rsvdata-bridge.exe необязательна — блок можно получить двумя путями:

  • Путь А — с помощником (Windows). Дважды щёлкните по rsvdata-bridge.exe, выберите «[1] HTTP», укажите ваш клиент (Claude Code / Cursor / Cline), введите адрес, логин и пароль. Программа сама посчитает Base64, поставит правильный type для вашего клиента, проверит связь и выдаст готовый блок (сохранит в файл и в буфер обмена), а может сразу дописать его в конфиг клиента.
  • Путь Б — вручную, без программы (любая ОС, в т. ч. Linux/macOS). Возьмите блок выше и подставьте свою строку Base64. По HTTP клиент обращается к 1С напрямую, поэтому rsvdata-bridge.exe тут не нужен (а на Linux/macOS он и не работает). Строку Base64 из логин:пароль можно получить так:

Windows (PowerShell):

[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("Администратор:пароль"))

Linux/macOS (терминал):

printf '%s' 'Администратор:пароль' | base64

Полученную строку подставьте после слова Basic (через пробел) в заголовок Authorization.


Способ 2. Через локальный мост

Подходит, если база не опубликована на веб-сервере. Подключение идёт напрямую к базе через COM. Для этого способа rsvdata-bridge.exe обязателен — он и есть мост (именно через него идёт связь с базой). Работает на Windows (нужна установленная платформа 1С).

Дважды щёлкните по rsvdata-bridge.exe, выберите «[2] локальный мост», задайте имя подключения (по умолчанию rsv-data), укажите тип базы (файловая/серверная), путь или сервер+имя, логин и пароль. Программа проверит связь и выдаст готовый блок (сохранит в файл и в буфер обмена):

{
  "mcpServers": {
    "rsv-data": {
      "type": "stdio",
      "command": "C:\\MCP-RSV-Data\\rsvdata-bridge.exe",
      "args": [
        "serve",
        "--config",
        "C:\\Users\\<вы>\\AppData\\Roaming\\MCP-RSV-Data\\rsv-data.json"
      ]
    }
  }
}

Где хранятся параметры подключения. В отличие от HTTP-способа, здесь логин/пароль и адрес базы НЕ попадают в конфиг клиента — мастер сохраняет их в отдельный файл настроек: %APPDATA%\MCP-RSV-Data\<имя подключения>.json (например …\rsv-data.json). Файл хранится в вашем профиле Windows и доступен только вам; параметры в нём лежат в открытом виде (как и логин/пароль в любом локальном конфиге). При работе мост (serve --config <этот файл>) читает оттуда параметры и подключается к базе. Поэтому в блоке клиента указан именно путь к этому файлу, а не сами логин/пароль.

Несколько баз через мост. Каждой базе — своё имя подключения: просто запустите мастер ещё раз и задайте другое имя (например rsv-data-erp). Мастер создаст отдельный файл настроек (…\rsv-data-erp.json) и выдаст отдельный блок с этим именем и своим --config. Добавьте оба блока в .mcp.json — получится несколько серверов под разными именами, и каждый работает со своей базой:

{
  "mcpServers": {
    "rsv-data": {
      "type": "stdio",
      "command": "C:\\MCP-RSV-Data\\rsvdata-bridge.exe",
      "args": ["serve", "--config", "C:\\Users\\<вы>\\AppData\\Roaming\\MCP-RSV-Data\\rsv-data.json"]
    },
    "rsv-data-erp": {
      "type": "stdio",
      "command": "C:\\MCP-RSV-Data\\rsvdata-bridge.exe",
      "args": ["serve", "--config", "C:\\Users\\<вы>\\AppData\\Roaming\\MCP-RSV-Data\\rsv-data-erp.json"]
    }
  }
}

(Один и тот же rsvdata-bridge.exe обслуживает все базы — он определяет нужную по файлу из --config.)

Вставить блок в конфиг клиента

Проще всего — дать мастеру вписать сервер самому: в конце он спросит «Дописать сервер в конфиг клиента автоматически?» — ответьте «да» и укажите путь к файлу конфигурации клиента (.mcp.json, cline_mcp_settings.json и т. п.). Мастер аккуратно добавит запись в раздел mcpServers, сохранив все прочие серверы и не сломав JSON (запятые/скобки расставит сам; если файла нет — создаст). Так не нужно вручную копировать кусок JSON — это и есть самый частый источник ошибок (забытая запятая).

Если ответить «нет» — действуйте как обычно: готовый блок уже в буфере обмена и сохранён в файл, вставьте его в .mcp.json вашего клиента (раздел mcpServers) сами.

После добавления перезапустите клиент.

Подсказка для ручной вставки: запись нового сервера отделяется от соседних запятой, а сам блок должен лежать внутри "mcpServers": { … }. Пропущенная после } запятая — типичная причина ошибки подключения. Авто-запись избавляет от этого.

Проверка

После подключения (любым способом) в клиенте появится сервер rsv-data с инструментами. Попросите агента простыми словами, например: «покажи, что есть в этой базе 1С» — он вызовет describe и покажет состав.

Если что-то не так

  • HTTP, ответ 401 / отказ в доступе — неверный логин или пароль; если строку Base64 делали вручную, проверьте, что закодировали именно логин:пароль в UTF-8 и подставили её после слова Basic.
  • Мост, «нет общего модуля RSVData_Сервер … Неизвестное имя» — расширение MCP:RSV Data не установлено или не активно в этой базе (это разные базы — расширение нужно установить в каждую, где будете работать). Вернитесь к Шагу 1 и установите RSVData.cfe в нужную базу. Чтобы увидеть, какие расширения есть в базе, запустите rsvdata-bridge.exe diag — он покажет список расширений и доступность модулей RSVData.
  • Повтор без повторного ввода. Если мост не подключился, он не закрывается, а спрашивает, что делать: [1] повторить с теми же данными, [2] ввести заново, [3] выход. Установили расширение в базу — нажмите 1, и мост повторит попытку с уже введёнными путём/логином/паролем.
  • Мост, «не удалось создать V83.COMConnector» — на компьютере не зарегистрирован COM-компонент платформы. Выполните один раз от имени администратора (путь и версия — ваши): regsvr32 "C:\Program Files\1cv8\<версия>\bin\comcntr.dll"
  • Мост, проверить связь отдельно: rsvdata-bridge.exe ping — должен вернуть ответ с result.

3. Как агент понимает, что доступно (три уровня подсказок)

Агент не обязан ничего знать заранее — продукт сам ведёт его за руку. Подсказки идут тремя уровнями, каждый ведёт к следующему:

  • 1.Список инструментов (tools/list). У каждого инструмента — короткое описание: что он делает и подсказка «подробности: help topic=<имя>».
  • 2.Схема параметров (inputSchema). У каждого параметра — пояснение: что в нём передавать, какие значения допустимы, формат.
  • 3.Инструмент help — подробные руководства с готовыми примерами. help без параметра даёт обзор и список инструментов; help topic=query (или другого инструмента) — развёрнутую справку с примерами; help topic=workflow — типовые сценарии «хочу X — делай так».

Поэтому правильный первый шаг агента — заглянуть в help (обзор) и при необходимости в help topic=<инструмент>. Дальше — узнать структуру объекта (describe/get_structure) и только потом запрашивать данные.


4. Инструменты — простым языком

Инструментов немного, у каждого одна понятная задача.

help — справка

Зачем: разобраться, что умеет сервер и как пользоваться инструментами.

  • без параметров -> обзор продукта + список инструментов;
  • topic=<имя инструмента> (config, describe, get_structure, query, execute_query, reveal) -> подробное руководство с примерами;
  • topic=anonymization -> как устроена анонимизация ПДн и как с ней работать;
  • topic=workflow -> типовые сценарии;
  • topic=about -> что это за продукт.

config — паспорт базы

Зачем: за один вызов (без параметров) понять, с какой базой работаем. Полезно вызвать первым.

Возвращает:

  • Конфигурация — имя, синоним, версия, поставщик, режим совместимости (видно сразу: ERP, УТ или самописная);
  • Расширения — какие подключены и активны (имя, версия, назначение);
  • Подсистемы — бизнес-разделы верхнего уровня (Продажи, Закупки, Склад…) с количеством объектов.

describe — что есть в базе

Зачем: найти нужный объект и осмотреться, когда точные имена ещё не известны. Режимы зависят от переданных параметров:

Параметры Что вернёт
(без параметров) категории объектов с количеством (Справочники, Документы, Регистры, …)
find=контрагент глобальный поиск по подстроке сразу по ВСЕМ категориям (объекты с их типами)
subsystem=Продажи объекты бизнес-раздела и вложенные подсистемы (разделы смотрите в config)
type=Справочник объекты этой категории (имя, полное имя, синоним)
type=Документ, filter=реализ то же, но сужено по подстроке в одной категории
object=Справочник.Номенклатура таблицы объекта (основная, табличные части, виртуальные таблицы регистров)
table=Справочник.Номенклатура поля таблицы с типами и видами

Пример: {"find":"контрагент"} -> найдёт все объекты, в имени/синониме которых есть «контрагент», по всем категориям сразу.

get_structure — полная структура объекта

Зачем: за один вызов получить всё, что нужно для построения запроса к незнакомому объекту: точные имена таблиц и полей, типы, значения перечислений, табличные части, владельцев. Это главный инструмент «разведки» перед запросом.

  • Параметр object (обязательный) — полное имя объекта: Справочник.Контрагенты, Документ.РеализацияТоваровУслуг, РегистрНакопления.ТоварыНаСкладах.

Что в ответе: имя и синоним объекта, его категория, список таблиц (у каждой — готовое имя для запроса и список полей), а для подчинённых справочников — владельцы. У каждого поля: имя, тип, вид (Реквизит / Измерение / Ресурс / Стандартный реквизит), синоним, а для перечислений — список значений (имя + понятный синоним).

Важно: для виртуальных таблиц регистров имена полей тоже раскрыты. Например, у таблицы остатков ресурс называется <Ресурс>Остаток (скажем, ВНаличииОстаток), у оборотов — <Ресурс>Оборот. Агенту не нужно это угадывать.

Пример: {"object":"Документ.РеализацияТоваровУслуг"}.

query — чтение данных без языка запросов

Зачем: прочитать данные одной таблицы по простому описанию. Язык запросов знать не нужно — запрос строит сервер.

Параметры:

  • table (обязательный) — что читаем. Это может быть:
    • справочник: Справочник.Номенклатура
    • документ: Документ.РеализацияТоваровУслуг
    • табличная часть: Документ.РеализацияТоваровУслуг.Товары
    • виртуальная таблица регистра: РегистрНакопления.ТоварыНаСкладах.Остатки
  • fields — какие поля вернуть (массив имён). Пусто = все поля. Точные имена даёт get_structure.
  • filters — отборы: массив {field, comparison, value} (соединяются по «И»). Виды сравнения (comparison): equal, notEqual, greater, greaterOrEqual, less, lessOrEqual, contains, notContains, inList, notInList, filled, notFilled. По умолчанию equal. contains/ notContains ищут подстроку без учёта регистра; для inList/notInList в value — массив.
  • order — сортировка: "Поле" по возрастанию, "-Поле" по убыванию.
  • period — дата для виртуальных таблиц (Остатки/СрезПоследних/СрезПервых), формат ГГГГ-ММ-ДД.
  • limit — максимум строк (по умолчанию 100, максимум 1000); offset — пропустить строк (постранично).

Чего query не делает: группировок, итогов и соединений таблиц — для этого есть execute_query.

Пример (10 номенклатур со словом «молоко», только наименование и артикул):

{"table":"Справочник.Номенклатура",
 "fields":["Наименование","Артикул"],
 "filters":[{"field":"Наименование","comparison":"contains","value":"молоко"}],
 "limit":10}

Пример (остатки на складах на дату):

{"table":"РегистрНакопления.ТоварыНаСкладах.Остатки","period":"2026-01-01"}
Подсказка: у иерархических справочников добавьте отбор {"field":"ЭтоГруппа","comparison":"equal","value":false}, чтобы в выдачу не попадали папки-группы.

execute_query — готовый запрос на языке запросов 1С

Зачем: мощный путь, когда query мало. Принимает готовый текст запроса на языке запросов 1С и поддерживает соединения, группировки (СГРУППИРОВАТЬ ПО), агрегаты (СУММА, КОЛИЧЕСТВО, …), сортировку (УПОРЯДОЧИТЬ ПО … УБЫВ), вложенные запросы, разыменование через точку (Товары.Номенклатура.Наименование).

Параметры:

  • query (обязательный) — текст запроса (только чтение — язык запросов 1С не меняет данные).
  • parameters — значения параметров запроса (имя -> значение для &Имя в тексте). Даты передавайте строкой ГГГГ-ММ-ДД; для списков (В (&П)) — массив.
  • limit — максимум строк (по умолчанию 100, максимум 1000).

Пример (топ-5 товаров по сумме продаж — группировка + агрегат + сортировка):

{"query":"ВЫБРАТЬ ПЕРВЫЕ 5 Товары.Номенклатура.Наименование КАК Товар, СУММА(Товары.Сумма) КАК Сумма ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Товары СГРУППИРОВАТЬ ПО Товары.Номенклатура.Наименование УПОРЯДОЧИТЬ ПО Сумма УБЫВ"}

Пример (с параметром-датой):

{"query":"ВЫБРАТЬ ПЕРВЫЕ 20 Ссылка, Дата ИЗ Документ.РеализацияТоваровУслуг ГДЕ Дата >= &Начало",
 "parameters":{"Начало":"2026-01-01"}}

reveal — расшифровка обезличенных данных

Зачем: показать пользователю реальные значения вместо токенов анонимизации. Персональные данные в ответах query/execute_query по умолчанию обезличены токенами вида [ОРГ-00001] (см. раздел Анонимизация персональных данных). Когда агент готов отдать итоговый ответ человеку, он прогоняет текст через reveal — и токены меняются на реальные имена/реквизиты.

  • Параметр text (обязательный) — текст с токенами (обычно это финальный ответ для пользователя).
  • В ответе — тот же текст, где известные токены заменены реальными значениями (неизвестные остаются как есть).

Пример: {"text":"Больше всего продаж у [ОРГ-00007] — 1 200 000 руб."} -> "Больше всего продаж у ООО \"Ромашка\" — 1 200 000 руб.".

ping — проверка связи

Зачем: убедиться, что сервер на связи. Без параметров, возвращает «pong».


5. Типовой порядок работы

Самый надёжный маршрут для агента (особенно если конфигурация незнакома):

config (что за база: конфигурация, версия, расширения, бизнес-разделы)
  -> describe (найти объект: find по всей базе / subsystem по разделу / type+filter)
    -> get_structure (получить точные имена таблиц/полей и значения перечислений)
      -> query (простое чтение) ИЛИ execute_query (сложная выборка)
        -> reveal (по итогу — показать пользователю реальные значения вместо токенов)

Принцип: сначала узнать структуру, потом запрашивать — не выдумывать имена полей, а брать их из get_structure. Последний шаг reveal нужен, только если в данных были персональные значения (токены) и их надо показать человеку в открытом виде.


6. Примеры «запрос пользователя -> как решает агент»

Ниже — реальные простые формулировки и как их закрывает агент.

«Покажи 10 товаров, у которых в названии есть “масло”. Наименование и артикул.» -> get_structure object=Справочник.Номенклатура (узнать имена полей) -> query со filters: contains по «Наименование». Результат — список товаров.

«Сколько у нас товаров на складах сейчас? Товар, склад, количество — 15 строк.» -> get_structure object=РегистрНакопления.ТоварыНаСкладах (увидеть виртуальную таблицу .Остатки и поле ВНаличииОстаток) -> query table=…Остатки, поля Номенклатура/Склад/ВНаличииОстаток, limit:15.

«Какие бывают значения у поля “налогообложение НДС” в реализации, и сколько документов по каждому?» -> get_structure object=Документ.РеализацияТоваровУслуг (поле НалогообложениеНДС со списком значений и понятными синонимами) -> execute_query с СГРУППИРОВАТЬ ПО этому полю и КОЛИЧЕСТВО(*).

«Какие 5 товаров продали на самую большую сумму?» -> get_structure object=Документ.РеализацияТоваровУслуг (узнать табличную часть «Товары» и поле «Сумма») -> execute_query с СУММА(...), СГРУППИРОВАТЬ ПО, УПОРЯДОЧИТЬ ПО … УБЫВ, ВЫБРАТЬ ПЕРВЫЕ 5.

«Покажи последние 20 строк проданных товаров: товар, количество, цена, сумма.» -> query table=Документ.РеализацияТоваровУслуг.Товары (или execute_query, если нужно отобрать только проведённые и отсортировать по дате документа).


7. Что приходит в ответе

Инструменты чтения (query, execute_query) возвращают единый, удобный для агента формат:

  • Таблица — какую таблицу читали (для execute_query пусто).
  • Колонки — список колонок с типами (имя + тип, ссылки показаны полным именем типа).
  • Строки — сами данные (значение по каждому полю; ссылки на объекты показаны представлением). Персональные данные при этом обезличены токенами ([ОРГ-00001] и т. п.) — подробнее в разделе Анонимизация персональных данных.
  • КоличествоСтрок — сколько строк вернулось.
  • Лимит — действующий лимит.
  • ЕстьЕщёtrue, если в базе есть ещё строки сверх показанных (можно дочитать через offset).

Инструменты осмотра (describe, get_structure) возвращают структуру: категории/объекты/таблицы/поля с типами, видами и синонимами (а для перечислений — значения с синонимами).

Если что-то пошло не так (неверное поле, битый запрос, нет объекта) — приходит понятное сообщение об ошибке с подсказкой, а не пустой/битый результат.


8. Анонимизация персональных данных

Анонимизация включена по умолчанию — это стандарт защиты, а не опция, которую надо включать. Смысл простой: когда ИИ-агент читает данные, персональные данные не должны уходить в ИИ-модель в открытом виде. Поэтому сервер подменяет их на токены ещё до того, как ответ покинет вашу базу.

Как это выглядит

Вместо реального значения в ответе стоит токен вида [КАТЕГОРИЯ-НОМЕР]:

Категория Что обезличивает Пример токена
ФЛ физлица, сотрудники, пользователи, ФИО [ФЛ-00001]
ОРГ контрагенты, организации [ОРГ-00007]
ИНН, КПП, СНИЛС, ПАСПОРТ соответствующие реквизиты [ИНН-00003]
ТЕЛ, ПОЧТА, АДРЕС телефон, email, адрес [ТЕЛ-00002]

Принципы:

  • Стабильность. Одно и то же значение всегда получает один и тот же токен. Если контрагент «ООО Ромашка» — это [ОРГ-00007], то он будет [ОРГ-00007] и в списке продаж, и в остатках, и завтра. Агент может сравнивать, группировать, сопоставлять строки — связи между данными сохраняются.
  • Суммы и числа не трогаем. Обезличиваются только персональные данные. Деньги, количества, даты остаются как есть — иначе аналитика стала бы бесполезной.
  • Карта соответствий — внутри вашей базы. Связка «токен U96; реальное значение» хранится в самой базе 1С (там, где данные и так лежат). Наружу, в ИИ-модель, уходят только токены.
  • Карта заполняется сама. Это служебный регистр сведений «MCP:RSV Data — карта анонимизации». На чистой базе он пустой и наполняется автоматически по мере чтения данных: встретилось новое персональное значение — для него завели токен. Вручную туда ничего вносить не нужно и чистить не требуется — это внутренний кэш, поэтому в инструментах/справке агента он и не фигурирует.

Что это значит на практике: увижу ли я реальное название?

Допустим, вы просите агента: «по каким контрагентам у нас было больше всего продаж».

  • 1.Агент строит запрос (группировка по контрагенту + сумма) и получает из базы строки уже с токенами: [ОРГ-00007] — 1 200 000, [ОРГ-00012] — 950 000. Реального названия агент не видит вообще — оно не покинуло вашу базу.
  • 2.Поэтому в первый момент агент может ответить только в токенах: «больше всего у [ОРГ-00007]».
  • 3.Чтобы показать вам реальное имя, агент прогоняет свой итоговый ответ через инструмент reveal. Тот локально в базе меняет [ОРГ-00007] -> «ООО Ромашка» и возвращает уже расшифрованный текст. После этого агент пишет: «больше всего продаж у ООО Ромашка — 1 200 000 руб.».

Главная идея: весь анализ ИИ-модель делает на обезличенных данных (вся выборка — токены, в облако ИИ реальные ПДн не утекают). Реальные значения появляются только на самом последнем шаге — reveal — и только для тех значений, которые вы действительно захотели увидеть.

Честная оговорка. На шаге reveal расшифрованное имя попадает в ответ агента, то есть на этом последнем шаге модель его всё-таки видит. reveal снижает утечку до минимума (несколько имён в финале вместо всей выгрузки), но не делает её абсолютным нулём, если вы сами попросили показать имена. Нужна полная слепота модели — не используйте reveal и работайте с токенами.

Drill-down: уточнение по токену

Токен можно вернуть серверу обратно как значение отбора или параметра запроса — сервер сам подставит реальное значение. Это позволяет агенту углубляться в данные, не зная реальных имён. Например, агент увидел [ОРГ-00007] в сводке и хочет его документы:

{"table":"Документ.РеализацияТоваровУслуг",
 "filters":[{"field":"Контрагент","comparison":"equal","value":"[ОРГ-00007]"}]}

Сервер распознает токен, подставит реального контрагента и вернёт его документы (тоже обезличенные).

Как это настраивается

  • Включено по умолчанию. Делать ничего не нужно — защита работает сразу после установки расширения.
  • Глобальное выключение. Если для конкретной базы анонимизация не нужна (например, закрытый контур без передачи данных наружу), её можно отключить — установить значение «Истина» у константы «MCP:RSV Data — анонимизация отключена» (RSVData_АнонимизацияОтключена). Тогда инструменты отдают реальные значения как есть. По умолчанию константа выключена — то есть анонимизация работает.
  • Что считается персональными данными — определяется встроенным словарём (см. ниже). Он подобран под типовые конфигурации и работает «из коробки», менять ничего не требуется.

Что считается персональными данными (встроенный словарь)

Распознавание идёт по трём правилам, по порядку — от самого надёжного к запасному:

  • 1.По типу ссылки. Если значение — ссылка на объект, сервер смотрит, на какой это справочник, и сверяет со встроенным списком:
    • ФЛ (физлица): ФизическиеЛица, ФизЛица, Сотрудники, Пользователи, ВнешниеПользователи, Кандидаты, КонтактныеЛица;
    • ОРГ (организации): Контрагенты, Организации, Партнёры.

Это самый точный способ: платформа сама сообщает, на какой справочник ссылка, — угадывать не нужно.

  • 2.По имени реквизита. Для не-ссылочных полей смотрится имя колонки: ИНН, КПП, СНИЛС, паспорт, телефон/phone, email/почта, адрес/address, ФИО/фамилия/имя/отчество.
  • 3.По самому значению (запасное, только для строк). Если строка целиком похожа на email (…@…), ИНН (10/12 цифр) или телефон (с +, скобками или 11 цифр на 7/8) — она маскируется, даже если колонка названа нейтрально.

Если ни одно правило не сработало — значение отдаётся как есть (поэтому номенклатура, суммы, артикулы, коды и номера не обезличиваются).

Ограничение текущей версии. Словарь справочников (правило 1) подобран под типовые конфигурации. Если в вашей базе самописный справочник людей или контрагентов с нестандартным именем (например, СотрудникиФилиала), его ссылки правилом 1 не распознаются. Контактные данные (телефон/email/ИНН и т. п.) при этом всё равно ловятся правилами 2–3 — независимо от конфигурации. В следующем релизе появится интерактивное редактирование словаря: администратор сможет прямо в базе добавлять свои справочники и реквизиты в список персональных данных (и убирать лишние) — без правки кода. Встроенные значения останутся как разумные значения по умолчанию.

Чем это лучше других решений

Многие аналоги обезличивают данные «угадыванием по тексту» (распознавание сущностей в строках), для чего нужен внешний модуль на Python. MCP:RSV Data поступает иначе: он знает тип каждого поля (потому что читает данные через систему компоновки), и определяет персональные данные по структуре, а не по догадке. Это надёжнее, не требует ничего внешнего и одинаково работает на любой конфигурации.


9. query или execute_query — что выбрать

Хочу… Инструмент
Прочитать одну таблицу с отбором/сортировкой, без знания языка запросов query
Остатки/обороты регистра на дату query (виртуальная таблица + period)
Сгруппировать, посчитать итоги (СУММА/КОЛИЧЕСТВО), соединить таблицы, топ-N execute_query
Сложная аналитика, вложенные запросы, разыменование через точку execute_query

Простое правило: обычное чтение — query; аналитика и соединения — execute_query.


10. Безопасность и ограничения

  • Только чтение. Все инструменты читают данные и не изменяют базу.
  • Анонимизация ПДн из коробки. Персональные данные по умолчанию обезличены токенами и не уходят в ИИ-модель в открытом виде (см. раздел Анонимизация персональных данных).
  • Права пользователя. Возвращается только то, что доступно текущему пользователю на чтение — объект без права чтения не отдаётся.
  • Ограничение объёма. У выборок есть лимит строк (по умолчанию 100, максимум 1000), чтобы случайно не выгрузить всю базу. Постранично — через offset.
  • Понятные отказы. Неверное имя поля/объекта или синтаксически неверный запрос дают объяснимую ошибку, а не молчаливый сбой.

11. Частые вопросы

Агент покажет мне реальное название контрагента или только токен? По умолчанию из базы приходят токены ([ОРГ-00007]) — реальное имя в ИИ-модель не уходит. Чтобы увидеть настоящее название, агент прогоняет итоговый ответ через инструмент reveal, и токены меняются на реальные значения. То есть да, увидите — но реальные имена появляются только на финальном шаге, а не во время анализа. Подробно — в разделе Анонимизация персональных данных.

Можно ли отключить анонимизацию? Да, для конкретной базы — через константу «MCP:RSV Data — анонимизация отключена». По умолчанию она работает (это стандарт защиты).

Нужно ли агенту знать язык запросов 1С? Для query — нет, он описывает данные параметрами. Для execute_query — да, туда передаётся готовый текст запроса (это «мощный путь» для сложных выборок).

Откуда агент берёт точные имена таблиц и полей? Из get_structure (весь объект за один вызов) или из describe (по шагам). Угадывать не нужно.

Будет ли работать на моей конфигурации? Да. Сервер опирается на метаданные конкретной базы, а не на заранее прописанные имена, поэтому работает на любой конфигурации.

А поменять данные / код / форму можно? Нет — это инструмент чтения данных и структуры. Для разработки в 1С:EDT (создание и редактирование кода, метаданных, форм, отладка) есть отдельный платный продукт — MCP:RSV Server.


P.S. Это расширение целиком создано искусственным интеллектом

Небольшая ремарка по теме ИИ-разработки. Расширение MCP:RSV Data — и серверную логику, и эту поставку — от начала до конца создал ИИ-агент. Программист-человек не написал вручную ни строчки кода и не создал руками ни одного объекта метаданных. ИИ-агент сам:

  • создал само расширение конфигурации и его объекты — HTTP-сервис, общие модули, подсистему;
  • написал весь код на встроенном языке 1С;
  • проверил написанный код через инструмент код-ревью.

Для всей этой работы — от создания объектов метаданных до написания и проверки BSL-кода — использовался MCP:RSV Server — специальный MCP-сервер для разработки в 1С:EDT (отдельный платный продукт). Иными словами, сложную разработку в 1С — вплоть до создания метаданных, HTTP-сервисов, модулей и целого расширения — сегодня реально вести полностью силами ИИ-агента.

Вступайте в нашу телеграмм-группу Инфостарт

MCP сервер AI 1С искусственный интеллект 1С данные 1С чтение данных 1С Claude 1С Cursor 1С MCP протокол AI ассистент для 1С запросы к базе 1С остатки 1С отчёты 1С расширение конфигурации 1С язык запросов 1С аналитика 1С бесплатный инструмент 1С AI агент 1С интеграция 1С с AI выгрузка данных 1С чтение базы 1С

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

15250 руб.

20.12.2024    19234    98    29    

83

Нейросети Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Задавайте вопросы базе 1С обычными словами: получайте данные, находите ошибки и связанные документы, проверяйте права, работайте с вложениями и контролируемо вносите изменения. Всё это работает в самой программе, а Codex и Claude подключаются по желанию.

15989 руб.

30.07.2026    11639    25    4    

26

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    70421    140    41    

147

Нейросети Программист Руководитель проекта 1C:ERP Бесплатно (free)

Служба на Rust, через которую Claude Code, Cursor или другой MCP-клиент вызывает узких ИИ-агентов. Агент — папка с prompt.md и config.toml, модель — строка в конфиге: DeepSeek, Claude Code по подписке, Codex или локальная модель. Агент получает MCP-инструменты, работает в фоне, каждый ход записывается. Внутри — цифры за три месяца: 10 351 вызов, 78 агентов.

вчера в 09:20    845    Sorm    5    

9

Нейросети Бесплатно (free)

Отладка кода 1С традиционно выглядит примерно одинаково: поставить точку останова, запустить клиент, воспроизвести сценарий, дождаться остановки, посмотреть локальные переменные, пройти несколько строк, раскрыть очередную структуру или коллекцию, вычислить выражение — и повторить все это еще несколько раз. А что, если значительную часть этой рутины поручить AI-агенту?

15.09.2026    2485    andrew.ab    5    

13

Нейросети Программист Бизнес-аналитик Руководитель проекта Бесплатно (free)

Я принёс команде приём, с которым нейронка наконец начала понимать нашу конфигурацию: у меня он работал, у коллег — нет. Дело было не в постановке задач и не в настройках: причина в том, что на их машинах индекс конфигурации считался бы несколько дней. Замер на одном и том же своде из 26 035 записей: три часа на процессоре против трёх с половиной минут на видеокарте. Разбираю, что такое индексация конфигурации и почему она дорогая ровно один раз, почему наша основная серверная машина — 64 ядра, 768 гигабайт памяти — на этой задаче проигрывает домашнему компьютеру, и почему приём одного человека упирается в вопрос, который никто не любит задавать.

09.09.2026    4402    solbol    9    

9

Нейросети Программист Бесплатно (free)

Первая часть подборки простых приёмов для работы с ИИ-агентами. Без «секретных техник» — скорее сверим часы и посмотрим, какие подходы действительно помогают экономить время, лимиты и нервы. Разберём шесть практических приёмов: как выбирать модель под задачу и не тратить дорогую модель на мелочи; зачем сначала составлять план сложной работы; как сохранять агентские сессии на VPS с помощью tmux и Herdr; почему голосовой ввод даёт больше контекста, но требует проверки; как перепроверять решения одного агента другим; и как организовать параллельную работу через Git worktree. Большинство этих вещей опытным пользователям наверняка знакомо. Но иногда именно «очевидная» мелочь оказывается той, о которой узнаёшь слишком поздно. Возможно, из этой подборки вам пригодится хотя бы один приём.

04.09.2026    3113    Ibrogim    11    

16

Инструментарий разработчика Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

Как мы в 42Clouds научили агента открывать формы, заполнять поля, проверять списки и собирать доказательные отчёты — и чем Answer42 отличается от Vanessa Automation MCP, Тестер, CodexTestBridge UI-worker и браузерных инструментов.

04.09.2026    1893    amoarok    15    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Salimbek 13 22.06.26 12:39 Сейчас в теме
А как пройдет анонимизация для запроса вида: "Покажи Телефонные номера сотрудников, ФИО которых начинается с Иванов"? (т.е. в запросе должно превратиться в ПОДОБНО "Иванов%") "Иванов" - превратится в токен?
2. Prepod2003 365 22.06.26 13:28 Сейчас в теме
(1)
А как пройдет анонимизация для запроса вида: "Покажи Телефонные номера сотрудников, ФИО которых начинается с Иванов"? (т.е. в запросе должно превратиться в ПОДОБНО "Иванов%") "Иванов" - превратится в токен?


Нет, «Иванов» в токен не превращается — поиск работает как обычно.

На вашем примере «покажи телефоны сотрудников, чьё ФИО начинается с Иванов» происходит вот что:

1. «Иванов» — это ваше поисковое слово. Оно уходит в базу как есть и находит нужных людей (обычный отбор «начинается с Иванов»). Ничем не заменяется.

2. Обезличиваются только найденные данные. ИИ-агент получает в ответ не реальные ФИО и телефоны, а метки-заглушки, например:
[ФЛ-00020] — [ТЕЛ-00004]
[ФЛ-00021] — [ТЕЛ-00005]
То есть сама нейросеть реальных номеров и фамилий не видит.

3. Реальные значения можно подставить в самом конце — это отдельный шаг (инструмент reveal), когда ответ показывается вам:
Иванов Иван Иванович — +7 (111) 111-11-11
Иванова Мария Петровна — +7 (111) 222-33-44

При этом шаг 3 — необязательный. Если reveal не вызывать, вы просто получите данные с метками ([ФЛ-…] — [ТЕЛ-…]), и реальные ФИО с телефонами вообще нигде не всплывут. reveal нужен только тогда, когда вы сами хотите увидеть настоящие значения.

Итог: вы ищете по тому, что и так знаете (фамилия «Иванов»), а всё, что выгружается из базы (чужие ФИО, телефоны, СНИЛС и т. п.), уходит к ИИ обезличенным. Хотите — оставляете метки, хотите — одним шагом разворачиваете их в реальные данные. Решаете вы.
VladProz; ixijixi; +2 1 Ответить
15. valy_msu 07.07.26 15:34 Сейчас в теме
(2) Анонимизация ломается мгновенно, как только модель начинает использовать ПРЕДСТАВЛЕНИЕ().
Даже пользователю не надо никаких действий выполнять.
16. liubovai 07.07.26 23:37 Сейчас в теме
(15) спасибо за обратную связь, в версии 1.3.0 проблему исправили
3. gybson 13 22.06.26 21:18 Сейчас в теме
Было бы очень полезно приложить скилл для использования данного mpc.
Defender ругается на архив, не дает распаковать. Если продукт все-равно бесплатный, выложите исходники расширения в гит
7. pro100_Cooler 23.06.26 09:17 Сейчас в теме
Интересно было бы внедрить данный инструмент в локальную закрытую сеть для поиска данных в базе , второй день бьюсь и не могу заставить нормально работать LibreChat Qwen 3.32b Ollama, качество ответов в разы ниже чем у Cursor (оно и понятно и очевидно) , но вроде бы простой инструмент а LLM все равно как то некорректно работает с ним. (Не эксперт в ИИ просто учусь экспериментирую)
8. Prepod2003 365 23.06.26 09:32 Сейчас в теме
(7) Локальные модели не подходят для таких задач - слишком слабые.
11. chebakka 25.06.26 18:21 Сейчас в теме
(8) попробуйте гемма4
18. Yashazz 4932 13.07.26 16:07 Сейчас в теме
(7) Локальные вообще ничего не умеют и не могут. Пустой труд.
К сожалению, до момента, когда мы сможем использовать локальные модели для реальных задач, ещё несколько лет минимум, поэтому все нынешние подобные публикации - игрушки в песочнице и хайп, а не практическая промышленная польза.
9. German 416 24.06.26 08:11 Сейчас в теме
Один я не могу читать эти тонны искусственного текста?
Надо AdSense научить откидывать такое)))
akocur; vtretyakova; Programador1C; vampo; artbear; +5 2 Ответить
10. artbear 1589 24.06.26 10:08 Сейчас в теме
Подобных mcp-серверов уже много, есть и в виде обработки, и в виде расширения.
И фича анонимности есть у некоторых

на сайте Инфостарта прекрасно ищутся, и на гитхабе.
vtretyakova; Yashazz; +2 Ответить
12. stack 26.06.26 10:12 Сейчас в теме
При подключении к базе выдает:
Проверяю связь с базой…
✗ Подключиться не удалось: не удалось подключиться к базе 1С (проверьте путь/сервер, логин и пароль): Ошибка. (Неверные или отсутствующие параметры соединения с информационной базой)
Подсказка: для диагностики (какие расширения видны в базе) запустите
rsvdata-bridge.exe diag — он покажет, активно ли расширение RSVData
Расширение в базе установлено. Библиотека зарегистрирована. База/логин/пароль верные.
При попытке запуска с diag выдает, что не удалось прочитать конфиг, запустите setup.
13. stack 26.06.26 13:05 Сейчас в теме
(12) Сам спросил, сам и ответил:)
Проблема была в том, что пользователь ИБ был русский. Нужен англ....
14. MaxS 3137 06.07.26 17:37 Сейчас в теме
1С 8.5 будет поддерживаться?
Если да, то как одновременно работать и с 8.3 (с другой базой)?

А так полезный MCP.
Когда у меня всё полетело (всё, что связано с ИИ), быстро развернул один MCP, выгрузил исходники конфигурации, дал задание в Cursor'е, он справился с доработкой, потратив, правда 2,3 млн токенов на одну задачку. Ошибок в синтаксисе не допустил, после правки одной строки все заработало.
Prepod2003; +1 Ответить
17. Yashazz 4932 12.07.26 14:51 Сейчас в теме
"и серверную логику, и эту поставку — от начала до конца создал ИИ-агент"
Идеальная антиреклама собственной публикации. Браво.
vtretyakova; +1 1 Ответить
19. Perk0n 13 22.07.26 10:43 Сейчас в теме
Спасибо за статью!
"и серверную логику, и эту поставку — от начала до конца создал ИИ-агент" - можно промт?;)
20. pean 77 22.07.26 15:46 Сейчас в теме
При подключении к базе выдает:
Проверяю связь с базой…
✗ Подключиться не удалось: не удалось подключиться к базе 1С (проверьте путь/сервер, логин и пароль): Ошибка. (Неверные или отсутствующие параметры соединения с информационной базой)
Подсказка: для диагностики (какие расширения видны в базе) запустите
rsvdata-bridge.exe diag — он покажет, активно ли расширение RSVData
Расширение в базе установлено. Библиотека зарегистрирована: regsvr32 "C:\Program Files\1cv8\8.5.1.1343\bin\comcntr.dll" - успешно. База/логин: intellect/пароль верные.

В чем может быть причина?
21. nedomolkov.ivan 236 02.09.26 08:24 Сейчас в теме
(20) Судя по формулировке, до базы дело ещё не дошло. "Неверные или отсутствующие параметры соединения" отдаёт сам коннектор, когда разбирает строку. Это не 1С отвечает на логин.

Первое, что стоит проверить: регистрация comcntr одна на машину. Её перетирает последняя установка платформы. Вы зарегистрировали от 8.5.1.1343, и если сервер базы другой версии, соединение отвалится ещё до авторизации. В реестре, в CLSID {181E893D-73A4-4722-B61D-D604B3D67D47}, ветка InprocServer32, путь всегда ровно один.

Второе - формат строки. Для серверной базы Srvr="сервер";Ref="имя";Usr="имя";Pwd="пароль", для файловой File="путь". Лишний пробел или пропущенная кавычка дают ровно ваше сообщение.

И рядом по теме, раз уж модель читает базу: структуру метаданных удобно отдавать ей готовым файлом, а не выгребать по одному объекту. Делал такую выгрузку в Markdown и JSON: https://infostart.ru/1c/tools/2756727/
Для отправки сообщения требуется регистрация/авторизация