MCP-сервер для 1С на Python SDK 2.x: проверка ответа по контракту

07.10.26

Разработка - DevOps и автоматизация разработки

MCP-сервер на mcp 2.2.0 сверяет ответ HTTP-сервиса 1С с контрактом: лишнее поле, время без зоны, ссылка не по шаблону, немаскированный пользователь, 502 и таймаут. Восемь отказов из прогона 05.10.2026 и что в каждом видит агент. В архиве сервер и проверка с заглушкой вместо 1С.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
13.1-companion.zip
.zip 10,75Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
🧠 AI, Нейросети & MCP
🎯 О чём это (в трёх тезисах)
🗸Сервер отклоняет ответ 1С, который нарушает контракт.
🗸Сервер archive_door.py на mcp 2.2.0, Проверка check_door.py с заглушкой 1С, Вывод прогона: 8 отказов, 11 строк журнала.
🗸Ответ с лишним ФИО или временем без зоны до агента не доходит; причину отказа находят по TraceID.
🧪 Отчёт о тестировании файла-компаньона
Архив13.1-companion.zip: сервер, проверка с заглушкой 1С, эталонный вывод
Где и когда05.10.2026, Windows 11, Python 3.12.10, mcp 2.2.0, pydantic 2.13.5
Что запускалосьpython check_door.py из распакованного архива, без репозитория
Результат8 отказов (6 ответов вне контракта, HTTP 502, таймаут) и 1 успешный ответ; журнал вызовов 11 строк: ok 1, rejected 6, unavailable 2, refused 2. Совпадает с output-2026-10-05.txt.
Не провереноопубликованный HTTP-сервис 1С: вместо него заглушка на 127.0.0.1
🧠 Суть статьи

Разработчику MCP-сервера к HTTP-сервису 1С: как описать ответ моделью Pydantic, где проверять его в инструменте и что агент получает при каждом из восьми отказов. Прогон 05.10.2026 на mcp 2.2.0 с заглушкой вместо 1С.

Ключевые идеи
  • Аргументы и ответ проверяются отдельно: верный вызов инструмента не означает допустимый ответ сервиса.
  • extra="forbid", AwareDatetime и шаблоны полей отклоняют лишнее ФИО, время без зоны и ссылку не по формату.
  • Ожидаемые отказы оформлены через ToolError: иначе клиент видит общее «Error executing tool».
  • Журнал вызовов связывает ответ агенту с записью по TraceID и не хранит отвергнутые значения.
Главная мысль

Ответ 1С для агента - такой же внешний ввод, как аргументы: его проверяют по контракту до возврата, а отказ объясняют путём поля и TraceID без самого значения.

Для кого: 1С-разработчикам, которые пишут свой MCP-сервер к HTTP-сервису базы.

Я проверила прототип MCP-сервера, который получает журнал регистрации через HTTP и отдаёт записи агенту. В хорошем ответе есть время UTC, замаскированный пользователь и навигационная ссылка. Если сервис добавляет полное ФИО, присылает время без зоны или меняет формат ссылки, сервер возвращает ошибку. Агент получает признак isError и причину отказа, а для ошибок после входа в инструмент - ещё и TraceID.

Ниже - контракт, фрагменты его реализации и результаты восьми проверок отказа. Все записи в этом опыте синтетические. Вместо платформы работает HTTP-заглушка, поэтому вы можете проверить Python-часть до публикации сервиса 1С. Саму публикацию и права пользователя базы этот опыт не подтверждает.

🔬 Что именно я проверила

Сервер предоставляет инструмент event_log. Входные параметры - metadata, since_utc, events. Выход - модель EventLogAnswer, внутри которой находится список EventLogRecord. Я разделила проверку аргументов и проверку ответа: корректный вызов инструмента ещё не означает, что HTTP-сервис вернул допустимые данные.

Версии сохранённого прогона:

Компонент Версия или режим
Python 3.12.10
Python SDK MCP, пакет mcp 2.2.0
Pydantic 2.13.5
Источник данных HTTP-заглушка на 127.0.0.1:18081
Клиент Client, сервер передан непосредственно
Таймаут HTTP в проверке 1 секунда
Медленный ответ заглушки Пауза 2 секунды

Последний прогон я сделала 05.10.2026 на Windows 11 на текущем коде сервера. Если повторяете у себя, начните с фиксации своих версий: строка mcp 2.2.0, pydantic 2.13.5 печатается первой.

В начале проверки клиент запросил список инструментов. Существенная строка вывода выглядит так:

mcp 2.2.0, pydantic 2.13.5
1 инструмент event_log: readOnlyHint=True, вход=['events', 'metadata', 'since_utc'], outputSchema=есть

Наличие outputSchema подтверждено для этого инструмента. Публичная схема помогает клиенту понять форму результата; дополнительные правила Python проверяются при построении модели на сервере. Например, собственный валидатор UTC нельзя заменить одной лишь проверкой наличия схемы в списке инструментов.

Аннотация readOnlyHint=True описывает намерение автора инструмента. Она не выдаёт и не отбирает права пользователя 1С. В редакции спецификации MCP 2025-11-25 прямо сказано, что клиент обязан считать аннотации недоверенными, если сервер не входит в число доверенных. Ограничения на запись задаются правами пользователя базы, под которым работает HTTP-сервис.

🧱 Какие поля допускает контракт

Я начала с полей, которые агент использует для разбора события. Для записи обязательны time_utc, user, event, metadata, link; comment допускает строку или None. Дополнительные поля запрещены. Такой запрет распространяется и на оболочку ответа, где находятся trace_id, records и truncated.

Основные объявления из прототипа:

Python UTF-8 фрагмент
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from datetime import datetime, timedelta
from pydantic import (
    AwareDatetime, BaseModel, ConfigDict, Field,
    field_validator, model_validator,
)

LINK_PATTERN = r"^e1cib/(data/[^?\s]+\?ref=[0-9a-f]{32}|list/[^?\s]+)$"
MASK_PATTERN = r"^[^*]{0,3}\*\*\*$"

class EventLogRecord(BaseModel):
    model_config = ConfigDict(extra="forbid")
    time_utc: AwareDatetime
    user: str = Field(pattern=MASK_PATTERN)
    event: str
    metadata: str
    link: str = Field(pattern=LINK_PATTERN)
    comment: str | None = None

    @field_validator("time_utc")
    @classmethod
    def only_utc(cls, v: datetime) -> datetime:
        if v.utcoffset() != timedelta(0):
            raise ValueError("время не в UTC")
        return v

class EventLogAnswer(BaseModel):
    model_config = ConfigDict(extra="forbid")
    trace_id: str
    records: list[EventLogRecord]
    truncated: bool = False

AwareDatetime требует информацию о часовом поясе. Проверка utcoffset() добавляет требование нулевого смещения. Строка с +03:00 содержит зону, но этот контракт её отклоняет. Автоматического перевода времени в UTC в показанном валидаторе нет. Если ваш сервис возвращает местное время, согласуйте преобразование на стороне сервиса или осознанно измените контракт.

Регулярное выражение для пользователя допускает до трёх символов перед тремя звёздочками. Оно проверяет наличие согласованной маски. Маскирование выполняет источник данных: Python-сервер не превращает полное ФИО в сокращение. В частности, строка Тестов Т. Т. до агента как успешная запись не доходит.

Ссылка может вести на объект через e1cib/data/...?... либо на список через e1cib/list/.... Для ссылки на объект требуется ref из 32 строчных шестнадцатеричных знаков без дефисов. Это узкий формат нашего контракта. Из него нельзя вывести, что любые другие навигационные ссылки платформы неправильны.

В текущем коде есть дополнительная зависимость между полями: изменение ссылочного объекта должно сопровождаться ссылкой на сам объект. Фрагмент проверки:

Python UTF-8 фрагмент
1
2
3
4
5
6
7
8
9
10
11
12
13
REF_KINDS = (
    "Справочник.", "Документ.", "ПланВидовХарактеристик.",
    "ПланСчетов.", "ПланВидовРасчета.", "ПланОбмена.",
    "БизнесПроцесс.", "Задача.",
)

@model_validator(mode="after")
def object_change_needs_object_link(self):
    if (self.event.startswith("_$Data$_.")
            and self.metadata.startswith(REF_KINDS)
            and not self.link.startswith("e1cib/data/")):
        raise ValueError("изменение ссылочного объекта без ссылки e1cib/data")
    return self

Этот метод находится внутри EventLogRecord. В восьми основных сценариях отдельного опыта с подменой объектной ссылки на ссылку списка нет. Я показываю правило как часть текущей реализации, не включаю его в число проверенных отказов.

🔌 Где ответ HTTP становится ответом MCP

Для SDK 2.2.0 в прототипе используются следующие импорты:

archive_door.py UTF-8 📦 Скачать архив
1
2
3
from mcp.server.mcpserver import MCPServer
from mcp.server.mcpserver.exceptions import ToolError
from mcp_types import ToolAnnotations

Инструмент объявлен с возвращаемым типом EventLogAnswer. Ниже приведён фрагмент регистрации и главная строка преобразования. AuditedServer - наш наследник MCPServer, который добавляет журналирование отказов; его поведение разберу дальше.

Python UTF-8 фрагмент
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
server = AuditedServer("nopik-archive-door")

@server.tool(
    annotations=ToolAnnotations(
        read_only_hint=True,
        open_world_hint=False,
    )
)
def event_log(
    metadata: str,
    since_utc: AwareDatetime,
    events: list[str] | None = None,
) -> EventLogAnswer:
    # Здесь создаются trace_id и started, проверяются аргументы.
    raw = call_1c(
        "event_log",
        {
            "metadata": metadata,
            "since": since_utc.isoformat(),
            "event": ",".join(events or []),
        },
        trace_id,
    )
    answer = EventLogAnswer.model_validate({**raw, "trace_id": trace_id})
    # Здесь результат и длительность записываются в журнал.
    return answer

Это фрагмент функции, с опущенными ветвями ошибок. Он показывает место, где пришедший JSON проверяется моделью. До model_validate() данные HTTP-сервиса считаются сырым ответом. Возврат из инструмента происходит после успешной валидации.

TraceID создаётся в Python-сервере. В ответе поле trace_id устанавливается после распаковки raw, поэтому одноимённое значение источника будет заменено локальным идентификатором. При HTTP-вызове тот же идентификатор передаётся в заголовке X-Trace-ID.

Параметры запроса собираются через urlencode, список событий соединяется запятыми. В коде прототипа это связано с тем, что HTTP-обработчик 1С принимает параметры как соответствие. Произвольный текст запроса к базе инструмент не принимает: в его схеме такого параметра нет.

При HTTP 4xx или 5xx сервер формирует сообщение по коду ответа. Тело ошибки не читается. Так содержимое диагностического ответа веб-сервера не становится частью сообщения агенту через эту ветвь. При проблеме транспорта обрабатываются TimeoutError и URLError.

Python UTF-8 фрагмент
1
2
3
4
5
6
7
except error.HTTPError as e:
    raise DoorError(
        f"1С ответила HTTP {e.code}",
        "denied" if 400 <= e.code < 500 else "unavailable",
    ) from None
except (TimeoutError, error.URLError) as e:
    raise DoorError(f"1С недоступна: {e}") from None

В этом прогоне проверены HTTP 502 и таймаут. Поведение для остальных кодов видно из ветвления, но отдельными строками результата здесь не подтверждено.

🧪 Что агент видит при каждом отказе

Для эталона я использовала одну синтетическую запись. Время внутри неё - тестовое значение, оно не обозначает дату запуска проверки.

Python UTF-8 фрагмент
1
2
3
4
5
6
7
GOOD = {
    "time_utc": "2026-10-06T06:02:11Z",
    "user": "Те***",
    "event": "_$Data$_.Update",
    "metadata": "Справочник.ТЕСТ",
    "link": "e1cib/data/Справочник.ТЕСТ?ref=" + "0" * 31 + "1",
}

Заглушка возвращает {"records": [GOOD]}. Для каждого сценария изменяется одно поле либо режим HTTP-ответа. Клиент вызывает тот же event_log, а имя сценария передаётся через metadata. Такое использование параметра принадлежит тестовой заглушке; в рабочем сервисе это имя объекта метаданных.

Сценарий Что изменено Что получил клиент
ok Эталонная запись isError=False, одна запись
extra_fio Добавлено user_full_name Ошибка лишнего поля
naive_time Время без зоны Ошибка отсутствия timezone
msk_time Смещение +03:00 Сообщение «время не в UTC»
empty_link Пустая строка ссылки Ошибка шаблона link
guid_dashes ref записан с дефисами Ошибка шаблона link
unmasked Пользователь без маски Ошибка шаблона user
502 HTTP 502 Ошибка источника с TraceID
slow Пауза дольше таймаута Ошибка доступности с TraceID

Итого восемь отрицательных сценариев: шесть ответов вне контракта и два сбоя получения ответа. Успешный сценарий в эти восемь не входит. Фрагмент сохранённого вывода:

2 ok          isError=False записей=1
2 extra_fio   isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID 9e430c99-1bac-42a3-afbd-cbe2bab6fc36: records.0.user_full_name: Extra inputs are not permitted
2 naive_time  isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID 9faa7938-668b-4520-86b1-d0798f03788d: records.0.time_utc: Input should have timezone info
2 msk_time    isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID a69db99e-2562-4a81-ad44-8eb476bfd199: records.0.time_utc: Value error, время не в UTC
2 empty_link  isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID e59cc6f3-f26f-413f-977c-79171073b6ab: records.0.link: String should match pattern '^e1cib/(data/
2 guid_dashes isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID 8faf5551-d701-4178-955b-5e4a4a25f154: records.0.link: String should match pattern '^e1cib/(data/
2 unmasked    isError=True  Error executing tool event_log: ответ 1С вне контракта, TraceID 43ada938-6ec2-4462-a79e-763568f9af1d: records.0.user: String should match pattern '^[^*]{0,3}\*\
2 502         isError=True  Error executing tool event_log: 1С ответила HTTP 502, TraceID 1371eee7-99ed-4241-bc81-b9e8695c30fb
2 slow        isError=True  Error executing tool event_log: 1С недоступна: timed out, TraceID 17f443c3-7fd0-4cde-8ce9-a32302060c24

Строки ошибок шаблона обрезаны самим проверочным скриптом: он печатает первые 160 символов результата. Полный шаблон виден в объявлении поля выше.

Путь records.0.time_utc означает поле первой записи списка. При лишнем поле ошибка указывает records.0.user_full_name. Такой путь помогает разработчику сервиса найти нарушенный участок ответа без публикации всей записи в журнале MCP.

Сборка описания ошибки в прототипе использует расположение и сообщение валидатора:

Python UTF-8 фрагмент
1
2
3
4
5
6
7
8
9
except ValidationError as e:
    problems = "; ".join(
        f"{'.'.join(map(str, x['loc']))}: {x['msg']}"
        for x in e.errors()
    )
    log_call(trace_id, "event_log", args, "rejected", started, problems)
    raise DoorError(
        f"ответ 1С вне контракта, TraceID {trace_id}: {problems}"
    ) from None

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

📒 Почему отказ оформлен через ToolError

DoorError в нашем коде наследует ToolError. В проверенном SDK ожидаемая ошибка инструмента доходит до клиента с текстом. Для сравнения я создала отдельный инструмент boom, который выбрасывает обычный RuntimeError с сообщением о HTTP 502.

Python UTF-8 фрагмент
1
2
3
4
5
crash = MCPServer("crash-demo")

@crash.tool()
def boom() -> str:
    raise RuntimeError("1С ответила HTTP 502")

Результат сравнения:

5 обычное исключение вместо ToolError: агент видит «Error executing tool boom»

Поэтому ожидаемые отказы источника оформлены через ToolError. Иначе клиент в этом опыте видит лишь общее сообщение. Выбор исключения влияет на диагностику, но не отменяет необходимость фильтрации текста перед его отправкой.

