1С + Postgresql: Установка сервера 1С.

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

1С + Postgresql: Установка сервера 1С.

Сообщение root »

Оглавление
Темы
Установка сервера Postgresql
Установка 1С сервера
Установка клиента 1С
Ключи 1С
Обслуживание БД
Утилиты для работы с базой
Показать

Код: Выделить всё

Продукт
Postgres Pro Standard 12
Установка
rpm -i http://repo.postgrespro.ru/pgpro-12/keys/centos.rpm
dnf makecache
Если наш продукт единственный Postgres на вашей машине и вы хотите
сразу получить готовую к употребленю базу:

yum install postgrespro-std-12

Если у вас уже установлен другой Postgres и вы хотите чтобы он
продолжал работать параллельно (в том числе и для апгрейда с более
старой major-версии):

yum install postgrespro-std-12-contrib
/opt/pgpro/std-12/bin/pg-setup initdb
/opt/pgpro/std-12/bin/pg-setup service enable
/opt/pgpro/std-12/bin/pg-setup service start

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

yum install postgrespro-std-12-contrib
/opt/pgpro/std-12/bin/pg-setup initdb --tune=1c
/opt/pgpro/std-12/bin/pg-setup service enable
/opt/pgpro/std-12/bin/pg-setup service start

В состав PostgresPro Standard входят многочисленные
дополнительные компоненты, которые могут быть установлены
с помощью yum после установки собственно Postgres

Скачиваем необходимые Вам пакеты при помощи утилиты wget

Код: Выделить всё

wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-server-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-client-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-contrib-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-devel-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-docs-12.4-1.el8.noarch.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-docs-ru-12.4-1.el8.noarch.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-test-12.4-1.el8.x86_64.rpm
и др.
и устанавливаем скачанные пакеты postgresql

Код: Выделить всё

dnf -y localinstall *.rpm
ИЛИ или можно воспользоваться репозиторием postgrespro-1c

Код: Выделить всё

dnf -y install http://repo.postgrespro.ru/pgpro-12/keys/centos.rpm
dnf makecache
Если продукт postgrespro-1c единственный Postgres на вашей машине и вы хотите сразу получить готовую к употребленю базу:

Код: Выделить всё

dnf install postgrespro-std-12
Данный пакет подтянет все необходимые зависимости и установит их
После установки можно добавить необходимые, для удобной работы с продуктом postgrespro-std, переменные окружения. Добавляем в файл .bash_profile следующие строки. Данную процедуру повторить для каждого пользователя кому нужны данные переменные

Код: Выделить всё

export PATH=/opt/pgpro/std-12/bin/:$PATH:$HOME/bin
export LD_LIBRARY_PATH=/opt/pgpro/std-12/lib
export MANPATH=/opt/pgpro/std-12/share/man:$MANPATH
export PGDATA=/var/lib/pgpro/std-12/data

Настройка пользователей (ролей) Postgre SQL server
Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:

Код: Выделить всё

su - postgres
$ createuser --interactive -P
Введите имя новой роли:server1c
Введите пароль для новой роли:
Повторите его:
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) y
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n
$ exit
logout
!!! --- Открываем port=5432 на интерфейсе если требуется подключаться к postgres с других хостов

Код: Выделить всё

firewall-cmd --zone=public --add-port=5432/tcp --permanen
firewall-cmd --reload
Создаём пользователя postgres в системе, такой же пользователь существует в PostgreSQL и устанавливаем пароль для пользователя

Код: Выделить всё

useradd postgres -m 
passwd postgres
Инициализируем БД

Код: Выделить всё

su - postgres
initdb --locale=ru_RU.UTF-8 --lc-collate=ru_RU.UTF-8 --lc-ctype=ru_RU.UTF-8 --encoding=UTF8 -D /var/lib/pgpro/std-12/data --tune=1c
или

Код: Выделить всё

su postgres -c 'initdb --locale=ru_RU.UTF-8 --lc-collate=ru_RU.UTF-8 --lc-ctype=ru_RU.UTF-8 --encoding=UTF8 -D /var/lib/pgpro/std-12/data --tune=1c'
Переключаемся под пользователя postgres (не забывая про "-") Устанавливаем пароль на пользователя СУБД

