Доступ для других программ
Vrio умеет не только разговаривать с человеком, но и работать инструментом для другой программы — например для стороннего ИИ-агента, который решает свою задачу и по ходу дела обращается к вашей 1С.
Механизм такой: администратор включает у службы отдельный вход, сотрудник выпускает себе внешний токен, отдаёт его сторонней программе, и та работает с 1С — с правами того сотрудника, который токен выпустил, и ни на шаг шире.
Возможность входит в бесплатную редакцию.
Права не расширяются
Внешний токен — это делегирование, а не повышение прав. Программа, получившая токен, видит и может ровно то, что видит и может человек, который его выпустил. Если ему в 1С закрыт раздел, он закрыт и для программы.
Отсюда практическое правило: выпускать токен должен тот, чьими правами вы согласны поделиться. Токен, выпущенный администратором, отдаёт наружу права администратора.
Шаг 1. Включить вход у службы
По умолчанию он выключен, и это первое, обо что спотыкаются: токен выпускается, а подключиться по нему не выходит.
В .env на сервере:
VRIO_EXTERNAL_ENABLED=true
и перезапустить службу — docker compose restart agent. После этого служба принимает подключения по
адресу /mcp.
Два необязательных ограничителя:
# потолок на срок жизни токена, в секундах; 0 — без потолка
VRIO_EXTERNAL_TOKEN_MAX_TTL_S=0
# как быстро отозванный токен перестаёт работать, в секундах; по умолчанию 600
VRIO_EXTERNAL_REVOCATION_CACHE_TTL_S=600
Шаг 2. Выдать сотруднику роль
Выпускать токены может только обладатель роли «Vrio: выпуск внешних токенов»
(Vrio_IssueExternalTokens). Роль выдаётся отдельно и не входит в обычный набор пользователя
агента — это сделано намеренно: она отдаёт доступ к 1С наружу.
Выдаётся она так же, как остальные роли расширения: сначала в профиле групп доступа, затем в Конфигураторе. Порядок важен — см. раздел про роли в инструкции по установке.
Шаг 3. Выпустить токен
В 1С: раздел «Vrio agent». Команды выпуска и справочник выпущенного лежат здесь же:

Откройте «Выпустить внешний токен». Три поля:
| Поле | Что задаёт |
|---|---|
| Метка (назначение токена) | для чего он выпущен — по ней вы потом найдёте его в списке |
| Политика согласия | trusted — потребитель распоряжается согласием сам; read_only — только чтение |
| Срок, дней (0 = бессрочно) | через сколько дней перестанет действовать |
Форма открывается на trusted — на более широкой из двух политик. read_only стоит выбирать по
умолчанию и переключаться сознательно: trusted нужен, только когда сторонняя программа должна менять
данные, — и тогда подтверждения ложатся на неё, а не на вас.
Метку не пропускайте. Она единственное, по чему в списке видно, кому и зачем токен выдавался; строка без метки через полгода не значит ничего.
После нажатия «Выпустить токен» форма покажет две строки: сам токен — его нужно скопировать сразу — и Nonce, короткий идентификатор для отзыва.

Токен показывается один раз. В открытом виде он нигде не хранится: в базе остаются только его отпечаток и сведения о выпуске. Потеряли — выпускайте новый, восстановить нельзя.
Шаг 4. Подключить программу
Vrio принимает подключения по MCP (Model Context Protocol) — открытому протоколу, через который ИИ-агенты подключают внешние инструменты. Его понимают Claude Code, Codex и другие программы с поддержкой MCP. Модель Vrio в этой схеме не участвует: рассуждает сторонний агент, а Vrio даёт ему инструменты для работы с 1С.
Программе нужны три значения:
| Что | Значение |
|---|---|
| Адрес | https://<адрес службы>/mcp/ — с косой чертой в конце |
| Транспорт | Streamable HTTP; в настройках программ обычно называется http |
| Заголовок | Authorization: Bearer <токен> |
Указывайте адрес с косой чертой в конце. На /mcp без неё служба отвечает перенаправлением на
/mcp/. Claude Code его проходит, но за обратным прокси перенаправление может увести на обычный HTTP,
и тогда подключение не состоится.
Токен храните в переменной окружения, а в настройках ссылайтесь на неё. Тогда файл настроек
можно положить в репозиторий проекта, и токен туда не попадёт. В примерах ниже переменная называется
VRIO_TOKEN; задайте её перед запуском программы.
Если программа работает не на сервере службы, подключайте её по HTTPS. Токен передаётся в заголовке каждого запроса, и по обычному HTTP он идёт по сети открытым текстом. Подойдёт тот же обратный прокси с сертификатом, что и для мессенджеров.
Claude Code
В каталоге проекта:
claude mcp add --scope project --transport http vrio https://vrio.company.ru/mcp/ \
--header 'Authorization: Bearer ${VRIO_TOKEN}'
Команда создаст в проекте файл .mcp.json:
{
"mcpServers": {
"vrio": {
"type": "http",
"url": "https://vrio.company.ru/mcp/",
"headers": {
"Authorization": "Bearer ${VRIO_TOKEN}"
}
}
}
}
Кавычки в команде одинарные намеренно: в файл должна попасть сама запись ${VRIO_TOKEN}, а значение
Claude Code подставит из окружения при запуске. При первом запуске в этом проекте Claude Code спросит,
подключать ли сервер из .mcp.json, — подтвердите. Состояние подключения показывает
claude mcp list.
Codex
codex mcp add vrio --url https://vrio.company.ru/mcp/ --bearer-token-env-var VRIO_TOKEN
Команда допишет в ~/.codex/config.toml:
[mcp_servers.vrio]
url = "https://vrio.company.ru/mcp/"
bearer_token_env_var = "VRIO_TOKEN"
В файле остаётся только имя переменной. Сам токен Codex читает из окружения при каждом запуске.
Другие программы
Ищите в настройках программы добавление MCP-сервера по адресу (типы HTTP или Streamable HTTP) и впишите значения из таблицы выше.
Что программа сможет делать
Программа получает инструменты сервера 1С. Какие из них ей доступны, зависит от политики и возможностей токена:
| Инструмент | Что делает | read_only | trusted |
|---|---|---|---|
run_query | выполняет запрос 1С к данным, только чтение | да | да |
read_object | читает все реквизиты и табличные части одного объекта | да | да |
fts_search | ищет по базе полнотекстовым поиском | да | да |
job_status | сообщает состояние запущенного фонового задания | да | да |
eval_server | вычисляет одно выражение на сервере 1С в безопасном режиме | при возможности eval | при возможности eval |
exec_server | выполняет обработку на сервере 1С | нет | при возможности exec |
Форм, HTML-страниц и операций на клиенте нет: у программы нет окна 1С, в котором их показать.
Подтверждений тоже нет. С политикой trusted программа выполняет обработки на сервере сразу, не
спрашивая человека. Каждый вызов при этом записывается в журнал действий так же, как действия агента
в чате.
Сотруднику, выпустившему токен, не нужно сидеть в 1С. Программа работает через его канал связи с базой. Этот канал 1С открывает при входе сотрудника и поддерживает регламентным заданием для каждого, у кого есть роль «Пользователь агента». Поэтому роль у выпустившего должна оставаться: после её снятия регламентное задание закроет канал, и токен перестанет работать.
Шаг 5. Список выпущенных токенов
В 1С: раздел «Vrio agent» → «Vrio: внешние токены». Это учёт всего, что было выпущено, и единственное место, где токен отзывается.
Каждый видит только свои токены. Список отфильтрован по тому, кто их выпустил, — и у администратора он тоже показывает только его собственные. Это не недосмотр: токен отдаёт наружу права конкретного человека, поэтому распоряжаться им должен он. Отзыв, кроме того, перепроверяется на сервере, так что чужой токен нельзя отозвать и в обход списка.

Колонки подписаны в шапке:
| Колонка | Что означает |
|---|---|
| Метка | то, что задали при выпуске |
| Политика согласия | trusted или read_only |
| Возможности | делегированные возможности, например exec,eval,code_view |
| Срок действия | дата и время, после которых токен перестанет приниматься |
| Состояние | «Активен», «Просрочен» или «Отозван» |
«Просрочен» — это вышедший срок действия, тот самый, что задали при выпуске. Токен больше не принимается, хотя его никто не отзывал. Отзыв важнее срока: отозванный так и остаётся «Отозван», даже когда срок вышел.
Срок показан датой и в вашем часовом поясе. Хранится он числом секунд по Гринвичу, но в списке пересчитан на время сеанса, так что сравнивать с часами на стене можно напрямую. У бессрочного токена (при выпуске указали ноль дней) ячейка пустая — заканчиваться нечему.
Самого токена в списке нет и быть не может: в базе хранится только его отпечаток. Посмотреть выпущенное значение нельзя — ни вам, ни администратору.
Шаг 6. Отозвать, когда перестало быть нужным
Выберите строку и нажмите «Отозвать». 1С переспросит и погасит токен.
Строка при этом остаётся — она лишь помечается отозванной. Удаления нет намеренно: запись о том, что токен выпускался и когда был погашен, нужна ровно тогда, когда разбираются, кто и через что обращался к базе.
Отзыв действует не мгновенно, хотя вопрос в 1С обещает обратное. И новые подключения, и уже
открытые сессии узнают о нём в пределах VRIO_EXTERNAL_REVOCATION_CACHE_TTL_S — по умолчанию до
десяти минут. Если токен скомпрометирован и десять минут — это много, уменьшите значение и
перезапустите службу заранее: задним числом настройка не поможет.
Если не работает
| Что видно | Что проверить |
|---|---|
| Программа не может подключиться, ответ 404 | VRIO_EXTERNAL_ENABLED=true в .env и перезапуск службы после правки |
Ответ 401 unauthorized | Токен скопирован не целиком, переменная VRIO_TOKEN не задана в окружении программы или вышел срок токена |
Ответ 403 revoked | Токен отозван |
Ответ 403 unauthorized | Вставлен не внешний токен, а какой-то другой. Либо служба работает в режиме VRIO_AUTH_MODE=static, а внешние токены принимаются только в режиме signed; комплект поставки настроен на signed |
Ответ 503 no_server_channel | Служба не видит связи с базой у сотрудника, выпустившего токен: база не подключена к службе, у сотрудника снята роль «Пользователь агента» или регламентное задание Vrio выключено |
| Ответ 307 или программа не подключается, хотя служба отвечает | Адрес указан без косой черты в конце: нужен /mcp/, а не /mcp |
| Команды «Выпустить внешний токен» нет в 1С | Роль «Vrio: выпуск внешних токенов» не выдана или выдана только в профиле |
| «Нет прав на выпуск внешних токенов» при нажатии | Команда видна, а роли нет. У пользователя с полными правами 1С она видна всегда, независимо от ролей расширения, — выдайте роль по шагу 2 |
| Токен принят, но программа почти ничего не может | Политика read_only либо у выпустившего нет прав на нужные данные |
| Отозванный токен ещё работает | Так и задумано: до десяти минут по умолчанию |
| Токен перестал работать сам собой | В списке он «Просрочен» — вышел срок, заданный при выпуске. Выпустите новый |
| Не вижу токен, выпущенный коллегой | Список показывает только свои — отозвать чужой может только тот, кто его выпустил |