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

📒 Туннель для 1С — база в интернете одной командой

· 4 мин. чтения

База 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. находит установленную платформу 1С и её модуль расширения веб-сервера;
  2. при первом запуске скачивает Apache httpd в свой кэш;
  3. запускает его на 127.0.0.1 и публикует в нём базу;
  4. открывает к этому веб-серверу 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/, и вы попадёте в веб-клиент:

Веб-клиент 1С, открытый по адресу туннеля

Для тонкого клиента в шапке интерфейса в терминале есть строка 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 – обязательно свяжитесь с нами одним из способов: