📒 Туннель для 1С — база в интернете одной командой
База 1С стоит на компьютере в офисе, а поработать с ней нужно из дома, из командировки или показать её заказчику. Обычно выбирают между удалённым рабочим столом, VPN и публикацией базы на веб-сервере. Последний вариант самый удобный для пользователей — база открывается прямо в браузере, — но и самый хлопотный: нужно поставить Apache или IIS, подключить к нему модуль 1С, пробросить порт на роутере, получить «белый» IP и выпустить сертификат.
В tuna-cli 0.37 появилась команда tuna 1c, которая делает всё это сама. Одна команда — и база доступна по HTTPS-адресу:
tuna 1c "Моя база" --basic-auth="login:password"
Как это работает
У 1С нет собственного HTTP-сервера: веб-клиент и тонкий клиент по HTTP обслуживает модуль расширения веб-сервера, который загружается в Apache или IIS. tuna 1c берёт всю цепочку на себя:
- находит установленную платформу 1С и её модуль расширения веб-сервера;
- при первом запуске скачивает Apache httpd в свой кэш;
- запускает его на
127.0.0.1и публикует в нём базу; - открывает к этому веб-серверу HTTP-туннель.
Веб-сервер слушает только локальный адрес — наружу базу отдаёт туннель. Остановили команду — публикация пропала вместе с ним.
Быстрый старт
Один раз выберите установку 1С и базу в мастере:
tuna 1c setup
Мастер сохранит выбор в конфигурационный файл, и дальше базу можно публиковать без аргументов:
tuna 1c --basic-auth="login:password"
Базу можно указать и явно — именем из списка стартера 1С, каталогом файловой базы или строкой подключения к серверной:
tuna 1c "Моя база"
tuna 1c "C:\Bases\MyBase"
tuna 1c "Srvr=localhost;Ref=MyBase"
Веб-клиент и тонкий клиент
Откройте адрес туннеля в браузере — tuna перенаправит на /1c/, и вы попадёте в веб-клиент:
Для тонкого клиента в шапке интерфейса в терминале есть строка 1C client с готовым параметром запуска:
1cv8c.exe ENTERPRISE /WS"https://<адрес туннеля>/1c"
Тот же адрес можно добавить в список баз стартера как базу «На веб-сервере». Чтобы пользователям не пришлось менять ссылку и параметр /WS после каждого перезапуска, задайте постоянный адрес — поддомен (--subdomain=my-1c) или свой домен (--domain=1c.example.com).
База в интернете — закройте её
tuna 1c открывает базу всему интернету, и между посторонним и вашими данными остаётся только окно входа 1С. Поэтому публикацию стоит закрыть ещё на уровне туннеля — тогда лишний запрос до 1С просто не дойдёт:
| Флаг | Что делает |
|---|---|
--basic-auth="login:password" | Спрашивает логин и пароль раньше, чем запрос попадёт в 1С |
--key-auth="my-secret-key" | Пропускает только запросы с ключом в заголовке X-Token |
--cidr-allow="203.0.113.0/24" | Пускает только из указанных подсетей |
--rate-limit=20 | Ограничивает частоту запросов |
Если запустить команду без --basic-auth и --key-auth, tuna покажет предупреждение. И проверьте пароли самих пользователей базы: учётная запись без пароля, особенно с правами администратора, — это открытая дверь.
Все запросы к базе видны в инспекторе, так что всегда понятно, кто и когда к ней обращался.
Что понадобится
- Подписка tuna. На бесплатном тарифе опубликовать базу не получится.
- Windows x64. Команда есть только в сборке tuna для Windows x64, сама платформа 1С при этом может быть и 32-, и 64-битной.
- Компонент «Модули расширения веб-сервера» в установке 1С. По умолчанию он может быть не отмечен — в документации есть инструкция со скриншотами.
- Лицензия 1С, допускающая подключение через веб-сервер. Учебная версия не подойдёт, а для пробы хватит бесплатной лицензии для разработчиков.
Если 1С или база не находится, команда tuna 1c discover покажет, какие установки, модули и базы tuna видит на компьютере.
Кому пригодится
- Удалённым сотрудникам — бухгалтер или менеджер открывает базу из дома в браузере, без VPN и удалённого рабочего стола.
- Разработчикам и внедренцам 1С — показать заказчику доработку прямо со своего компьютера, не разворачивая отдельный стенд.
- Небольшим офисам — доступ к базе без «белого» IP, настройки роутера и собственного веб-сервера.
- Интеграциям — файл публикации
default.vrdможно править вручную: например, включить OData или HTTP-сервисы и отладить обмен с внешней системой.
Команда новая
Мы проверяли её на Windows 11 с 32-битной платформой 1С 8.3.27 и файловой базой. Серверные базы на рабочем кластере, 64-битная платформа и 1С 8.5 пока не проверены — полный список в документации. Если что-то не работает у вас, напишите нам — поможем разобраться.
tuna 1c доступна по подписке начиная с tuna-cli 0.37.0. Все флаги и подробности — в документации, обновить клиент можно по инструкции.
Leave feedback
If you enjoy using Tuna, or on the contrary you are not happy with something, please leave feedback.
Help
We value our users and carefully review every request. If you have any problems with tuna, please contact us in one of the following ways: