Сервер хранилища конфигураций 1С на Linux

В статье мы рассмотрим подключение удалённых сотрудников к хранилищу конфигураций 1С используя сервер хранилища конфигураций 1С на Linux.















Общая информация




1С позволяет работать с одной конфигурацией группе разработчиков используя, так называемое, хранилище конфигураций. В качестве такого хранилища может выступать обычная сетевая папка, доступная каждому программисту. Именно конфигуратор подключается к хранилищу, и он должен иметь туда файловый доступ.




Про работу с хранилищем конфигураций вы можете почитать на сайте ИТС, если у вас есть туда доступ.




У удалённых сотрудников обычно нет доступа со своего рабочего мета к этой сетевой папке. И можно использовать два варианта решения этой проблемы:




  • Терминальный доступ. Удалённые сотрудники подключаются к терминальнику, с которого у них будет доступ к общей папке. Безусловно это удобный способ, но терминальный сервер стоит денег, и если у вас его нет, то только для этой задачи разворачивать его не целесообразно.



  • Сервер хранилища конфигураций 1С. К вашему сведению 1С предоставляет специальный сервер, который может подключаться к хранилищу и предоставлять хранилище по сети (по протоколу TCP). Вдобавок сервер хранилища может быть опубликован на web-сервере (Apache2 или IIS), это позволит подключаться удалённым сотрудникам к хранилищу по протоколу http.




Короче говоря, способы подключения конфигуратора к хранилищу можно представить в виде такой схемы:




Сервер хранилища конфигураций и варианты подключения к нему
Подключение конфигуратора к хранилищу конфигураций




И вот еще, нужно знать что пользователь, под которым работает сервер хранилища, должен иметь полный доступ к хранилищу конфигураций. Проще говоря, к каталогу, который используется как хранилище.




Установка сервера хранилища конфигураций




Запускаем установку платформы на Linux. Напоминаю, что начиная с версии 8.3.20 у нас для Linux единый установщик:




# ./setup-full-8.3.20.1914-x86_64.run




В процессе установки устанавливаем только Сервер хранилища конфигураций и Модули расширения веб-сервера.




Затем создадим пользователя, под которым будет работать сервер хранилищ конфигураций. И под этим пользователем создадим каталог, который будет хранилищем конфигураций:




# adduser csuser
# su - csuser
$ mkdir data1c




Вообще-то запустить сервер хранилища можно с помощью одной команды:




$ /opt/1cv8/x86_64/8.3.20.1914/crserver -port 8085 -d /home/csuser/data1c -daemon




Но лучше создадим службу systemd (это уже делается под пользователем root):




# nano /etc/systemd/system/crserver.service
[Unit]
Description=crserver_service
[Service]
Type=oneshot
ExecStart=/opt/1cv8/x86_64/8.3.20.1914/crserver -port 8085 -d /home/csuser/data1c -daemon
RemainAfterExit=yes
User=csuser
Group=csuser
[Install]
WantedBy=multi-user.target

# systemctl daemon-reload




Напоминаю, что пользователь под которым будет запускаться служба (csuser) должен иметь доступ к хранилищу (/home/csuser/data1c) на чтение и на запись.




Теперь вы можете запускать и останавливать службу сервера хранилища конфигураций 1С:




# systemctl stop crserver.service
# systemctl start crserver.service




Подключение к хранилищу по TCP




Открываем с помощью конфигуратора базу 1С. При этом, конфигуратор должен иметь доступ к серверу хранилища по сети (tcp). Затем создаём новое хранилище: «Конфигурация / Хранилище конфигурации / Создать хранилище«.




Создание хранилища конфигураций




В строке подключения пишем следующее:




tcp://ip-адрес:8085/test




Дальше придумываем пароль администратору хранилища. И смотрим что в хранилище появился каталог test:




$ ls -l data1c/test/
итого 52
-rw-r----- 1 csuser csuser 737280 июн 27 12:45 1cv8ddb.1CD
-rw-r----- 1 csuser csuser      0 июн 27 12:45 1cv8ddb.1CD.cfl
-rw-r----- 1 csuser csuser      0 июн 27 12:45 1cv8ddb.1CL.cfl
drwxr-xr-x 2 csuser csuser      2 июн 27 12:45 cache
-rw-r----- 1 csuser csuser      0 июн 27 12:45 cfgrepo.conf.cfl
drwxr-xr-x 5 csuser csuser      9 июн 27 12:45 data
-rw-r----- 1 csuser csuser     31 июн 27 12:45 ver
-rw-r----- 1 csuser csuser      0 июн 27 12:45 ver.cfl




Таким образом ведётся работа с хранилищем по протоколу tcp.




Настройка доступа к хранилищу по HTTP




Устанавливаем apache2:




# apt install apache2




Затем подгружаем к apache2 дополнительный модуль от 1С:




# nano /etc/apache2/apache2.conf
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.20.1914/wsap24.so"

# service apache2 restart




Создаём необходимые каталоги и конфиги:




# mkdir /var/www/crs
# touch /var/www/crs/index.html
# touch /var/www/crs/repo.1ccr
# chown -R www-data:www-data /var/www/crs/




Отредактируем repo.1ccr (srv1c-conf-store — это имя нашего сервера хранилища конфигураций 1С, т.е. подключаемся сами к себе):




# nano /var/www/crs/repo.1ccr
<?xml   version="1.0"   encoding="UTF-8"?>
<repository  connectString="tcp://srv1c-conf-store:8085" />




Исправим наш виртуальный хост:




# nano /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot "/var/www/html"
        AddHandler 1cws-process .1ccr

        Alias "/storage" "/var/www/crs/"
        <Directory /var/www/crs>
                DirectorySlash Off
                SetHandler 1cws-process
                ManagedApplicationDescriptor /var/www/crs/repo.1ccr
                Order allow,deny
                Allow from All
        </Directory>

        LogLevel info

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>




Перезапустим веб-сервер:




# service apache2 restart




Подключение к хранилищу по протоколу http




Из конфигуратора отключимся от хранилища и подключимся заново, но по http протоколу. Для подключения используем следующую строку:




http://ip-адрес/storage/repo.1ccr/test









Итог




Теперь вы знаете как можно дать удалённый доступ программистам 1С к хранилищу конфигураций используя специальный сервер от 1С. При этом серверу хранилища не нужна серверная лицензия.




Спасибо за внимание!



2022-06-28T12:27:01
Администрирование серверов