Перейти к содержимому

Мост к агентам

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

У моста две половины, и обе нужны.

ПоловинаЧто делаетГде живёт
MCP-серверГоворит с агентом на его протоколе: отдаёт список инструментов и принимает вызовыОтдельный процесс на Node.js, запускает его агент
Пульт мостаДержит канал к серверу, исполняет вызовы в вашем сеансе, ведёт журналОбработка pw_Мост в 1С

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

  • Платформа 8.3.27 и выше — канал построен на WebSocket-клиенте платформы. Режим совместимости расширения при этом роли не играет.
  • Тонкий или толстый клиент на вашем компьютере. В веб-клиенте мост не работает.
  • Node.js — им запускается MCP-сервер. Если его нет, пульт скажет об этом и покажет команду установки под вашу операционную систему (winget install OpenJS.NodeJS.LTS, brew install node, sudo apt install nodejs npm) со ссылкой на страницу загрузки.
  • Библиотека стандартных подсистем — мост регистрируется её механизмом дополнительных отчётов и обработок.
  • Установленное расширение PrintWizard не ниже требуемой версии: мост зовёт его механизмы напрямую и без него не работает. Версию проверяет сама обработка, и при отказе БСП покажет текст администратору ещё при регистрации.

Публиковать базу на веб-сервере не нужно. Соединение открывает сама 1С, сервер слушает только 127.0.0.1, поэтому файловая база и тонкий клиент подключаются напрямую.

Мост поставляется отдельным файлом pw_Мост.epf — в состав расширения он не входит и обновляется независимо от него.

  1. Откройте в программе список дополнительных отчётов и обработок и добавьте файл pw_Мост.epf. Вид обработки — «Дополнительная обработка», наименование — «PrintWizard: мост к ИИ-агентам».
  2. У обработки одна команда — «Мост к ИИ-агентам», она открывает пульт.
  3. Назначьте команду тем пользователям, кто работает с внешним агентом.

Безопасный режим у обработки снят намеренно: в безопасном режиме платформа не разрешает исходящее соединение, а канал к серверу — это оно и есть.

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

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

СтраницаЧто на ней
ОсновнаяПодключение — адрес сервера, токен и ключ соединения; окружение — Node.js, npx, MCP-сервер и команда установки
Настройка агентаСпособ запуска сервера, каталог сервера, установка сервера, блок для .mcp.json и скилл агента
СообщениеОтправка произвольного сообщения серверу — проверить канал руками
ЖурналОбмен: какой инструмент агент вызвал, с чем и что получил

Адрес сервера по умолчанию — ws://127.0.0.1:7787, ключ соединения — pw-mcp; токен пульт выдаёт сам при открытии, на сеанс.

В блоке «Окружение» видно не просто «есть или нет», а что именно нашлось: версии Node.js и npx, а у сервера — версия пакета и состояние канала (свободен, занят этим сеансом или другим сеансом 1С). Кнопка «Состояние» в командной панели и ссылка «проверьте» в подсказке делают одно и то же: опрашивают окружение заново.

Сервер едет внутри обработки одним собранным файлом, поэтому доступ к реестру пакетов не обязателен — это важно для закрытого контура. Кнопка «Установить сервер» на странице «Настройка агента» спрашивает каталог и кладёт туда файл printwizard-mcp.cjs, после чего пульт сам переключает «Запуск сервера» на «Из каталога» и пересобирает блок настроек.

Способов запуска два, и от выбора зависит только текст блока — сервер в обоих случаях один и тот же:

СпособЧто попадает в блок
Из каталогаnode и путь к установленному файлу
Через npxnpx -y @printwizard/mcp — агент скачивает пакет из реестра сам

Блок выглядит так (порт и токен пульт подставляет свои):

{
"mcpServers": {
"printwizard": {
"command": "node",
"args": ["C:\\PrintWizard\\mcp\\printwizard-mcp.cjs"],
"env": {
"PRINTWIZARD_MCP_TOKEN": "...",
"PRINTWIZARD_MCP_PORT": "7787"
}
}
}
}

Перенесите блок в файл .mcp.json своего проекта — целиком или в существующий раздел mcpServers — и перезапустите агента. Ссылка «Сохранить в файл» отдаёт блок готовым файлом.

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

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

