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

Доступ для других программ

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». Команды выпуска и справочник выпущенного лежат здесь же:

Раздел «Vrio agent» в 1С

Откройте «Выпустить внешний токен». Три поля:

ПолеЧто задаёт
Метка (назначение токена)для чего он выпущен — по ней вы потом найдёте его в списке
Политика согласия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_onlytrusted
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 — по умолчанию до десяти минут. Если токен скомпрометирован и десять минут — это много, уменьшите значение и перезапустите службу заранее: задним числом настройка не поможет.

Если не работает​

Что видноЧто проверить
Программа не может подключиться, ответ 404VRIO_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 либо у выпустившего нет прав на нужные данные
Отозванный токен ещё работаетТак и задумано: до десяти минут по умолчанию
Токен перестал работать сам собойВ списке он «Просрочен» — вышел срок, заданный при выпуске. Выпустите новый
Не вижу токен, выпущенный коллегойСписок показывает только свои — отозвать чужой может только тот, кто его выпустил