Рабочее место 1С на Linux через WSL. Часть 5 - Современное лицензирование и серверная отладка
В предыдущих лабораторных работах мы развернули сервер 1С в WSL, настроили автоматизацию запуска служб и научились администрировать кластер через утилиту rac. Начиная с версии платформы 8.3.18, компания 1С существенно изменила правила игры: лазейка с бесплатным запуском сервера на Linux (до 12 пользователей и 1 рабочего процесса) была закрыта. Теперь сервер 1С на Linux в обязательном порядке требует лицензии. Однако разработчикам была предоставлена отличная альтернатива - бесплатная комьюнити-лицензия (лицензия разработчика). В этой статье мы подробно разберем, как активировать эту лицензию в Linux-окружении WSL, а также детально настроим современную HTTP-отладку, которая идеально работает сквозь сетевую границу между Windows (где запущен Конфигуратор) и WSL (где крутится сервер 1С).
Теоретическая часть
Эволюция лицензирования сервера 1С на Linux В старых версиях платформы (например, в используемой в первой лабораторной работе версии 8.3.16) сервер на Linux обладал уникальной технической возможностью: он позволял запускать один рабочий процесс rphost и обслуживать до 12 клиентских сеансов без проверки серверного ключа защиты. Это делало Linux идеальной площадкой для тестирования и домашней разработки, хотя компания 1С всегда подчеркивала, что юридически такое использование без лицензии не разрешено. В современных релизах платформы проверка лицензии на сервере Linux стала жесткой и бескомпромиссной. Без лицензии служба ragent просто не позволит создавать рабочие процессы для баз данных. Чтобы не лишать разработчиков удобной тестовой среды, фирма 1С запустила программу комьюнити-разработки. Теперь любой специалист с аккаунтом на портале 1С:ИТС может бесплатно получить официальную полнофункциональную лицензию разработчика, которая активируется как на клиентские места, так и на сервер 1С. Проблемы отладки в WSL: TCP vs HTTP Классическая отладка в 1С:Предприятии традиционно работала по протоколу TCP. При этом Конфигуратор и сервер обменивались данными напрямую через динамический пул портов (обычно в диапазоне 1560–1591). В условиях работы внутри WSL или Docker-контейнеров TCP-отладка превращается в кошмар администратора:
- Динамические порты: Конфигуратор на стороне Windows не знает, на каком именно порту сервер выделит сеанс отладки.
- Маршрутизация: Проброс целого диапазона портов из WSL наружу требует сложных сетевых манипуляций. Решением является переход на HTTP-отладку (доступную начиная с версии 8.3.7). При использовании HTTP-протокола все участники процесса отладки (сервер, клиент, конфигуратор) общаются через один фиксированный веб-адрес специальной службы - роутера отладки (dbgs). Это кардинально упрощает настройку сетевых экранов и отлично работает в WSL.
Пошаговая инструкция
Шаг 1. Установка утилиты лицензирования и активация
комьюнити-лицензии Для управления программными лицензиями в современных версиях платформы 1С используется утилита 1C:Enterprise Ring. Если вы устанавливали полную версию платформы, она уже присутствует в системе.
- Убедитесь, что у вас установлена локаль ru_RU.utf8 и настроен доступ к интернету из WSL (интернет необходим для связи с сервером лицензирования 1С).
- Для активации комьюнити-лицензии выполните команду запуска утилиты получения лицензий (путь может отличаться в зависимости от установленной версии платформы): /opt/1C/v8.3/x86_64/ring license activate --login "ВАШ_ЛОГИН_ИТС" --password "ВАШ_ПАРОЛЬ" --pin "ПИНКОД_КОМЬЮНИТИ_ЛИЦЕНЗИИ" --lic-file ~/lic.lic Примечание: Пинкод и данные авторизации ИТС можно бесплатно получить на официальном портале разработчиков 1С.
- Поместите полученный файл лицензии в каталог, где сервер 1С ищет лицензии по умолчанию (обычно /var/1C/licenses или /home/usr1cv8/.1cv8/1C/1cv8/conf/):
sudo mkdir -p /var/1C/licenses
sudo cp ~/lic.lic /var/1C/licenses/
sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses/
Шаг 2. Настройка HTTP-отладки на сервере 1С
Чтобы перевести сервер 1С в режим HTTP-отладки, нам потребуется запустить службу отладки dbgs на стороне Linux и указать серверу использовать именно этот роутер.
- Откройте конфигурационный файл службы сервера 1С. В зависимости от способа управления (SysVinit или Systemd) это файл /etc/init.d/srv1cv83 или конфигурационный юнит systemd.
sudo nano /etc/init.d/srv1cv83
- Найдите переменную SRV1CV8_DEBUG и установите её значение в 1 (это включает отладку в принципе): SRV1CV8_DEBUG=1
- Для перевода отладки на HTTP-режим нам необходимо запустить демон отладки dbgs со специальными параметрами. Добавьте или измените параметры запуска в конфигурационном файле /etc/default/srv1cv83 (или отредактируйте параметры запуска непосредственно в сценарии /etc/init.d/srv1cv83): # Указываем серверу использовать HTTP отладку и адрес роутера отладки SRV1CV8_ARGS="-debug -http -httpAddr http://127.0.0.1:1560" Параметр -httpAddr указывает, что служба отладки (роутер) будет принимать HTTP-запросы на порту 1560.
- Перезапустите сервер 1С:
sudo service srv1cv83 restart
- Проверьте, что порт роутера отладки успешно слушается системой: ss -tlnp | grep 1560 Вы должны увидеть, что процесс dbgs (или ragent) занял порт 1560 на локальном интерфейсе.
Шаг 3. Настройка отладки в Конфигураторе Windows
Теперь свяжем Конфигуратор, запущенный под Windows, с сервером отладки в WSL.
- Запустите Конфигуратор вашей информационной базы в Windows.
- Откройте меню «Сервис» - «Параметры» и перейдите на вкладку «Запуск 1С:Предприятия» - «Отладка».
- Установите переключатель протокола отладки в положение «HTTP».
- В поле «Адрес роутера отладки» укажите IP-адрес вашего WSL-окружения и порт
- Например: http://192.168.1.10:1560 (Используйте IP-адрес вашей WSL-системы, который мы определили на Шаге 4 первой лабораторной работы).
- Нажмите «Применить». Теперь Конфигуратор зарегистрируется на роутере отладки в WSL и будет ожидать подключений сеансов.
Практическое задание
Цель работы: Настроить связку между Windows-конфигуратором и сервером 1С в WSL с использованием комьюнити-лицензии и отладить серверный вызов по протоколу HTTP. Задание:
- ☐ Активируйте комьюнити-лицензию разработчика на вашем Linux-сервере в WSL.
- ☐ Включите режим HTTP-отладки на сервере 1С через редактирование конфигурационных файлов сервера и перезапустите службу srv1cv83.
- ☐ Настройте Конфигуратор на Windows-хосте на использование HTTP-отладки с адресом роутера из WSL.
- ☐ Откройте конфигурацию демонстрационной базы DemoDB.
- ☐ В модуле управляемого приложения найдите предопределенную процедуру ПриНачалеРаботыСистемы и установите на первой строке точку останова (клавиша F9).
- ☐ Запустите клиентское приложение из Конфигуратора (клавиша F5).
- ☐ Проверка результата: При запуске приложения выполнение должно приостановиться на вашей точке останова в Конфигураторе Windows, а в строке состояния отладки вы должны увидеть, что отладка успешно осуществляется по протоколу HTTP через WSL.
Проверьте себя
- Какое ключевое изменение в лицензировании сервера 1С на Linux произошло в современных версиях платформы по сравнению с версией 8.3.16? Ответ: В старых версиях (таких как 8.3.16) сервер на Linux мог работать без проверки лицензий при ограничении до 12 сеансов и 1 рабочего процесса. В современных версиях эта возможность закрыта, и сервер требует лицензию в любом случае.
- Что представляет собой комьюнити-лицензия 1С и кто имеет право на её бесплатное получение? Ответ: Это полнофункциональная лицензия для разработчиков, позволяющая легально использовать платформу 1С (клиентскую часть и сервер) для целей разработки и тестирования. Получить её бесплатно может любой зарегистрированный пользователь портала 1С:ИТС.
- В чем главное преимущество HTTP-отладки перед традиционной TCP-отладкой при разработке в WSL или Docker? Ответ: Традиционная TCP-отладка использует широкий диапазон динамических портов, которые трудно пробрасывать наружу из изолированного окружения WSL. HTTP-отладка работает через единый фиксированный порт роутера отладки (dbgs), что упрощает маршрутизацию сетевого трафика.
- Какая системная утилита платформы 1С отвечает за маршрутизацию отладочного трафика при использовании HTTP-протокола? Ответ: Роутер отладки (утилита dbgs), которая запускается на стороне сервера 1С и связывает отлаживаемые сеансы клиентов с конфигуратором.
- Какой параметр конфигурационного файла запуска сервера 1С на Linux отвечает за глобальное включение режима отладки? Ответ: Параметр SRV1CV8_DEBUG=1 в файле конфигурации /etc/init.d/srv1cv83.
Попробовать НОПик →
Проверить свой уровень бесплатно →