Кроме восьми отказов ответа, проверка содержит два отказа до вызова HTTP-сервиса: since_utc без зоны и запрос неизвестного инструмента run_query. Их результат:

3 since_utc без зоны: isError=True Error executing tool event_log: 1 validation error for event_logArguments
since_utc
  Input should have timezone info [t
4 чужой инструмент run_query: isError=True Unknown tool: run_query
6 журнал вызовов: 11 строк, статусы {'ok': 1, 'unavailable': 2, 'refused': 2, 'rejected': 6}

Сообщение проверки времени также обрезано скриптом. Для этих двух ранних отказов идентификатор создан в журнале обёрткой AuditedServer; приведённые ответы клиенту TraceID не содержат. Обещание «в каждой ошибке агент получает TraceID» было бы шире результата опыта.

Журнал содержит один успешный вызов, шесть отказов контракта, два сбоя доступности и два отказа входа. Это даёт 11 строк. Отдельный инструмент boom принадлежит другому серверу и в этот журнал не входит.

Я сохраняю в строке журнала trace_id, имя инструмента, аргументы, статус, длительность и краткое описание. Тексты проходят redact(), строки внутри аргументов - рекурсивную обработку redact_all(). В текущем коде описание ограничено 300 символами, длительность округляется до двух знаков после запятой.

Обёртка проверяет само исключение и его __cause__. Это нужно, чтобы уже записанный инструментом DoorError не появился второй строкой как ранний отказ. Для постороннего внутреннего сбоя предусмотрен статус crashed. В данном прогоне такого статуса нет; наличие ветви видно в реализации.

Если вы повторяете опыт, сначала проверьте число строк по статусам, затем сопоставьте конкретный TraceID ответа с журналом. Идентификаторы нового запуска будут другими. Само совпадение текстов ошибок со снимком не подтверждает, что журналирование сохранилось после изменения сервера.

🧭 Ограничения

Прогон сделан на mcp 2.2.0, Pydantic 2.13.5 и Python 3.12.10 с HTTP-заглушкой вместо опубликованной базы. Права пользователя базы, авторизацию веб-сервера и запрет записи этот опыт не проверяет: их проверяют на публикации HTTP-сервиса 1С.

Схема проверяет форму и несколько согласованных правил. Она не подтверждает достоверность события, существование объекта по ссылке или правильность имени метаданных. Синтетическая ссылка с ref, оканчивающимся на 1, проходит наш шаблон; переход в клиенте 1С в этом опыте не выполнялся.

Допустимые строки event, metadata, comment в текущем сервере дополнительно проверяются на признаки секрета. Я прочитала отдельную проверку утечек: она рассматривает аргументы, лишнее поле, комментарий и значение в форме UUID. Универсального распознавания секретов здесь нет. Произвольное значение в форме UUID без поясняющего имени по виду неотличимо от обычного идентификатора. Значения тестовых маркеров в статью не включены.

Принимается весь HTTP-ответ через resp.read(), затем разбирается JSON. Лимит размера HTTP-тела в этой функции не задан. Ошибки разбора JSON и все возможные внутренние сбои не входят в восемь рассмотренных сценариев. Политики повтора запроса в показанном вызове тоже нет.

Проверка журнала при запуске подтверждает возможность открыть файл в тот момент. Последующую потерю доступа к диску, заполнение тома и ротацию журнала я не проверяла. Для эксплуатации нужны отдельные решения по хранению и доступу к журналу: аргументы содержат имена объектов и интервалы запросов даже после удаления похожих на секреты строк.

Имена импортов сверены со страницей миграции SDK: MCPServer вместо FastMCP, ToolError в mcp.server.mcpserver.exceptions. Соответствие версии 2.2.0 всем требованиям спецификации MCP я не проверяла.

📚 Источники

Практическая основа - проверка check_door.py и сервер archive_door.py; объявления и вывод прогона приведены в статье.

Предшественники на Infostart:

Здесь разобран контракт ответа 1С, причины отказа и сверка журнала вызовов.

📎 Файл к статье

В архиве к статье - 13.1-companion.zip: сервер archive_door.py, проверка check_door.py с HTTP-заглушкой вместо 1С, вывод прогона 05.10.2026 output-2026-10-05.txt и README. Установите mcp==2.2.0, запустите python check_door.py и сравните восемь отказов и счётчики журнала с этим выводом. Перед подключением своего сервиса согласуйте поля ответа, формат времени, маску пользователя и правила ссылок.

 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор 48 технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

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

MCP Python Pydantic ИИ-агент HTTP-сервис журнал регистрации контракт 1С 8.3

См. также

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

Подключите ИИ к 1С и решайте рабочие задачи обычными словами. От работы с данными до доработки конфигурации через расширения, всё в привычном чате с ИИ-помощником. Теперь с поддержкой DeepSeek Harness, Kimi Code и Kimi Work, доступных в России без VPN.

15990 руб.

30.07.2026    19311    40    4    

36

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-совместимые модели — данные могут не покидать ваш контур.

17500 руб.

20.12.2024    21426    104    32    

90

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

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

15250 руб.

25.08.2025    76701    147    41    

154

SALE! 30%

Нейросети 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение добавляет в 1С чат с ИИ-агентом. Пользователь пишет вопрос обычными словами: «какие УПД не подписаны?», «какой НДС к уплате за квартал?», «что висит на согласовании дольше недели?», а агент сам строит запросы к базе с правами этого пользователя и отвечает цифрами, таблицей, диаграммой или файлом Excel. Плитки «Аналитик», «Бухгалтер» и «Руководитель» дают сводку по базе одной кнопкой. Агент разбирает ошибки по скриншоту, сверяет прайсы поставщиков и проверяет коды маркировки. С версии 1.0.21 спрашивать можно и с телефона: QR-код в окне агента, без установки приложения. Работает в УТ 11, КА 2, ERP 2, БП 3.0, УНФ 3.0, Документооборот 3.0 и Альфа-Авто 6, ставится одним расширением.

18300 руб.

05.10.2026    3342    10    9    

11

Инструментарий разработчика Нейросети Системный администратор Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Обработка заменяет ФИО, организации, ИНН, ИИН, БИН, ОГРН, КПП, БИК, счета и IBAN, паспорта, СНИЛС, адреса, телефоны, почту и суммы на правдоподобные выдуманные перед отправкой данных в ChatGPT, Claude или YandexGPT, а потом расшифровывает ответ модели обратно, подставляя настоящие имена и настоящие числа. Возвращаются и те итоги, которые модель посчитала сама: суммы масштабируются одним коэффициентом, поэтому пропорции и доли переживают обезличивание. Словарь замен хранится в самой базе и подхватывается автоматически, даже если обработку закрывали. Реквизиты России и Казахстана, любая конфигурация от 8.3.24, без единой зависимости.

14640 руб.

07.08.2026    2134    3    0    

3

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

ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений

6100 руб.

24.08.2026    1397    1    0    

1

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

ИИ агент для бухгалтерии - открытый ИИ-консультант внутри 1С. Он отвечает на вопросы по данным базы, анализирует задолженность и обороты, помогает разбирать ошибки проведения и готовить документы. Пользователь видит шаги агента: какие инструменты вызваны и какие результаты получены. Решение состоит из расширения 1С и сервера на Python, поддерживает локальные модели и облачные API. Инструменты выполняются с правами текущего пользователя. Текущая версия - прототип для «Бухгалтерии предприятия 3.0». Исходный код распространяется под лицензией MIT.

31.10.2026    3378    166    nomadAI    8    

19

Инструментарий разработчика Нейросети Разработчик 1С 8.3 Бесплатно (free)

Сделал внешнюю обработку и небольшой MCP-сервер, через которые ИИ-агент выполняет запросы, выражения и код прямо в открытом сеансе 1С и смотрит метаданные конфигурации. В конфигурацию ничего не встраивается и ничего не публикуется: команды ходят файлами через каталог на вашем компьютере. Серверный код агента по умолчанию откатывается, а запись в базу вы разрешаете сами, тумблером на форме обработки.

29.10.2026    4732    nt_app    12    

25
Для отправки сообщения требуется регистрация/авторизация