Публикация баз данных 1С версий 8.3.21.xxxx на сервере под управлением Centos 8

vid/ 10 октября, 2022/ Шпаргалки сисадмина

Как обычно бывает появилась задача: Организация решила опуститься с «облаков» на землю и организовать свою собственную инфраструктуру для собственного «зоопарка» из макбуков, ноутбуков и системных блоков как под Windows, так и под Linux. Общее во всем этом работа в 1С-Торговля.

Решение: установить сервер 1С-Предприятие на Centos 8 c Postgres от 1С и перенести данные с «облаков» на этот сервер.

И вот тут обанаружилось наличие на складах ТСД, которые работали с 1С по http/ …

Что-ж приступаем:

  1. Устанавливаем web-сервер apache
    # dnf install httpd
  2. Запускаем web-сервер systemctl start httpd
  3. Включаем автозапуск сервиса systemctl enable —now httpd
  4. Настраиваем межсетевой экран. В моем случае подключение было необходимо в домашней зоне. firewall-cmd —permanent —zone=external —add-port=80/tcp —add-port=443/tcp firewall-cmd —reload
  5. перезагружаем сервер reboot
  6. Создаем каталог где будет храниться публикация базы mkdir -p /var/www/html/<my_public_base1c>
  7. Публикуем базу 1С Строка инициализации сервера /opt/1cv8/x86_64/8.3.21.xxxx/webinst -publish -apache24 -wsdir <my_alias_public_base1c> -dir /var/www/html/<my_public_base1c> -connstr «Srvr=<name server1c>;Ref=<name base1c>;» -confpath /etc/httpd/conf/httpd.conf Строка инициализации для файловой базы /opt/1cv8/x86_64/8.3.21.xxxx/webinst -publish -apache24 -wsdir <my_alias_public_base1c> -dir /var/www/html/<my_public_base1c> -connstr «File=/opt/1Cbase;» -confpath /etc/httpd/conf/httpd.conf где
<my_alias_public_base1c>алиас, который нужно будет добавить к адресу сервера для доступа к этой базе
/var/www/html/<my_public_base1c>путь к публикации базы, где будет располагаться .vrd файл с описанием подключения к базе через web
File=/opt/1Cbase;строка подключения файловой базы
Srvr=<name server1c>;Ref=<name base1c>;строка подключения серверной базы

Например:

имя сервера server1c.itmedik.local (возможно указание IP-адреса)

имя базы = it2022

версия 1С 8.3.21.1484

алиасом к базе выбрали itmedik2022

каталог к публикации it22

тогда строка инициализации будет следующей:

/opt/1cv8/x86_64/8.3.21.1484/webinst -publish -apache24 -wsdir itmedik2022 -dir /var/www/html/it22 -connstr «Srvr=server1c.itmedik.local;Ref=it2022;» -confpath /etc/httpd/conf/httpd.conf
Обращаю внимание, что имя сервера должно быть полным как в hostname

  1. Перезагружаем сервер и проверяем работу сервиса по адресу: http://<name server1c>/<my_alias_public_base1c> Для строки инициализации из примера будет выглядеть так: http://server1c.itmedik.local/itmedik2022

С публикацией базы проблем как бы и нет. Есть описание и на сайте 1С и на других сайтах, а вот что делать еслив конфигурации есть дополнительные web — сервисы?

Мне достался ТСД в настройках которого было прописано:

http://<адрес обрачного сервера>/<алиас базы>/ws/datawobileexch

смотрим содержимое /etc/httpd/conf/httpd.conf и видим добавленные там строки
# 1c publication
Alias «/itmedik2022» «/var/www/html/it22/»
<Directory «/var/www/html/it22/»>
   AllowOverride All
   Options None
   Require all granted
   SetHandler 1c-application
   ManagedApplicationDescriptor «/var/www/html/it22/default.vrd»
</Directory>

Смотрим файл /var/www/html/it22/default.vrd

<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»
               xmlns:xs=»http://www.w3.org/2001/XMLSchema»
               xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»
               base=»/itmedik2022″
               ib=»Srvr=server1c.itmedik.local;Ref=it2022;»>
       <standardOdata enable=»true»
                       reuseSessions=»autouse»
                       sessionMaxAge=»20″
                       poolSize=»10″
                       poolTimeout=»5″/>
       <analytics enable=»true»/>
</point>

Тоже как бы все понятно, но нет ни какого ws

Специалист 1C сказал, что в конфигурации базы есть сервис DataMobileExch с алиасом wsDMExch.

В результате поисков файл default.vrd привели к следующему виду:

<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»
               xmlns:xs=»http://www.w3.org/2001/XMLSchema»
               xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»
               base=»/itmedik2022″
               ib=»Srvr=server1c.itmedik.local;Ref=it2022;»>
       <ws>
                              <point name=»DataMobileExch»
                               alias=»wsDMExch.1cws»
                               enable=»true»
                               reuseSessions=»dontuse»
                               sessionMaxAge=»20″
                               poolSize=»10″
                               poolTimeout=»5″/>
       </ws>
       <standardOdata enable=»true»
                       reuseSessions=»autouse»
                       sessionMaxAge=»20″
                       poolSize=»10″
                       poolTimeout=»5″/>
       <analytics enable=»true»/>
</point>

После перезапуска сервера и замены в настройках ТСД облачного сервера на локальный сервис ТСД заработал

Поделиться этой записью