LangGraph 1.2: ситуации, когда следует внимательно читать ошибку и порядок выполнения

07.10.26

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

Четыре минимальных графа на LangGraph 1.2.12 без модели и без 1С: InvalidUpdateError при двух записях в один ключ, join с редьюсером, GraphRecursionError в цикле и повтор всего узла через RetryPolicy. Плюс пауза без чекпоинтера и повтор кода до interrupt. Прогон 05.10.2026, скрипт и чек-лист в архиве.

Файлы

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

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

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

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

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

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
🧠 AI, Нейросети & MCP
🎯 О чём это (в трёх тезисах)
🗸Каждая ошибка графа указывает своё место исправления.
🗸Скрипт с четырьмя минимальными графами, Эталонный вывод на LangGraph 1.2.12, Чек-лист перед подключением к 1С.
🗸Повтор узла и resume не отправят в 1С второй запрос или вторую запись незаметно.
🧪 Отчёт о тестировании файла-компаньона
Архив13.4-companion.zip: четыре минимальных графа, эталонный вывод, чек-лист
Где и когда05.10.2026, Windows 11, Python 3.12.10, LangGraph 1.2.12
Что запускалосьpython check_claims.py из распакованного архива, без модели и без 1С
Результат4 строки вывода совпали с output-langgraph-1.2.12.txt: InvalidUpdateError, join с seen=2, GraphRecursionError, 4 вызова при RetryPolicy.
Не проверенодругие версии LangGraph и внешние вызовы из узлов
🧠 Суть статьи

Разработчику агента на LangGraph, который обращается к 1С: что означают InvalidUpdateError и GraphRecursionError, чем редьюсер отличается от join и какой код выполняется повторно при RetryPolicy и после interrupt. Прогон 05.10.2026 на 1.2.12.

Ключевые идеи
  • InvalidUpdateError - две ветви пишут в один ключ без редьюсера; лечится схемой состояния.
  • Редьюсер и join решают разные задачи: первый объединяет значения, второй ждёт обе ветви.
  • GraphRecursionError в цикле без условия выхода не лечится увеличением лимита.
  • RetryPolicy и resume после interrupt выполняют начало узла заново: внешние вызовы там повторятся.
Главная мысль

Ошибки LangGraph указывают место исправления: схему состояния, рёбра или условие выхода. А повтор узла и resume повторяют всё, что было до исключения или паузы.

Для кого: разработчикам агентов на LangGraph, которые подключают их к 1С.

Я сверила четыре минимальных примера на LangGraph 1.2.12: конфликт параллельных обновлений, сбор результатов через join, остановку цикла по лимиту и повтор всего узла после исключения. Их общий файл не подключается к модели и не вызывает 1С. Поэтому текст ошибки и повтор операций можно разобрать отдельно от сети, промпта и содержимого базы.

До вызывающего кода в четырёх случаях доходят два исключения. В первом примере появляется InvalidUpdateError, в третьем GraphRecursionError, второй завершается успешно, а четвёртый обрабатывает ConnectionError повтором. Я оставила четыре случая и отдельно разобрала ошибки чтения состояния и возобновления без чекпоинтера из другого записанного прогона.

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

🧪 Как устроен прогон

Прогон закреплён на langgraph==1.2.12. В файле используются StateGraph, служебные вершины START и END, типизированные словари и RetryPolicy. Узлы возвращают словари обновлений. Всё внешнее поведение сведено к задержке одного узла и добавлению строк в список вызовов.

Для установки и запуска в комментарии скрипта записаны команды:

Bash UTF-8 CLI
1
2
pip install langgraph==1.2.12
python check_claims.py

Примеры можно сохранить отдельными файлами или собрать в один файл в порядке разделов. Это отдельные графы, между которыми не передаётся состояние предыдущего запуска.

Вывод общего прогона:

1 без редьюсера: исключение InvalidUpdateError At key 'evidence': Can receive only one value per step. Use an Annotated key to handle multiple values.
2 join: {'evidence': ['fast', 'slow'], 'seen': 2}
3 recursion_limit: GraphRecursionError
4 retry_policy: вызовов вопросов = 4 ['вопрос 1', 'вопрос 2', 'вопрос 1', 'вопрос 2']

Это четыре наблюдения на одной закреплённой версии. Строки «вопрос 1» и «вопрос 2» обозначают действия внутри Python-функции; модель таких вопросов не получала. Значение seen=2 показывает, что собирающий узел прочитал оба результата. Оно не измеряет скорость параллельной работы или время сетевого обращения.

Для первоначальной диагностики я составила карту:

Наблюдение Где искать причину Что проверяет пример
InvalidUpdateError при обновлении evidence схема поля и параллельные записи два узла возвращают один ключ без редьюсера
Join возвращает seen=2 правило объединения и входящие рёбра собирающий узел получает оба значения
GraphRecursionError условие выхода и конфигурация запуска цикл достигает заданного лимита
Два вопроса повторились граница узла с retry_policy после ошибки функция запускается заново

В отдельном опыте с подтверждением есть ещё два сообщения: ValueError No checkpointer set и RuntimeError Cannot use Command(resume=...) without checkpointer. Они относятся к операциям после паузы. Сам первый запуск без чекпоинтера в том опыте исключения не вызвал. Если смешать эти события в одну фразу «interrupt падает», получится неверное описание точки отказа.

🧱 Откуда берётся InvalidUpdateError

Первый граф запускает a и b от START. Каждый узел возвращает список под ключом evidence. В схеме состояния это обычный list, без дополнительного правила объединения. Код из проверочного файла:

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
from typing import TypedDict
from langgraph.graph import StateGraph, START, END

class S1(TypedDict, total=False):
    evidence: list

def a(s):
    return {"evidence": ["A"]}

def b(s):
    return {"evidence": ["B"]}

g = StateGraph(S1)
g.add_node("a", a)
g.add_node("b", b)
g.add_edge(START, "a")
g.add_edge(START, "b")
g.add_edge("a", END)
g.add_edge("b", END)

try:
    print("1 без редьюсера:", g.compile().invoke({}))
except Exception as e:
    print(
        "1 без редьюсера: исключение",
        type(e).__name__, str(e).splitlines()[0],
    )

Запуск завершается InvalidUpdateError. Сообщение называет ключ evidence и указывает, что за один шаг пришло несколько значений. По этой строке я сначала проверяю места, где узлы возвращают этот ключ, и схему его хранения.

Оба списка сами по себе допустимы как значения Python. Проблема появляется при попытке применить обновления к одному полю состояния в параллельном шаге. Если ваш агент одновременно получает журнал регистрации и описание объекта, а обе ветви складывают результат в evidence, потребуется решить, как объединять эти результаты.

Вариант решения из следующего опыта использует Annotated[list, operator.add]. В аннотации задаётся функция, которая объединяет прежнее и поступившее значения. Для списков operator.add даёт конкатенацию. Это правило подходит, когда вы хотите накопить элементы от ветвей в одной коллекции.

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

Есть и другой проектный вариант: ветви пишут в разные поля, а отдельный узел собирает их в итог. Минимальный прогон этот вариант не проверяет. Я называю его как направление изменения схемы, без обещания готового результата на вашем графе. Проверенное исправление здесь относится к списку с operator.add и join из следующего раздела.

Обработка except Exception в примере нужна для печати наблюдения и продолжения общего проверочного файла. Для рабочего агента такой обработчик не задаёт политику восстановления. Он не исправляет схему и не выбирает результат одной ветви. После регистрации ошибки потребуется изменить построение графа или модель состояния.

🔗 Зачем нужен join, если есть редьюсер

Во втором графе поле evidence получает редьюсер. Узел slow задерживается на 0.3 секунды, fast возвращает результат сразу. Узел sup записывает количество элементов, которые увидел. Входящее ребро к нему задаётся списком имён обеих ветвей:

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
import operator
import time
from typing import Annotated, TypedDict
from langgraph.graph import StateGraph, START, END

