MCP-серверыMCP-серверы1С:ПредприятиеOData

1С через OData: как достать данные учётной базы без единой строки кода на встроенном языке

Разбираем стандартный OData-интерфейс 1С:Предприятие: чем он отличается от API конкретного сервиса, как узнать, что вообще опубликовано на конкретной базе, как проводить и отменять проведение документов и как всё это работает через MCP-сервер Mira без единой строки кода на встроенном языке.

3 сентября 2026 г.4 мин чтения

Обзор

У большинства сервисов в этом блоге есть API одного поставщика: набор методов, документация, ключи из личного кабинета. У 1С:Предприятие всё устроено иначе — есть протокол, стандартный интерфейс OData, а набор данных, который через него доступен, у каждой базы свой. Одна база — это склад и продажи, другая — зарплата и кадры, третья — управленческий учёт с десятками собственных документов и регистров, придуманных конкретной компанией. Заранее список сущностей не знает никто, включая нас: его показывает сама база при обращении.

Это и делает 1С особым коннектором. Вместо таблицы фиксированных методов Mira работает с базой в два шага: сначала спрашивает, что вообще опубликовано, — а дальше читает и меняет ровно то, что нашла.

Как устроен протокол

Публикация 1С через веб-сервер отдаёт адрес вида https://host/base/odata/standard.odata/. За этим адресом стоит стандартный OData v3: справочники как Catalog_Номенклатура, документы как Document_РасходТоваров, регистры накопления и сведений — AccumulationRegister_*, InformationRegister_*. Имя каждой сущности — то, как объект называется в конфигурации конкретной базы, и совпадений между разными компаниями почти нет.

Протокол даёт на этом наборе стандартный набор действий:

Действие Что делает
Метаданные Список сущностей и их полей — то, с чего начинается работа с незнакомой базой
Выборка Записи сущности с фильтром, сортировкой, выбором полей, постраничностью
Чтение по ключу Одна запись по её GUID
Создание, изменение, удаление Обычные операции CRUD
Проведение и отмена проведения Специфика 1С: запись документа — это ещё не движения по регистрам
Виртуальные таблицы регистров Остатки, обороты, срез последних — то, ради чего регистры и существуют

Ловушка, которую легко не заметить: запись документа — это не проведение

В большинстве систем сохранить объект значит применить его последствия. В 1С это не так. Документ, созданный через OData, появляется в базе, но остаётся непроведённым: движений по регистрам — то есть реальных изменений остатков, взаиморасчётов, себестоимости — не будет, пока документ не проведён отдельно.

Это не тонкость платформы, а прямое следствие модели данных 1С, где документ и его движения — разные сущности. Интеграция, которая создаёт документ и считает дело сделанным, получит на сервере запись, никак не повлиявшую на остатки, — и решит проблему только тогда, когда узнает о втором шаге.

Виртуальные таблицы — не то же самое, что выборка записей

Регистр накопления в 1С хранит не остаток, а поток движений: пришло, ушло. Спросить «сколько на складе сейчас» напрямую нельзя — это агрегат, а не запись. Для этого у регистров есть виртуальные таблицы: Balance считает остаток на момент времени, Turnovers — обороты за период, SliceLast (у регистров сведений) — последнее актуальное значение. Обращение к ним — не обычный $filter по коллекции, а вызов с параметрами периода и условия внутри самого адреса.

Отказ поставщика — один формат на весь протокол

В отличие от большинства сервисов в этом блоге, где форма отказа у каждого раздела API своя, у OData она задана самим стандартом: {"odata.error": {"code", "message": {"value"}}}. Ошибка платформы 1С — недостаточно прав, нарушение уникальности, попытка провести документ с ошибкой контроля — приходит в этом же конверте с человекочитаемым текстом, который 1С формирует сама, на языке информационной базы.

Что защищено от случайного действия

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

Удаление отдельно стоит того, чтобы о нём напомнить: 1С не хранит корзину для записи, удалённой через OData. Это необратимое действие, и барьер здесь так же строг, как и на создании документов.

Как это выглядит через MCP

MCP — открытый протокол, по которому Claude подключается к внешним данным и действиям. Вместо разбора конфигурации 1С и написания клиента вы подключаете базу в кабинете Mira тремя полями и спрашиваете обычными словами.

Что вообще опубликовано в этой базе 1С?

Claude получает список коллекций и группирует их по виду — справочники, документы, регистры, — прежде чем идти дальше.

Какие остатки товаров на складе сейчас?

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

Проведи документ реализации номер такой-то.

Действие, которое требует разрешения на запись у источника и подтверждения: запись документа и его проведение в 1С — разные операции, и модель не путает одно с другим.

Как подключить

  1. В конфигураторе 1С включите публикацию OData: Администрирование → Публикация на веб-сервере, отметьте нужную базу и стандартный интерфейс OData.
  2. Скопируйте адрес публикации — обычно он заканчивается на /odata/standard.odata.
  3. В Mira: проект → источники → 1С (OData) → адрес, логин и пароль пользователя с правом на веб-сервисы (обычно роль «Полные права»).

Дальше 1С доступна и в чате Mira, и через MCP-сервер в Claude, Cursor или другом клиенте с поддержкой протокола — без единой строки кода на встроенном языке.

Новости в Telegram

Подпишитесь на каналы — новые статьи и обзоры каждый день.

Источники

Ещё по теме «MCP-серверы»

MCP-серверы

CloudPayments через API и MCP: 32 метода, конверт отказа, который не отличает 400 от отклонённой карты, и Public ID, который просят дважды

Разбираем API CloudPayments изнутри: платежи, выплаты, подписки и счета чужого магазина — не биллинг самой Миры, — почему списание по сохранённому токену считается расходом, а обычная оплата картой нет, зачем платёжной ссылке СБП собственный Public ID в теле запроса поверх Basic Auth, и как всё это доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.
MCP-серверы

Финтабло через API и MCP: 112 методов финучёта, семь путей без объявленных параметров и почему тут нет отчётов

Разбираем API Финтабло изнутри: 112 методов финансового учёта — ДДС, счета, контрагенты, сделки, зарплата, имущество, ОПиУ, — где спецификация поставщика сама не дописывает параметры пути, почему у четырёх PUT-запросов id дублируется в теле и куда делись отчёты. Всё доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.
MCP-серверы

Модульбанк через API и MCP: выписка, платёжное поручение и почему подписание — это трата, а не создание

Разбираем публичный API Модульбанка изнутри: счета и выписки, платёжные поручения, приём платежей по СБП и отчётность по номинальным счетам — почему создание платёжного поручения ничего не тратит, а тратит только его подписание квалифицированной подписью, и как всё это доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.