В статье мы рассмотрим подключение удалённых сотрудников к хранилищу конфигураций 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С. При этом серверу хранилища не нужна серверная лицензия.
Спасибо за внимание!
Для автозапуска после перезагрузки:
sudo systemctl enable crserver.service