class S2(TypedDict, total=False):
    evidence: Annotated[list, operator.add]
    seen: int

def slow(s):
    time.sleep(0.3)
    return {"evidence": ["slow"]}

def fast(s):
    return {"evidence": ["fast"]}

def sup(s):
    return {"seen": len(s["evidence"])}

g = StateGraph(S2)
g.add_node("slow", slow)
g.add_node("fast", fast)
g.add_node("sup", sup)
g.add_edge(START, "slow")
g.add_edge(START, "fast")
g.add_edge(["slow", "fast"], "sup")
g.add_edge("sup", END)
print("2 join:", g.compile().invoke({}))

Сохранённый результат содержит ['fast', 'slow'] и seen=2. Здесь изменены две части графа. Аннотация поля задаёт объединение обновлений, а ребро со списком источников задаёт ожидание обеих ветвей перед sup. Проверка показывает их совместную работу на этом примере.

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

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

Порядок элементов в сохранённой строке не стоит использовать как обозначение приоритета. Опыт показывает конкретный вывод, но не устанавливает универсальное правило сортировки свидетельств для любого графа. Если итоговая обработка зависит от источника, его нужно обозначать в данных. Само имя fast в списке этого не решает для будущего формата результата.

Задержка time.sleep(0.3) нужна для различия ветвей в тесте. Вывод проверяет состав состояния в sup; замера производительности здесь нет.

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

🔁 Когда граф останавливается сам

Третий пример содержит цикл без условия завершения. Узел увеличивает n, а условный переход каждый раз выбирает этот же узел. В запуске указан recursion_limit=12:

Python UTF-8 фрагмент
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from typing import TypedDict
from langgraph.graph import StateGraph, START

class S3(TypedDict, total=False):
    n: int

def loop(s):
    return {"n": s.get("n", 0) + 1}

g = StateGraph(S3)
g.add_node("loop", loop)
g.add_edge(START, "loop")
g.add_conditional_edges("loop", lambda s: "loop", {"loop": "loop"})

try:
    g.compile().invoke({}, config={"recursion_limit": 12})
except Exception as e:
    print("3 recursion_limit:", type(e).__name__)

Результат: GraphRecursionError. Число в конфигурации ограничивает продвижение графа; его нельзя читать как таймаут HTTP-запроса или размер контекста модели. В этом коде нет рекурсивного вызова Python-функции loop из самой себя. Повтор создаёт переход графа.

Я сначала проверила бы условие выбора следующей вершины. Здесь оно возвращает "loop" при любом состоянии, поэтому увеличение лимита только отодвинет остановку. Для рабочего агента нужно определить состояние, при котором анализ закончен или дальнейший поиск следует прекратить. Затем уже выбирать лимит, соответствующий допустимому пути.

В отдельном прогоне графа с подтверждением recursion_limit=3 также завершился GraphRecursionError. Полный путь с паузой и одобрением укладывался в recursion_limit=6. Эти числа относятся к тому конкретному графу. Из них нельзя получить универсальную настройку для агента с другими узлами, ветвлениями или условиями.

Четвёртая проверка касается другого повторения: функция узла начинает выполняться заново после подходящего исключения. Политика привязана к узлу w. Она допускает две попытки и явно выбирает ConnectionError:

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
from typing import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.types import RetryPolicy

class S3(TypedDict, total=False):
    n: int

calls = []

def flaky(s):
    calls.append("вопрос 1")
    calls.append("вопрос 2")
    if len(calls) < 4:
        raise ConnectionError("502")
    return {"n": 1}

g = StateGraph(S3)
g.add_node(
    "w", flaky,
    retry_policy=RetryPolicy(
        max_attempts=2,
        initial_interval=0.01,
        retry_on=ConnectionError,
    ),
)
g.add_edge(START, "w")
g.add_edge("w", END)
g.compile().invoke({})
print("4 retry_policy: вызовов вопросов =", len(calls), calls)

На первой попытке список получает два элемента, затем функция поднимает исключение. На второй оба append выполняются снова. Список содержит четыре строки, и узел возвращает n=1. Таким способом тест наблюдает повтор начала функции без необходимости подключать платный внешний вызов.

Строка "502" здесь только сообщение искусственно созданного ConnectionError. HTTP-сервер не отвечает кодом 502, сетевой запрос не выполняется. Поэтому результат не подтверждает автоматическое повторение любого HTTP-ответа с таким кодом. Проверено правило для класса исключения, который указан в retry_on.

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

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

💤 Что выполняется заново после interrupt

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

1. recursion_limit=3: GraphRecursionError
2. создание RemediationAction в узле: до паузы 1, после resume 2
3. без чекпоинтера: исключения нет; ключи результата: ['__interrupt__', 'audit_trail', 'enterprise_context', 'identified_error_signature', 'is_approved_by_human', 'messages', 'next', 'remediation', 'root_cause_analysis'] | есть __interrupt__: True
   get_state без чекпоинтера: ValueError No checkpointer set
   resume без чекпоинтера: RuntimeError Cannot use Command(resume=...) without checkpointer
4. полный проход (пауза и одобрение) укладывается в recursion_limit=6

По третьему пункту первый вызов вернул результат с __interrupt__. Исключения в этот момент не было. Затем попытка get_state завершилась ValueError, а попытка возобновления через Command(resume=...) завершилась RuntimeError. Это три разных операции, и у каждой свой результат.

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

Во втором пункте счётчик создания RemediationAction увеличился с одного до двух после resume. Это согласуется с описанным в документации возвратом к началу узла при продолжении после interrupt: код, находящийся до паузы, выполняется повторно. Такой повтор следует учитывать независимо от настройки RetryPolicy.

В опыте наблюдается создание объекта, без доказательства повторной записи в базу. Однако место для проверки побочных действий уже определено: участок узла перед interrupt. Если ваш узел сначала готовит предложение, затем запрашивает подтверждение, создание предложения может повториться при продолжении. Если там находится внешний вызов, его допустимость нужно проверить отдельно.

Я бы вынесла выполнение подтверждённого действия в участок, который запускается после получения решения, и проверила повторяемость подготовки до паузы. Конкретную переработку графа эти строки не тестируют. Они помогают составить перечень мест, где нужен счётчик вызовов или другая наблюдаемая проверка.

Для чтения ошибок удобно сохранить различия в таблице:

Симптом Что установлено прогоном Следующий шаг диагностики
Пауза есть, get_state падает чекпоинтер не задан проверить конфигурацию хранения состояния
Command(resume=...) вызывает RuntimeError возобновление вызвано без чекпоинтера проверить сохранение и привязку запуска к потоку
Счётчик действия вырос после resume участок до паузы выполнился снова проверить побочные действия до interrupt
GraphRecursionError на коротком лимите путь не уложился в конфигурацию проверить переходы и обоснованность лимита

Увеличение recursion_limit не добавляет чекпоинтер. Настройка повтора не сохраняет состояние для подтверждения человека. Редьюсер списка не препятствует повторному внешнему действию. Эти механизмы встречаются в одном агенте, но проверять их удобнее отдельными минимальными опытами, каждый со своим наблюдаемым результатом.

Перед подключением к 1С я бы повторила аналогичный набор на функциях без внешних эффектов. Для параллельного участка проверила бы содержимое итогового состояния; для паузы сохранила бы счётчик до и после продолжения. В узле с повтором разместила бы наблюдение перед искусственным исключением. После этого можно отдельно проверять фактические вызовы сервиса и их допустимые повторы.

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

Четыре минимальных примера я повторила 05.10.2026 на LangGraph 1.2.12, Python 3.12.10, Windows 11: вывод совпал строка в строку. Другие выпуски библиотеки не проверяла; при повторении сохраните свою версию рядом с результатом.

