Как установить PostgreSQL для работы с 1С
В панель

Как установить PostgreSQL для работы с 1С

В тексте рассказываем, как шаг за шагом установить PostgreSQL совместно с 1С на ОС Windows и Linux.

PostgreSQL — это объектно-реляционная СУБД, которая обладает широкой функциональностью и высокой производительностью. Открытый исходный код и бесплатный доступ делает ее подходящим решением для работы с 1С.

Перед установкой советуем ознакомиться с системными требованиями к конфигурации сервера.

Если не хотите настраивать серверы самостоятельно, воспользуйтесь готовыми серверами Selectel для 1C. Мы возьмем на себя настройку, оптимизацию производительности, резервное копирование и обслуживание инфраструктуры, чтобы вы могли полностью сосредоточиться на бизнес-задачах.

Установка на Windows

Рассмотрим клиент-серверный вариант работы 1С на Windows. Для этого установим серверы с платформой:

  • Windows Server 2022 с 1С:Предприятием 8.3,
  • Windows Server 2022 с СУБД PostgreSQL.

Подготовка сервера для 1С

После установки Windows Server настроим ОС, чтобы обеспечить корректную работу с дополнительным ПО.

Включаем сетевое обнаружение

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

Открываем порты

Для подключения пользователей с других устройств используются порты 1540, 1541 и 1560-1591. Чтобы их открыть, переходим в Брандмауэр Защитника WindowsДополнительные параметрыПравила для входящих подключений и нажимаем Создать правило. Добавляем туда параметры. 

  • Тип правила: для порта.
  • Протоколы и порты: протокол TCP / порт 1540.
  • Действия: разрешить подключения.
  • Профиль: доменный, частный и публичный.
  • Имя: любое.

Аналогично создаем правила брандмауэра для оставшихся портов.

Установка сервера 1С

На этом шаге необходимо учесть несколько важных моментов, о которых расскажем ниже. В остальном процесс инсталляции ничем не отличается от установки обычного приложения на ОС Windows.

При установке сервера 1С всплывает окно с перечнем компонентов, они могут отличаться в зависимости от дистрибутива. В нашем примере выберем обязательные и необязательные компоненты. 

Обязательные компоненты 1С: 

  • 1С:Предприятие 8;
  • сервер 1С:Предприятие 8;
  • администрирование сервера 1С:Предприятия.

Необязательные компоненты 1С:

  • 1С:Предприятие — тонкий клиент;
  • 1С:Предприятие — тонкий клиент, файловый вариант;
  • модули расширенного веб-сервиса.

Устанавливаем флаг в поле Установить сервер 1С:Предприятия 8 как сервис Windows, выбираем Создать пользователя USR1CV8 и указываем новый пароль.

При возникновении предупреждения «Ошибка при запуске службы “Агент сервера 1С:Предприятие”…» вручную запускаем указанную службу из консоли управления службами и нажимаем Пропустить в окне ошибки.

После установки переходим в директорию ../1cv8/version_1C/bin, где version_1C — версия устанавливаемого дистрибутива 1С. Запускаем файл RegMSC.bat, чтобы зарегистрировать утилиту администрирования серверов.

Подготовка сервера для PostgreSQL

Отключаем IPv6

Советуем отключить работу протокола IPv6, чтобы избежать возможных ошибок. Если, конечно, вы не используете его в своей инфраструктуре.

В Windows Server 2022 переходим в ПараметрыСеть и ИнтернетEthernetНастройка параметров адаптераСетьСвойства и снимаем флаг с параметра IP версии 6 (TCP/IPv6).

Включаем сетевое обнаружение

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

Включаем службу «Вторичный вход в систему»

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

Установка и настройка PostgreSQL

Устанавливаем PostgreSQL

Скачиваем и запускаем дистрибутив PostgreSQL для 1C. Установка производится так же, как и обычная программа на ОС Windows, поэтому опишем лишь основные моменты.

  1. На этапе Компоненты устанавливаемой программы выбираем все доступные параметры.
  1. В параметрах сервера меняем Локаль на ru-RU, задаем имя суперпользователя и его пароль.
Локаль — это набор данных, указывающий на формат даты и времени, отображение валют, используемый язык и другие региональные данные.

Суперпользователь — это имя пользователя внутри СУБД, а не сервиса. Из соображений безопасности пароль не должен быть таким же, как у сервиса PostgreSQL.
  1. Далее выбираем Провести оптимизацию параметров. Программа автоматически рассчитает объем ресурсов, который будет выделяться для работы сервера PostgreSQL.

Устанавливаем pgAdmin 4

Для удобной работы с базой данных можно установить графическую консоль pgAdmin 4. 

Чтобы изменить язык интерфейса на русский, переходим в настройки, нажав на верхней панели File → Preferences. В разделе MiscellaneousUser language выбираем Russian в раскрывающемся меню. 

Подключаем обслуживание базы данных

PostgreSQL содержит две утилиты для создания резервных копий данных — pg_dump и pg-dumpall.

  • Команда pg_dump сохраняет набор SQL-команд в файл, который создает полную копию скопированной базы.
  • Команда pg_dumpall сохраняет резервную копию всех БД и данных уровня кластера — например, роли, определения табличных пространств и другие.

Использовать эти утилиты можно в планировщике событий и pgAdmin 4. Первый вариант позволяет автоматизировать процесс создания резервных копий БД. Второй вариант не поддерживает встроенный планировщик событий, поэтому резервные копии каждый раз нужно создавать вручную.

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

  • VACUUM — для освобождения пространства от удаленных записей. После удаления строк из таблицы место не освобождается немедленно. Вместо этого оно помечается как доступное для повторного использования, но не возвращается в пользование ОС. Команда VACUUM чистит это пространство, делая его доступным.
  • ANALYZE — для сбора статистики о данных в таблице. Полученная информация помогает оптимизатору принимать более эффективные решения при выполнении запросов.
  • REINDEX — для перестроения индексов в базе данных, которые ускоряют поиск и сортировку данных. Периодическое выполнение предотвращает потерю производительности идексов при их использовании.
  • CLUSTER — для физической пересортировки данных в таблице на основе индекса. Он улучшает производительность запросов, которые часто используют определенные индексы.

Создание информационной базы 1С на PostgreSQL

Чтобы создать базу данных в PostgreSQL, переходим в оснастку Администрирование серверов 1С:Предприятия. На левой панели находим Информационные базы и создаем новую базу с необходимыми параметрами.

  • Имя — имя информационной базы на сервере 1С.
  • Сервер баз данных — имя или IP-адрес SQL-сервера, где будет располагаться база данных.
  • Тип СУБД — в нашем случае, PostgreSQL.
  • База данных — имя базы данных, создаваемой на SQL-сервере.
  • Пользователь и пароль БД — имя и пароль пользователя, задаваемые при установке PostgreSQL (имя по умолчанию — postgres).
  • Создавать базу данных в случае ее отсутствия — создание БД на сервере PostgreSQL, если до этого такой базы не существовало.

С помощью pgAdmin 4 можно проверить, что база данных находится на сервере PostgreSQL.

Терминальный сервер

Терминальный сервер 1С — это сервер, который предоставляет удаленный доступ к 1С:Предприятию. Ему не нужны мощные клиентские устройства —  вся работа будет выполняться на сервере.

Для подключения терминального сервера 1С в Windows Server, выполним несколько шагов.

  1. В Диспетчере серверов нажимаем Добавить роли и компоненты.
  2. Выбираем тип установки сервера: Установка ролей и компонентов.
  3. В качестве роли указываем Службу удаленных рабочих столов.
  4. На вкладке Службы ролей выбираем Лицензирование удаленных рабочих столов и Узел сеанса удаленных рабочих столов.
  5. Настраиваем пользовательский доступ к серверу в разделе диспетчера серверов СредстваУправление компьютеромЛокальные пользователиПользователи.
  6. Всех созданных пользователей добавляем в группу Пользователи удаленного рабочего стола.
  7. В разделе диспетчера серверов СредстваЛокальная политика безопасностиЛокальные политикиНазначение прав пользователяРазрешить вход в систему через службу удаленных рабочих столов добавляем пользователей или их группы.

Теперь пользователи могут подключаться к терминальному серверу и удаленно работать с программой 1С:Предприятие. 

Установка на Linux

Рассмотрим клиент-серверный вариант работы 1С на Linux. Для этого подготовим сервер для установки 1С:Предприятие 8.3 и СУБД PostgreSQL с ОС Debian 12. С подробной инструкцией по установке и настройке ОС Debian можно ознакомиться здесь.

Подготовка сервера

Подключаем репозиторий

Перед началом установки 1С и ее компонентов подключаем репозиторий, в котором лежат необходимые файлы. В файл /etc/apt/sources.list добавляем следующую строку: 


    deb http://ftp.ru.debian.org/debian sid main contrib non-free

После изменения файла sources.list обновляем информацию о состоянии пакетов командой:


    # sudo apt-get update

Устанавливаем дополнительные пакеты

Перед установкой 1С устанавливаем дополнительные пакеты:


    # apt-get install imagemagick unixodbc ttf-mscorefonts-installer
  • imagemagick — набор программ для чтения и редактирования графических файлов;
  • unixodbc — диспетчер драйверов для ODBC;
  • ttf-mscorefonts-installer — набор шрифтов Microsoft.

Устанавливаем локаль

Для корректной установки сервера 1С на Linux следует использовать российскую локаль. Чтобы проверить актуальную локаль в системе, воспользуемся командой:


    # locale

Если ваша ОС использует не ru_RU.UTF-8, ее необходимо сгенерировать и выставить как локаль по умолчанию.

Список локалей, доступных для установки, перечислен в файле /etc/locale.gen. В нем необходимо раскомментировать строку ru_RU.UTF-8. После этого для генерации русской локали вводим в терминале команду:


    # sudo locale-gen ru_RU.UTF-8

Устанавливаем русскую локаль как Локаль по умолчанию:


    # sudo update-locale LANG=ru_RU.UTF-8

Перезагружаем сервер для применения изменений.

Подготавливаем дистрибутив

Для установки сервера 1С:Предприятие на Debian подготовим установочный файл. Он находится в скачанном архиве с deb-пакетами и имеет расширение .tar.gz.

Если файл находится на каком-либо устройстве под управлением Windows, для переноса архива на сервер Debian можно использовать утилиту SCP.

В командной строке Windows вводим команду:


    > scp file_path root@ip_address_debian:/destination_path
  • file_path – путь к файлу в ОС Windows;
  • ip_address_debian – IP-адрес сервера, на который будет передан файл;
  • destination_path – путь к директории, в которую будет скопирован файл в ОС Debian.

Установка сервера 1С на Linux

Приступим к установке непосредственно 1С. Переходим в директорию со скопированным архивом и распаковываем его командой:


    # tar -zxvf deb64_version_1C.tar.gz

version_1C — это версия 1С, устанавливаемая на ваш сервер.

Далее устанавливаем все пакеты, которые находились в данном архиве. Для этого вводим команду:


    # dpkg -i 1c*.deb

После успешной инсталляции сервера 1С устанавливаем его автозагрузку, а также запускаем сам сервер 1С:


    # systemctl enable srv1cv83
# systemctl start srv1cv83

Если во время запуска 1С возникает ошибка «srv1cv83.service not found», создаем символьную ссылку в директории /etc/init.d на файл srv1cv83:


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

Обычно файл srv1cv83 находится в /opt/1cv8/x86_64/version_1C. Если вы не обнаружили его в указанной директории, можно воспользоваться командой find /opt -name srv1cv83 для поиска.

В новых версиях 1С используются файлы для systemd, их названия заканчиваются на @.service, например:


    /opt/1cv8/x86_64/version_1C/srv1cv8-8.3@.service

После этого вводим повторную команду автозагрузки и запуска 1С. Чтобы проверить статус команды, введите # systemctl status srv1cv83. В поле Active должен быть указан статус Active (running). Также с помощью # netstat -tulnp | grep «rphost\|ragent\|rmngr» можно проверить, запущены ли все необходимые службы.

Установка PostgreSQL

Мы будем использовать сборку от компании PostgreSQL Pro. На момент написания статьи актуальная версия PostgreSQL — 16.0, но во время установки можно выбрать любую. 

Вводим следующие команды в терминал Debian для загрузки репозитория PostgreSQL:


    # wget https://repo.postgrespro.ru/1c-16/keys/pgpro-repo-add.sh

# sh pgpro-repo-add.sh

Устанавливаем базу данных:


    # apt-get install postgrespro-1c-16

После установки выполняем команду для добавления PostgreSQL в автозагрузку:


    # systemctl enable postgrespro-1c-16