Код: Выделить всё

su - postgres
psql -U postgres -h localhost -c "alter user postgres with password '123456';"
^D
e /var/lib/pgpro/std-12/data/pg_hba.conf
e /var/lib/pgpro/std-12/data/postgresql.conf
Активируем службу postgrespro-std-12.service на автозапуск и запускаем её

Код: Выделить всё

systemctl enable --now postgrespro-std-12.service
отключаем обновление postgresql из базового репозитория
В секции [base] и [updates] добавить параметр
e /etc/yum.repos.d/CentOS-Base.repo
exclude=postgresql*
Настраиваем postgresql. Для генерации настроек можно воспользоваться онлайн-сервисом

Код: Выделить всё

http://pgtune.leopard.in.ua/
полученные данные вносим в конфигурацию

Код: Выделить всё

e /var/lib/pgpro/std-12/data/postgresql.conf

$ > cd /1C_backup
$ > createdb OLGA
$ > pg_restore -U postgres -d OLGA 05-06-2020.13\:14.olga
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


Скачать с сайта https://releases.1c.ru/ дистрибутив сервера 1С rpm64.tar.gz и размещаем в домашнем каталоге
Создадим каталог для распаковки на сервере в дом. каталоге, распакуем архив с дистрибутивом сервера 1С

Код: Выделить всё

mkdir server
tar -xzf server-rpm64.tar.gz -C server
Назначение файлов входящих в дистрибутив 1С сервера
  1. 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm - основные файлы 1С (включая русский и английский интерфейсы)
  2. 1C_Enterprise83-common-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  3. 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm - сервер 1С
  4. 1C_Enterprise83-server-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  5. 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm - компоненты веб-сервера 1С
  6. 1C_Enterprise83-ws-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  7. 1C_Enterprise83-crs-8.3.5-1517.i386.rpm - хранилище конфигураций (только в 32-битном комплекте)
Устанавливаем нужные пакеты командами:

Код: Выделить всё

yum install 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm
!!! дополнительные языковые модули МОЖНО НЕ СТАВИТЬ !!! (русский язык сюда не входит)
перейдём в каталог дистрибутива установим сервер 1С

Код: Выделить всё

cd server
yum install 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm
или установка всех пакетов

Код: Выделить всё

yum install *.rpm
Запуск сервера 1С

Код: Выделить всё

service srv1cv83 start
служба srv1cv83 не родная потому автозапуск прописывается надо так

Код: Выделить всё

/sbin/chkconfig srv1cv83 on
Также в работе сервера требуется пакет msttcorefonts. Данный пакет отсутствует на диске дистрибутива RHEL (CentOS)
Скачиваем и устанавливаем msttcorefonts-2.5-1.noarch.rpm

Код: Выделить всё

wget http://repo.1c-for-linux.ru/rhel/6Server/noarch/msttcorefonts-2.5-1.noarch.rpm
yum -y install msttcorefonts-2.5-1.noarch.rpm
Скрипт запуска службы 1С не содержит информации об интерпретаторе используемом для работы скрипта.
Проверить это можно дав команду

Код: Выделить всё

head -n 1 /etc/init.d/srv1cv83
Если вывод команды не начинается с символов “#!/”

Код: Выделить всё

# chkconfig: 35 74 36
то необходимо выполнить команду как в примере ниже

Код: Выделить всё

[root@1c ~]# sed -i -e '1i#!/bin/sh\' /etc/init.d/srv1cv83
Или добавить в редакторе первой строкой "#!/bin/sh" в файл /etc/init.d/srv1cv83

Установка hasp, если нужно

Код: Выделить всё

http://abf-downloads.rosalinux.ru/djam_personal/repository/rosa-server70/x86_64/main/release/haspd-3.3-4.x86_64.rpm
http://abf-downloads.rosalinux.ru/djam_personal/repository/rosa-server70/x86_64/main/release/haspd-modules-3.3-4.x86_64.rpm
yum -y install haspd*.rpm

Код: Выделить всё