Ни один из четырёх минимальных примеров не вызывает модель или 1С. ConnectionError("502") создан в Python вручную. Не измерялись расходы, задержки внешних сервисов или влияние повтора на документы базы. По списку строк можно подтвердить только повтор действий внутри функции узла.

Дополнительный вывод относится к конкретному графу с подтверждением. Значение 6 описывает успешный проход этого графа; универсальный лимит из него не получается. Счётчик RemediationAction показывает повтор создания объекта, без подтверждения повторного проведения документа или иной записи в 1С.

Успешный join проверен на двух ветвях с одноэлементными списками. Не проверяла универсальный порядок результатов, объединение сложных свидетельств и дедупликацию. operator.add задаёт конкатенацию списков; пригодность этого правила для вашего состояния требует отдельного решения.

Страницы документации открыты как пояснение механизмов. Они могут описывать более новый выпуск библиотеки, чем закреплённый опыт. Для конкретных сообщений исключений и чисел я использовала сохранённые прогоны.

📚 Источники

  • INVALID_CONCURRENT_GRAPH_UPDATE: пояснение конфликтующих обновлений и редьюсеров. Точный вывод InvalidUpdateError взят из минимального прогона.
  • GRAPH_RECURSION_LIMIT: пояснение остановки графа по лимиту. Значения 12, 3 и 6 относятся к приведённым опытам.
  • Use the graph API: справка по построению графа, RetryPolicy и настройкам запуска. Листинги с параметрами перенесены из проверочного файла для версии 1.2.12.
  • Interrupts и Persistence: пояснение паузы и сохранения состояния. Наблюдения без чекпоинтера и счётчик RemediationAction взяты из отдельного прогона графа с подтверждением.
  • Проверочный файл check_claims.py и сохранённый вывод на LangGraph 1.2.12: источник четырёх минимальных случаев. Вывод дополнительного опыта probe_langgraph.txt: источник наблюдений при паузе и возобновлении.
  • Предшественник на Infostart: LangGraph для 1С-разработчика: агент ждёт вашего «да» перед записью, стенд за 3 минуты (Ninel_S, 30.09.2026). Там предметом была сборка агента с паузой; здесь - сообщения ошибок и порядок повторного выполнения.

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

В архиве к статье - 13.4-companion.zip: check_claims.py с четырьмя минимальными графами, эталонный вывод output-langgraph-1.2.12.txt, чек-лист chek-list-grafa.md и README. Скрипт запускается без модели и без 1С; сравните четыре строки вывода со своим окружением. Чек-лист - для проверки чекпоинтера, лимита графа и действий перед паузой до подключения внешних сервисов.

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

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

LangGraph Python ИИ-агент RetryPolicy interrupt чекпоинтер ошибки 1С

См. также

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

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

15990 руб.

30.07.2026    19740    44    4    

39

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    21690    105    32    

90

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

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

15250 руб.

25.08.2025    77223    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    3911    12    9    

13

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

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

14640 руб.

07.08.2026    2229    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    1496    2    0    

2

Нейросети Разработчик Бесплатно (free)

Как автоматически создавать маркетинговые ролики для собственных IT-продуктов, используя ИИ? В предыдущей статье я рассказывал о Zapis — приложении для работы с речью и текстом. Теперь расширил его возможности: добавил конвейер создания видео, в котором ИИ-агент изучает материалы проекта, готовит сценарий, подбирает реальные скриншоты и пишет текст диктора. Zapis отвечает за озвучку, а Remotion — за анимацию и сборку. На примере обмена ПУТ на OneBase -> 1С:Бухгалтерия 3.0 покажу готовый 83-секундный ролик из восьми сцен. Разберём, как устроен процесс, зачем нужны настоящие скриншоты интерфейса, как синхронизируются речь и изображение и что сохраняется для повторной сборки после изменений в продукте. Исходный код и инструкции доступны в открытом репозитории Zapis.

06.11.2026    556    Ibrogim    2    

11

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

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

05.11.2026    7843    Iliaelagin    8    

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