Проверить корректность установки можно с помощью команды # systemctl status postgrespro-1c-16. В поле Active должен быть указан статус Active (running).

Настройка PostgreSQL для работы с 1С

Пароль пользователя postgres

После установки PostgreSQL создадим пароль для внутреннего пользователя СУБД — postgres. Для этого подключаемся к PostgreSQL:


    # sudo -u postgres psql

Задаем пользователю postgres пароль:


    # ALTER USER postgres WITH PASSWORD 'postgres';
Используйте более сложный пароль, «postgres» указан в качестве примера.

Прослушивание адресов

Если сервер 1С установлен на том же хосте, что и PostgreSQL (как в нашем случае), то для СУБД следует установить прослушивание только локального порта localhost.

Для этого переходим к редактированию файла /var/lib/pgpro/1c-16/data/postgresql.conf, находим строку listen_addresses = ‘localhost’ и раскомментируем ее.

Если к серверу 1С будут подключаться пользователи с других устройств, параметру listen_address следует присвоить значение * (прослушивание всех адресов) или указать конкретные IP-адреса через пробел .

В данном случае также необходимо открыть порт 5432 для TCP-подключения, а в файле pg_hba.conf настроить аутентификацию клиентов. Подробнее об этом можно почитать в документации.

После внесенных изменений перезапускаем PostgreSQL:


    # systemctl restart postgrespro-1c-16

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

Для создания базы 1С дополнительно требуется устройство с ОС Windows. Во время установки клиента выбираем компонент Администрирование сервера 1С:Предприятие.

После установки переходим в директорию ../1cv8/version_1C/bin и запускаем файл RegMSC.bat. Так мы зарегистрируем утилиту администрирования серверов.

Чтобы создать базу данных в PostgreSQL, переходим в оснастку Администрирование серверов 1С:Предприятия. В левой панели находим Информационные базы и создаем новую с необходимыми параметрами.

  • Имя — имя информационной базы на сервере 1С.
  • Сервер баз данных — имя или IP-адрес SQL-сервера, где будет располагаться база данных.
  • Тип СУБД — в нашем случае, PostgreSQL.
  • База данных — имя базы данных, создаваемой на SQL-сервере.
  • Пользователь и пароль БД — имя и пароль пользователя, задаваемые при установке PostgreSQL (имя по умолчанию — postgres).
  • Создавать базу данных в случае ее отсутствия — создание базы данных на сервере PostgreSQL, если ранее такой базы не существовало.

Если при создании базы данных получено предупреждение «Ошибка соединения с рабочим процессом», то на сервере, где установлена PostgreSQL, необходимо разрешить TCP-подключение по портам 1540, 1541 и 1560. Если же возникла ошибка «Этот хост неизвестен», то необходимо проверить в настройках DNS или в файле hosts, записано ли в нем имя сервера и IP-адрес.

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

Настройка резервного копирования

Резервное копирование баз данных в системе 1С обеспечивает надежность и безопасность информации. Позволяет быстро восстановить работу системы в случае возникновения нештатных ситуаций.

В PostgreSQL есть встроенные утилиты для работы с резервными копиями. Один из основных инструментов и синтаксис команды представлены ниже:


    # pg_dump <параметры> <имя базы> > <файл для сохранения копии> 

Настройку резервного копирования с использованием различных утилит PostgreSQL подробно описали в предыдущей статье.

Установка HASP Licence Manager

HASP License Manager — это ПО для управления лицензиями на программные продукты, которые используют аппаратные ключи защиты. Он поддерживает централизованный контроль за лицензиями и их распределением в сетевых средах.
Убедимся, что сервер поддерживает установленный аппаратный ключ:


    # lsusb

В выводе этой команды появляется запись об Aladdin Knowledge Systems HASP. Если все корректно определяется, то можно начинать установку HASP LM.

Открываем терминал на сервере и загружаем необходимый пакет из репозитория:


    # wget http://download.etersoft.ru/pub/Etersoft/HASP/stable/Debian/11/haspd_8.43-eter2debian_i386.deb

Обновляем информацию и инсталлируем необходимые зависимости. Затем устанавливаем пакеты HASP:


    # apt updat
# apt install make libc6-i386
# dpkg -i hasp*.deb

Если в 64-битной версии Debian (amd64) при попытке введения команды dpkg -i hasp*.deb вы получаете ошибку:


    dpkg: ошибка при обработке архива haspd_8.43-eter2debian_i386.deb (--install): архитектура пакета (i386) не соответствует архитектуре системы (amd64)

