📒 Туннель для 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. Все флаги и подробности — в документации, обновить клиент можно по инструкции.
Оставьте отзыв
Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста оставьте отзыв.
Помощь
Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов: