Сервер 1С Linux

Сегодня я бы хотел рассказать, как поднять сервер 1с на linux debian 9 с публикацией web-сервисов.
Что такое web-сервисы 1с?
Web-сервисы — это один из механизмов платформы, используемых для интеграции с другими информационными системами. Он является средством поддержки SOA (Service-Oriented Architecture) — сервис-ориентированной архитектуры, которая является современным стандартом интеграции приложений и информационных систем. По сути — это возможность создать html страницу с данными, к которой, потом можно обратиться любым другим приложением и забрать их.
Плюсы — работает быстро (даже при достаточно большом объеме данных), относительно удобно.
Минусы — ваш програмист 1с будет много и долго на вас ворчать, пока будет писать веб-сервис для вашей базы. Штука очень своеобразная в написании.
Я не буду рассказывать как написать веб-сервис… я расскажу как его опубликовать на Linux из консоли сервера, а так же немного про установку 1с сервера на Linux.
И так, у нас есть debian 9 netinst, приступаем:
Устанавливаем PostgresPro (Прошу заметить что он не бесплатный, и распространяется, только в рамках ознакомления с возможностями):
# apt-get update -y
# apt-get install -y wget gnupg2 || apt-get install -y gnupg
# wget -O — http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add —
# echo deb http://repo.postgrespro.ru/pgpro-archive/pgpro-11.4.1/debian stretch main > /etc/apt/sources.list.d/postgrespro-std.list
# apt-get update -y
# apt-get install -y postgrespro-std-11-server
# /opt/pgpro/std-11/bin/pg-setup initdb
# /opt/pgpro/std-11/bin/pg-setup service enable
# service postgrespro-std-11 start
# su — postgres
# /opt/pgpro/std-11/bin/psql -U postgres -c «alter user postgres with password ‘ВашПароль’;»
Скажем postgresql слушать все адреса а не только localhost
# nano /var/lib/pgpro/std-11/data/postgresql.conf
Раскомментируем и поменяем какие адреса слушать:

#listen_addresses = ‘localhost’

На

listen_addresses = ‘*’