http://ftp.etersoft.ru/pub/Etersoft/HASP/3.3/sources/x86_64/CentOS/7/haspd-3.3-eter5centos.src.rpm
Исправление ошибки ERROR: type "mvarchar" does not exist

Код: Выделить всё

yum install libicu
По умолчанию сервер 1С слушает порт tcp 1541(1540) агент сервера 1С – порт 1540. менеджер кластера 1С – порт 1541.

Код: Выделить всё

firewall-cmd --permanent --zone=public --add-port=1540-1541/tcp
для соединений использует диапазон портов 1560-1691.

Код: Выделить всё

firewall-cmd --permanent --zone=public --add-port=1560-1691/tcp
МЕНЕДЖЕР_ЛИЦЕНЗИЙ

Код: Выделить всё

firewall-cmd --permanent --zone=public --add-port=475/tcp
firewall-cmd --reload
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


epel
wget http://dl.fedoraproject.org/pub/epel/7/ ... noarch.rpm
yum localinstall epel-release-7-9.noarch.rpm
yum -y install ttf2pt1
=====================================================================
Также в работе сервера требуется пакет msttcorefonts. Данный пакет отсутствует
на диске дистрибутива RHEL (CentOS)
yum install https://downloads.sourceforge.net/proje ... noarch.rpm
=====================================================================
Скачать с сайта https://releases.1c.ru/ Технологическую платформу client.rpm64.tar.gz и rpm64.tar.gz
Распаковываем архив client.rpm64.tar.gz в каталог 1C-C,
а сервер в каталог SERVER

Код: Выделить всё

mkdir ~/{1C-C,SERVER}
tar xvf client.rpm64.tar.gz -C 1C-C
tar xvf rpm64.tar.gz -C SERVER
Устанавливаем 1С

Код: Выделить всё

cd ~/SERVER
yum localinstall *.rpm
cd ~/1C-C
yum localinstall *.rpm
Пакеты с thin — это тонкий клиент. Нам он не нужен и можно удалить эти пакеты.
Пакеты nls нужно использовать в случае использования языков кроме русского.

Получение лицензий на клиенте. Создаем каталог conf, если не существует
mkdit /opt/1C/v8.3/x86_64/conf
Создаем файл nethasp.ini с содержимым
e /opt/1C/v8.3/x86_64/conf/nethasp.ini

Код: Выделить всё

