Software

Установка и обновление платформы 1С под Ubuntu

Установка

Даем супер-права, чтобы не вводить каждый раз sudo, и обновляю

# sudo -s
# apt update && sudo apt full-upgrade && sudo apt autoremove && sudo apt autoclean && sudo apt clean

Установка файлового менеджера mc и утилиты curl, которая нужна для работы с репозиторием postgres


# apt -y install mc curl

Lynx - консольный браузер для скачивания дистрибутивов 1С. (клавиша G - переход на сайт)

# apt install lynx 

Через lynx заходим на portal.1c.ru и скачиваем оттуда дистрибутивы в какую-нибудь папку. В моем случае deb версию, т.к. у меня Ubuntu

Далее распаковываем данный архив

$ tar -xzvf deb64.tar.gz

Устанавливаем пакеты через менеджер:

# dpkg -i 1c-enterprise-8.3.18.1289-common_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-server_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-ws_8.3.18-1289_amd64.deb

Даём созданному при установке 1С пользователю права на директорию с установленной платформой:

# chown -R usr1cv8:grp1cv8 /opt/1cv8

Ставим шрифты Microsoft, соглашаемся с лицензией при установке:

# apt install -y ttf-mscorefonts-installer

Для того, чтобы система "увидела" установленные шрифты, инсталлируем конфигуратор шрифтов:

# apt install -y fontconfig
# fc-cache –fv

Включение отладки на сервере 1С - отдельная история. В статье на сайте ИТС такая фраза:

"Конфигурационный файл /etc/sysconfig/srv1cv83 (для RPM-системы) используется для задания параметров запуска агента сервера «1С:Предприятия» с помощью скрипта /etc/init.d/srv1cv83. Если установка выполнялась для DEB-системы, то нижеперечисленные параметры следует редактировать в файле /etc/init.d/srv1cv83."

Ссылка на источник этой информации

Иногда в конфигураторе нужно поставить флаг "Искать предметы отладки на удаленном компьютере" и указать IP ServerSQL
Также в брэндмауэре отладочной машины нужно добавить правило на входящие порты 1560-1591

Ubuntu - это DEB-система.

Запускаем 1с сервер:

# cd /opt/1cv8/x86_64/8.3.18.1289 && ./srv1cv83 start

Проверим его состояние:

$ ./srv1cv83 status

(должно быть: Init script: STARTED. Ragent: RUNNING.)

Для управления данным экземпляром сервера как обычными службами выполним:

# ln -s /opt/1cv8/x86_64/8.3.18.1289/srv1cv83 /etc/init.d/srv1cv83

Важно! Для DEB систем флаг debug нужно прописывать прямо в этот файл /etc/init.d/srv1cv83 в процедуру buildCommandLine()

Активируем запуск сервера при загрузке системы:

# /lib/systemd/systemd-sysv-install enable srv1cv83

Проверим состояние службы (должна быть в состоянии active):

$ systemctl status srv1cv83

Важно! Если у вас отсутствует DNS-сервер, который будет раздавать имена, то нужно прописать имя сервера в хосты (файлик hosts) на клиентах, иначе не удастся подключиться с клиента 1с к серверу 1с:
# nano /etc/hosts

или для windows, если, например, вы установили оснастку консоли кластера 1С на другую win машину и пытаетесь создать базу, то ничего не получится, пока не пропишете IP и имена сервера 1С и сервера базы данных.
> notepad %windir%\system32\drivers\etc\hosts    (с повышением привилегий)
    xxx.xxx.xxx.xxx    servername

Установка PostgreSQL

Ставлю локализацию для нормального функционирования Postgres Pro Std:

# locale-gen en_US.UTF-8
# locale-gen ru_RU.UTF-8
# update-locale LANG=ru_RU.UTF8
# dpkg-reconfigure locales

Важно! Ставлю локаль по умолчанию RU!

Важно №2 было выше, повторяю! на сервере приложений, там где оснастка 1С, нужно в hosts прописать имя сервера и IP. Имя сервера нужно взять не выдуманное именно имя сервера, где крутится postgres

Скачаем скрипт для добавления стороннего репозитория от разработчиков СУБД. Обратите внимание, что PostgreSQL для 1С особенная сборка:

# curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-12/keys/pgpro-repo-add.sh

Выполним скрипт:

# sh apt-repo-add.sh

Установим саму СУБД (данная сборка создана на основе открытой PostgreSQL с патчами от фирм 1С и Postgres Professional):

# apt install -y postgrespro-1c-12

Проверим состояние службы (должна быть в состоянии active):

$ systemctl status postgrespro-1c-12

Меняем пароль учетной записи psql "postgres", созданной по умолчанию:

# -u postgres psql
postgres=# \password

Вводим новый пароль

Блокировка обновления пакетов (опционально)

$ sudo apt-mark hold libpq5
$ sudo apt-mark hold postgresql-client-10
$ sudo apt-mark hold postgresql-10