Далее разрешим авторизоваться пользователям из нашей сети
# nano /var/lib/pgpro/std-11/data/pg_hba.conf
Изменим:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
на
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Более подробно о различных установках Postgres для 1с можно почитать .
Далее ставим 1с сервер.
Заливаем на сервер архив скачанный с сайта 1с (в моем случае deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.deb
еще пара мелочей:
# apt install imagemagick unixodbc libgsf-bin
Теперь установим Apache2
# apt install apache2
Через консоль администрирования или через клиент 1с создаем базу и заливаем нашу конфигурацию…
Теперь публикуем базу:
переходим в папку с 1с.
# cd /opt/1C/v8.3/x86_64/
./webinst -publish -apache24 -wsdir Test -dir /var/www/test/ -connstr «Srvr=10.7.12.108;Ref=test;» -confPath /etc/apache2/apache2.conf
Лезем в var/www/test/ и смотрим что там появилось.
# cd /var/www/test
# nano default.vrd
«
<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»v8.1c.ru/8.2/virtual-resource-system»
xmlns:xs=»www.w3.org/2001/XMLSchema»

xmlns:xsi=»www.w3.org/2001/XMLSchema-instance»
base=»/Test»
ib=»Srvr=192.168.188.150;Ref=Test;»>
<standardOdata enable=»false»
reuseSessions=»autouse»
sessionMaxAge=»20″
poolSize=»10″
poolTimeout=»5″/>
«
Это схемы которые нужны для запуска веб-клиента 1с… теперь в нашу тестовую базу можно зайти из браузера по адресу «http ://АдресСервера/Test» (регистр важен! это же линукс) или указать в клиенте «тип расположения базы» адрес «http ://АдресСервера/Test», и клиент будет работать с опубликованной базой.
НО
А что же на счет веб-сервисов? (в моей тестовой конфигурации их два: WebBuh для обмена данными с бухгалтерией и toplog интеграция с системой wms одноименной компании).
Что ж, добавим пару строк в наш vrd файлик…
<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»v8.1c.ru/8.2/virtual-resource-system»
xmlns:xs=»www.w3.org/2001/XMLSchema»
xmlns:xsi=»www.w3.org/2001/XMLSchema-instance»
base=»/TestWeb»
ib=»Srvr=IP_addres;Ref=TestWebServ»>
<standardOdata enable=»false»
reuseSessions=»autouse»
sessionMaxAge=»20″
poolSize=»10″
poolTimeout=»5″/>
# Вот тут начинается код который публикует веб-сервисы
<point name=»WebBuh» # Имя веб-сервиса в конфигураторе
alias=»Web_buh.1cws» # Web_buh.1cws — алиас веб-сервиса в браузере
enable=»true» # дальше я думаю строки и так понятны
reuseSessions=»autouse»
sessionMaxAge=»20″
poolSize=»10″
poolTimeout=»5″/>
<point name=»TopLog» # второй веб сервис
alias=»toplog.1cws» # toplog.1cws
enable=»true»
reuseSessions=»autouse»
sessionMaxAge=»20″
poolSize=»10″
poolTimeout=»5″/>
сохраним.
И теперь наш веб-сервис доступен по адресу «http ://АдресСервера/Test/Web_buh.1cws?»
Зачем надо было делать это руками?
Поскольку наш сервер без графической оболочки, запустить на нем конфигуратор — не получится, и соответственно выполнить публикацию штатными средствами. Удаленный же конфигуратор, который стоит на клиенте не публикует на сервере веб-сервисы. Поэтому нам приходится править конфиг вручную по шаблону описанному выше.
Скрипт для генерации .vrd — спасибо TihonV

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

Скачивание и подготовка файлов 1С

Для того чтобы начать установку 1С, надо подготовить дистрибутивы. Начнем с вопроса: «Для какой ОС мы подбираем 1С – для 32- или 64-битной?». После заходим на сайт, где компания 1С выкладывает дистрибутивы. Введя логин и пароль, заходим в раздел с дистрибутивами и там, найдя нужные нам в списке, сохраняем на компьютер следующие архивы:

  • Клиент 1С:Предприятие для DEB-based Linux-систем;
  • Сервер 1С:Предприятие для DEB-based Linux-систем.

Рис.1 Дистрибутивы для DEB-based Linux-систем

На Ubuntu используется формат файлов DEB. Но поскольку мы скачали с сайта архивы, надо все скачанные пакеты распаковать и переместить в один каталог. В результате должен получиться такой список файлов:

На этом этапе подготовка заканчивается и можно приступать непосредственно к установке 1С на Линукс.

Процесс установки 1С на Ubuntu

Чтобы установить 1С на Linux, необходимо открыть терминал («Приложения»>»Стандартные») и перейти в папку, где сложены все файлы.

Рис.2 Терминал с файлами

В этом нам поможет команда «cd» (пример использования – «cd /etc/apt»). После этого, необходимо запустить установку скачанных пакетов в определенном порядке. Для этого последовательно вводим следующие команды в запущенный терминал:

Рис.3 Установка скачанных пакетов При установке на Ubuntu могут возникнуть проблемы с отсутствием пакета «libwebkitgtk-1.0-0». Решить ее достаточно просто с помощью последовательного ввода команд в терминал «apt-get install libwebkitgtk-1.0-0» и «apt-get -f install».Рис.4 Установка на Ubuntu Бесплатная
консультация
эксперта Наталья Севорина Консультант-аналитик 1С Спасибо за Ваше обращение! Специалист 1С свяжется с вами в течение 15 минут.

Настройка 1С и ключей лицензии на Linux

После успешной установки основных дистрибутивов необходимо настроить настройки 1С под Linux таким образом, чтобы не возникало ошибок и конфликтов. Для этого в терминал последовательно вводим следующие команды:

Последняя команда выполняется продолжительное время, поэтому придется подождать. После выполнения всего перечня команд, в каталоге «/opt/1C/» появится необходимое программное обеспечение.

Рис.5 ПО установлено

В том случае, если вам нужно установить аппаратные ключи защиты HASP, скачайте дистрибутив и установите его. Для этого воспользуйтесь терминалом и введите последовательно следующие команды:

Создание базы 1С

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

  • «/opt/1C/v8.3/i386/ras —daemon cluster».

Для создания базы данных нам требуется идентификатор кластера. Его можно получить, введя команду:

  • «/opt/1C/v8.3/i386/rac cluster list».

Проверить перечень созданных баз можно командой:

  • «/opt/1C/v8.3/i386/rac infobase —cluster=ef89b672-c6a6-11e4-ea91-0800274e0291 summary list».

Для создания новой базы данных необходимо ввести довольно большую команду:

На эту команду должен быть получен ответ в виде идентификатора новой базы данных 1С.

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

Рис.6 Подключение к созданной базе 1С

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