[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 195.0.1.50
NH_TCPIP_METHOD=UDP
NH_USE_BROADCAST=Disabled
Может так же понадобиться установка прав доступа и настройка SElinux

Код: Выделить всё

chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/conf/nethasp.ini
chcon -R -u system_u -r object_r /opt/1C/v8.3/x86_64/conf
chown root:root /opt/1C/v8.3/x86_64/conf/nethasp.ini
Список баз хранится тут
для Windows

Код: Выделить всё

C:\Users\sergey\AppData\Roaming\1C\1CEStart\ibases.v8i
Для CentOS

Код: Выделить всё

/home/sergey/.1C/1cestart/ibases.v8i
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


  1. Локальные однопользовательские клиентские ключи — обязательно должны физически быть подключены к компьютеру, на котором запускается клиент 1С (по одному в каждый комп). модель ключа «HASP HL Basic» (синего цвета), данный ключ имеет маркировку «H4 M1 ORGL8», не имеет встроенной памяти и персонального ID, не хранит в себе никаких параметров и настроек. Обычно поставляется с продуктами имеющими лицензию на одно рабочее место...
  2. Сетевые многопользовательские клиентские ключи — раздаются с одного компьютера многим удалённым сетевым клиентам, через службу «Менеджер лицензий». Модель ключа «HASP HL Net» (красного цвета). Имеют внутреннюю память, в которой хранится количество лицензий, и уникальный ID. Существуют разновидности на 5, 10, 20, 50 и 100 пользователей. Имеет маркировку «NETXX ORGL8», где ХX — количество лицензий (например NET5 ORGL8).
  3. Серверные ключи — обязательно должны физически быть подключены локально к компьютеру, на котором установлен и работает сервер агента 1С: Предприятие. Подчеркну: Ключи для сервера 1С: Предприятие бывают только локальные!
    • 32-битная версия сервера имеет ключ защиты «HASP HL Pro» (фиолетового цвета), который имеет внутреннюю память и уникальный ID. Имеет маркировку ENSR8, поставляется вместе с лицензией на сервер 1С: Предприятие.
    • Для 64-битного сервера используется ключ «HASP HL Max» (зеленого цвета), с внутренней памятью и уникальным ID. Имеет маркировку EN8SA и поддерживает также 32-битный сервер (т.е. имея лицензию на 64-битный сервер можно, не меняя ключа, использовать 32-битную версию, но не наоборот).
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


останавливаем сервер 1С

Код: Выделить всё

systemctl stop srv1cv83
Список пользователей:

Код: Выделить всё

select * from pg_shadow;
Список баз данных:

Код: Выделить всё

select * from pg_database;
Из командной строки в современных версиях PostgreSQL можно просто набрать:

Код: Выделить всё

psql -U postgres -h localhost -l
В vacuum.sql :

Код: Выделить всё

VACUUM FULL VERBOSE ANALYZE;
Команда по факту работает от 6 до 8 часов.
из Shell

Код: Выделить всё

psql -U postgres -h localhost -c "VACUUM FULL VERBOSE ANALYZE;"
переиндексация

Код: Выделить всё

reindexdb -U postgres OLGA
Посмотреть занимаемый объём базы

Код: Выделить всё

SELECT pg_size_pretty(pg_database_size('OLGA')) AS OLGA_size;
из Shell

Код: Выделить всё

psql -U postgres -h localhost -c "SELECT pg_size_pretty(pg_database_size('OLGA')) AS OLGA_size;"
пересоздаём схему

Код: Выделить всё

drop schema public cascade;
create schema public;
Восстановление базы из резервной копии

Код: Выделить всё

pg_restore -U postgres -d OLGA OLGA-18-08-2015.backup
Занимаемый объём данных БАЗА/БЭКАП

Код: Выделить всё

268M авг 27 11:31 OLGA-27-08-2015.backup
размер базы olga в СУБД 738 MB
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


УтилитаОписание
pg_config Возвращает информацию о текущей установленной версии PostgreSQL
initdbИнициализирует новое хранилище данных (кластер баз данных). Кластер представляет собой совокупность баз данных управляемых одним экземпляром севера. initdb должен быть запущен от имени будущего владельца сервера (как указано выше от имени postgres).
pg_ctlУправляет процессом работы сервера PostgreSQL. Позволяет запускать, выполнять перезапуск, останавливать работу сервера, указать лог файл и другое.
psqlКлиент для работы с базой дынных. Позволяет выполнять SQL операции
createdbСоздает новую базу данных. По умолчанию, база данных создается от имени пользователя, который запускает команду. Однако, чтобы задать другого — необходимо использовать опцию -O (если у пользователя есть необходимые привилегии для этого). По сути — это обертка SQL команды CREATE DATABASE.
dropdbУдаляет базу данных. Является оберткой SQL команды DROP DATABASE
createuserДобавляет нового пользователя базы дынных. Является оберткой SQL команды CREATE ROLE
dropuserУдаляет пользователя базы данных. Является оберткой SQL команды DROP ROLE
createlangДобавляет новый язык программирования в базу PostgreSQL. Является оберткой SQL команды CREATE LANGUAGE
droplangУдаляет язык программирования. Является оберткой SQL команды DROP LANGUAGE.
pg_dumpСоздает бэкап (дамп) базы данных в файл.
pg_restoreВосстанавливает бэкап (дамп) базы данных из файла.
pg_dumpallСоздает бэкап (дамп) всего кластера в файл.
reindexdbПроизводит переиндексацию базы данных. Является оберткой SQL команды REINDEX.
clusterdbПроизводит перекластеризацию таблиц в базе данных. Является оберткой SQL команды CLUSTER.
vacuumdbСборщик мусора и оптимизатор базы данных. Является оберткой SQL команды VACUUM.
Последний раз редактировалось root 12 авг 2026 21:43, всего редактировалось 1 раз.
Ответить