Следует запустить ту же команду с параметром --force-architecture:


    # dpkg --force-architecture -i hasp*.deb

После установки запускаем службу, добавляем ее в автозагрузку командами и проверяем статус:


    # systemctl start haspd
# systemctl enable haspd
# systemctl status haspd

Для контроля выданных лицензий можно использовать утилиту Aladdin Monitor.

Миграция базы из старой 1С

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

Чтобы загрузить базу на новый сервер 1С, открываем конфигуратор информационной базы, нажимаем АдминистрированиеЗагрузить информационную базу и выбираем файл базы, выгруженный из старой 1С.

Веб-публикация 1С с помощью Apache

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

Для начала установим сам веб-сервер. В терминале Debian вводим:


    # apt-get install apache2

Как и ранее, включаем службу в автозагрузку и запускаем ее:


    # systemctl enable apache2
# systemctl start apache2

Если на вашем сервере активирован брандмауэр, следует добавить в него правило:


    # iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# netfilter-persistent save

Если в поисковой строке браузера ввести http://ip_address, где ip_address — это адрес сервера 1С, отобразится страница Apache.

Чтобы опубликовать базу, необходимо запустить на выполнение скрипт webinst, который добавляется автоматически при установке Apache. Для проверки будем публиковать тестовую базу в директорию /var/www/html.

Создаем каталог, в который будем публиковать базу. Переходим в папку с установленной платформой 1С и запускаем скрипт:


    # mkdir /var/www/html/test
# cd /opt/1cv8/x86_64/version_1C/
# ./webinst -apache24 -wsdir test -dir /var/www/html/test -connstr "Srvr=ip_address;Ref=test;" -confPath /etc/apache2/apache2.conf

  • apache24 — версия установленного Apache;
  • /var/www/html/test — путь до каталога на сервере, в котором будет опубликована база;
  • ip_address — адрес сервера 1С;
  • Ref=test — имя базы в СУБД;
  • /etc/apache2/apache2.conf — путь до конфигурационного файла Apache.

Если в поисковой строке браузера ввести http://ip_address/test, где ip_address — это адрес сервера 1С, а test — название базы, отобразится страница с указанной базой 1С.

Обслуживание БД 1С на сервере с PostgreSQL

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

Чистка базы данных (VACUUM)

VACUUM в PostgreSQL управляет пространством и оптимизирует производительность базы данных. Опишем его основные задачи.

  • Удаление из памяти устаревших версий кортежей. PostgreSQL использует механизм многоверсионности для поддержки одновременного доступа к данным. VACUUM удаляет версии кортежей, которые больше не нужны для поддержки транзакций.
  • Освобождение пространства после удаления данных. После выполнения операции DELETE или UPDATE место, ранее занятое данными, остается выделенным для 1С. VACUUM освобождает это место.
  • Обновление статистики. VACUUM также обновляет статистику, которая используется оптимизатором запросов для выбора оптимальных планов выполнения.

Перестройка индексов (REINDEX)

REINDEX в PostgreSQL используется для перестройки индексов. Он полезен, если индекс становится поврежденным или если вы хотите оптимизировать его производительность.

Выполнение этих задач может занять время. При этом доступ к базе данных будет органичен или замедлен. Рекомендация: следует выполнять эти операции в периоды низкой активности базы данных.

Настройка обновления для сервера 1С

Чтобы установить обновление, скачиваем новый дистрибутив. При этом прекращаем работу предыдущего сервиса 1С: 


    # systemctl stop srv1cv83

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


    # mkdir update_for_1c
# tar -zxf deb64_version_1C.tar.gz -C …/update_for_1c/

Устанавливаем новую версию пакетов:


    # dpkg -i …/update_for_1c/1c_version_1C.deb

Удаляем старую символьную ссылку. Для этого находим все файлы srv1cv83:


    # find /opt -name srv1cv8*
# rm -f /etc/init.d/srv1cv83

После — создаем новую. Она будет вести на обновленную версию файла: 


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

Перезапускаем Daemon и запускаем сервис 1С:


    # systemctl daemon-reload
# systemctl start srv1cv83

Заключение

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

Читайте также:

Инструкция
Инструкция
Инструкция