Удаление PostgreSQL если нужно

# systemctl stop postgrespro-1c-12
# apt-get --purge remove postgrespro\*
# apt-get purge postgrespro-1c-12
# apt-get autoremove postgrespro-1c-12
# rm -r /etc/postgrespro/
# rm -r /etc/postgresql-common/
# rm -r /var/lib/pgpro/
# userdel -r postgres
# groupdel postgres

Управление кластером 1С из консоли

Можно прямо с сервера проверить подключение постгресскуэль

# psql -U my_login -h 192.168.0.14 postgres

Перейдем в каталог платформы.

$ cd /opt/1cv8/x86_64/8.3.18.1289
$ ./ras --daemon cluster

Получаем ID кластера, далее используем его

$ ./rac cluster list

Список баз

$ ./rac infobase --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab summary list

Создаем админа кластера

$ ./rac cluster admin --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab register --name=admin --pwd=Secret1c --auth=pwd

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

$ ./rac infobase create --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab --create-database --name=test --descr=MyTestBaseOnLinuxPower 
--dbms=PostgreSQL --db-server=192.168.122.2 --db-name=test --locale=ru 
--db-user=postgres --db-pwd=SecretPass1c --cluster-user=admin --cluster-pwd=SecretPass1c --license-distribution=allow

Повторно смотрим список баз

$ ./rac infobase --cluster=8c80a5d2-ed8a-4ebe-af2d-07fbd16d02ab --cluster-user=admin --cluster-pwd=Secret1c summary list


На заметку. Сработала эта команда, когда была ошибка с порядком сортировки и региональными настройками:

$ su postgres pg_ctl initdb -D '/var/lib/pgpro/1c-12/data2 –locale=ru_RU.UTF-8'

Обновление платформы 1С

Через lynx заходим на portal.1c.ru и скачиваем оттуда дистрибутивы в какую-нибудь папку.

Распаковываем данный архив

$ tar -xzvf deb64.tar.gz

Устанавливаем пакеты через менеджер:

# dpkg -i 1c-enterprise-8.3.18.1289-common_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-server_8.3.18-1289_amd64.deb
# dpkg -i 1c-enterprise-8.3.18.1289-ws_8.3.18-1289_amd64.deb

Тормозим старую службу

$ systemctl stop srv1cv83

Запускаем 1с сервер:

# cd /opt/1cv8/x86_64/8.3.18.1289 && ./srv1cv83 start

Проверим его состояние:

$ ./srv1cv83 status

(должно быть: Init script: STARTED. Ragent: RUNNING.)

Нужно удалить старую ссылку /etc/init.d/srv1cv83

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

# ln -s /opt/1cv8/x86_64/8.3.18.1289/srv1cv83 /etc/init.d/srv1cv83

Важно! Для DEB систем флаг debug нужно прописывать прямо в этот файл /etc/init.d/srv1cv83 в процедуру buildCommandLine()

function buildCommandLine() {
    local cmdline="$SRV1CV8_BINDIR/ragent -daemon -debug"

Активируем запуск сервера при загрузке системы:

# /lib/systemd/systemd-sysv-install enable srv1cv83

Проверим состояние службы (должна быть в состоянии active):

$ systemctl status srv1cv83

Создадим папку для vrd-файла (если была публикация на веб-сервере):

# mkdir -p /var/www/1c/8.3.18.1289/demo

Создадим файл конфигурации apache:

# touch /etc/apache2/conf-available/demo.conf

Переходим в каталог платформы:

$ cd /opt/1cv8/x86_64/8.3.18.1289

Публикуем базу:

# ./webinst -apache24 -wsdir trade_sql -dir /var/www/1c/8.3.18.1520/trade_sql -connstr "Srvr=localhost;Ref=trade;" -confPath /etc/apache2/conf-available/trade_sql.conf

Перезагружаем веб-сервер:

# systemctl stop apache2
# systemctl start apache2


Если меняется скрипт бэкапа (в нем ссылка на платформу), нужно перезапустить таймер:

# systemctl stop backup_1c.timer
# systemctl start backup_1c.timer
# systemctl status backup_1c.timer

Идем в файл VRD публикации бухгалтерии и добавляем туда блок WS, чтобы были опубликованы веб-сервисы расширений. В БП в частности, в расширении есть веб-сервис по получению зарплатных затрат.
Файл VRD можно править обычным редактором MC, даже несмотря на какие-то странные симводы ^M, которые видны в редакторе. Просто добавляем после них и перезапускаем апач.

Файл лежит тут: /var/www/1c/[Номер платформы]/acc

<?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="/acc"
                ib="Srvr=localhost;Ref=acc;">
        <standardOdata enable="false"
                        reuseSessions="autouse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
        <analytics enable="true"/>
<ws
        enable="true"
        pointEnableCommon="true"
        publishExtensionsByDefault="true">
</ws>
</point>

Перезапуск Апач:

/etc/init.d/apache2 restart