Сервис доступа к данным 1С для внешних систем
Жёлтый мост
Практика · Программисту 1С

Telegram-бот к файловой базе 1С без веб-публикации

Бот нужен, а база файловая: ни адреса, ни веб-сервера, ни службы. Разбираем, как отдать данные боту и не публиковать базу наружу.

Задача

Просьба звучит просто: пусть бот в Telegram показывает остаток по товару, долг клиента или статус заказа. Хозяин бизнеса хочет спрашивать с телефона, не открывая 1С.

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

Как это решают обычно

Опубликовать файловую базу на веб-сервере. Технически возможно: ставится IIS или Apache, база публикуется, поднимается HTTP-сервис. На практике для файловой базы это тяжелый путь: нужен постоянно работающий компьютер, белый IP или туннель, сертификат, и все это ради одного бота.

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

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

Туннель наружу. Проброс через готовый сервис туннелей. Быстро поднимается, но это именно то, чего обычно и пытались избежать: база становится доступна из интернета, и отвечать за это придется вам.

Как быстрее

Путь данных: база сама ходит наружу, бот обращается к сервису
1С: файловая базаостатки, долги, заказы
Обработка Жёлтого мостаоткрытый код, открыта в той же 1С
Шлюз onecdatalink.ruочередь заданий, ключи, маскировка
ИИ-ассистент или ваш ботпривычный ИИ-чат, бот на питоне, скрипт сайта

Обработка открывается в той же 1С, где работает бухгалтер, и сама обращается к сервису по исходящему HTTPS: есть ли задание. Задание приходит от вашего бота, выполняется внутри базы и возвращается ответом. Публиковать базу, ставить веб-сервер и открывать порты не нужно.

Бот при этом остается обычным ботом: он делает HTTP-запрос к сервису с ключом в заголовке и получает JSON. Никакой специфики 1С на его стороне нет.

Так выглядит ответ на вопрос бота про остаток: строки приходят в JSON, бот пишет их сообщением
НоменклатураСкладОстатокЦена
Профиль 40х20Основной320195
Саморез 4.2х16Основной18 4001
Грунтовка 10 лДальний0890

Как это сделать

1. Зарегистрируйтесь в кабинете, получите ключ, скачайте обработку под свою платформу.

2. Откройте обработку в 1С, вставьте ключ, нажмите старт. Пока окно открыто, база на связи.

3. В боте обращайтесь к API сервиса с этим ключом. Запрос пишется на языке запросов 1С, отбор задаете вы.

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

Что стоит знать заранее

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

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

Права у обработки те же, что у пользователя 1С, под которым она запущена. Для бота разумно завести отдельного пользователя с доступом только к нужным данным.

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

Проверьте на своей базе. Подключение занимает около пятнадцати минут: обработка из кабинета, ключ, готовый текст для ИИ. При регистрации даются три дня работы одной базы, карта не нужна.
Настроить у себя Другие задачи