Наружу скилл выдаётся двумя путями, текст в обоих один:

  • файлом SKILL.md — ссылка «Сохраните» в блоке «Скилл агента» на странице «Настройка агента». Файл кладётся в каталог скиллов агента, у Claude Code это .claude/skills/printwizard. Такой скилл попадает в контекст агента сам, без вызова;
  • инструментом pw_bridge_skill — тот же текст агент получает вызовом. Этот путь всегда свежий: текст собирается в 1С в момент вызова, тогда как сохранённый файл может отстать от установленной версии.

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

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

  • токен не совпал — сервер отклоняет подключение. Значит, агент запущен со старым токеном: перенесите блок настроек в .mcp.json заново и перезапустите агента;
  • канал занят другим сеансом 1С — один сервер обслуживает один сеанс, иначе агент не знал бы, с чьей базой говорит. Закройте пульт в том сеансе либо поднимите для этого сеанса свой сервер на другом порту.

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

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

ИнструментЗачем
pw_bridge_statusСостояние связки: подключена ли 1С и что попросить у человека
pw_bridge_toolsАктуальный список инструментов подключённой 1С
pw_bridge_callВызов инструмента по имени из этого списка
pw_bridge_fetchДочитать крупный ответ кусками
pw_bridge_skillПравила работы с PrintWizard

pw_bridge_tools и pw_bridge_call нужны не только для подстраховки. Список инструментов приезжает с борта 1С уже после того, как агент запустил сервер, и клиенты, которые не перечитывают его по уведомлению, инструментов PrintWizard просто не видят. Для таких клиентов эта пара — единственный рабочий путь: эти два инструмента сервер объявляет сразу и всегда. Если агент уверяет, что инструментов PrintWizard у него нет, попросите его начать с pw_bridge_status.

Ответ, который не помещается в контекст агента, не обрезается: приходит сводка со ссылкой на снимок, и агент дочитывает его сам.

Это главное, что стоит знать до того, как включать мост.

  • Инструменты только читают. Ни один из них ничего не меняет — ни в базе, ни в схеме, ни в макете. Правки вы делаете руками в конструкторе.
  • Данные информационной базы наружу не уходят — инструменты дают метаданные, схему и документацию, но не содержимое таблиц.
  • Агент действует вашими правами. Канал живёт в вашем сеансе, отдельной роли у моста нет: что недоступно вам, недоступно и ему.
  • Сервер слушает только 127.0.0.1 и требует токен — подключение с другой машины невозможно, без токена сервер не пускает никого.
  • Канал живёт, пока открыт пульт. Закрытие формы разрывает соединение, и если в этот момент агент работает, пульт переспросит. Открытый пульт — и есть признак включённого моста.
  • Вызовы исполняются по очереди. Сеанс однопоточный: пока идёт печать или другая длительная операция, вызов ждёт, а не теряется.
  • Ответ уходит провайдеру модели агента. Это провайдер агента, а не PrintWizard: переписка идёт мимо 1С, и что в ней хранится, определяют настройки вашего агента. Про встроенную панель это описано отдельно — данные и приватность.

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

УровеньЧто сохраняется
КраткоУмолчание: вид события, инструмент, исход, длительность и размер; текст результата ужат
ПодробноК краткому добавляются аргументы вызова и тело ответа — режим разбора полётов
ВыключенЗаписи не ведутся

Журнал живёт, пока открыт пульт, и держит не больше заданного числа строк («Максимум строк», по умолчанию 500); лишние отсекаются снизу. Кнопка «Очистить журнал» чистит его целиком.

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

КодЧто случилось
NOT_READY1С не подключена к серверу либо порт занят чужой копией сервера
BUSYСеанс занят печатью или длинной операцией; вызов не потерян, он ждёт очереди
CHANNEL_LOSTКанал закрылся посреди вызова: закрыли пульт, перезапустили 1С
BAD_REQUESTВызов не по схеме: нет обязательного аргумента
TOOL_UNKNOWNТакого инструмента нет — имя придумано
TOOL_UNAVAILABLEИнструмент объявлен, но в этой конфигурации не работает
NO_FORMКлиентский инструмент вызван, когда ни одна форма PrintWizard не открыта. Это предупреждение, а не сбой
RESOURCE_GONEСнимок крупного ответа протух или сервер перезапускался — нужно повторить исходный вызов

Если агент говорит, что ничего не происходит, начните с журнала пульта: по нему видно, дошёл ли вызов до 1С.