SELTA/PostgreSQL
Сервер PostgreSQL для SELTA@Etersoft
Начиная с версии 1.1.4 SELTA@Etersoft работает с современным PostgreSQL. Собственные сборки Postgre@Etersoft (8.x, 9.2) больше не нужны: свои патчи ядра и модули SELTA не требуются.
Что нужно серверу
- PostgreSQL 10 или новее. Проверены версии 11, 12, 15, 16 и 18.
- Модуль mchar (типы
mchar/mvarchar). Это единственный модуль из PostgreSQL для 1С, который нужен схеме SELTA. Остальные модули редакции для 1С (fasttrun, fulleq, online_analyze, plantuner) нужны 1С:Предприятию 8; SELTA их не требует, но, если они установлены, их стоит включить. - Настройки (их выставляет selta-pg-setup):
standard_conforming_strings = off escape_string_warning = off client_min_messages = error shared_preload_libraries = 'mchar' # у PostgreSQL для 1С: 'mchar, fasttrun, fulleq, online_analyze, plantuner' listen_addresses = '*'
- Базы в кодировке UTF8 с локалью
ru_RU.UTF-8; служебная базаmasterсо схемой SELTA. - Доступ клиентов по сети в
pg_hba.confс паролем (scram-sha-256илиmd5) и пароль у пользователя, под которым работает 1С (обычноpostgres).
Варианты
1. ALT Linux: PostgreSQL для 1С из репозитория (рекомендуется)
В репозиториях ALT есть PostgreSQL в редакции для 1С (postgresqlNN-1C-server, -contrib) с модулем mchar. Пакет selta-server ставит его сам вместе со скриптом настройки:
| Ветка ALT | PostgreSQL для 1С |
|---|---|
| Sisyphus, p11 | 18 |
| c10f2 | 16 |
| p10, c10f1 | 15 |
| p9, c9f2, c9f1 | 12 |
| p8 | 11 |
# epm install ./selta-server-*.rpm # selta-pg-setup init --allow 192.168.1.0/24 # selta-pg-setup create-db buh
2. Другой дистрибутив: PostgreSQL дистрибутива и postgresql-mchar
На Debian, Astra Linux, Ubuntu, РЕД ОС, Rocky Linux, МСВСфера, AlterOS, РОСА и других дистрибутивах нет PostgreSQL для 1С. Здесь используется обычный PostgreSQL дистрибутива (12 и новее) и наш пакет postgresql-mchar: модуль mchar из PostgreSQL для 1С, перенесённый на обычный PostgreSQL (etersoft/postgresql-mchar). Пакет postgresql-mchar сам ставит сервер PostgreSQL дистрибутива.
# epm install ./postgresql-mchar-*.rpm ./selta-server-*.rpm (на Debian/Ubuntu — .deb) # selta-pg-setup init --allow 192.168.1.0/24 # selta-pg-setup create-db buh
Отличия от PostgreSQL для 1С:
- сравнения, индексы и
LIKEпоmchar/mvarcharработают так же, в том числеLIKE 'abc%'по индексу (условия на индекс строит сам модуль); - индекс для
LIKEиспользуется только по обычному (без учёта регистра) индексу; - нет модулей fasttrun, fulleq, online_analyze, plantuner — SELTA они не нужны.
3. Другой дистрибутив: PostgreSQL для 1С от 1С или Postgres Pro
Можно поставить PostgreSQL для 1С из дистрибутива 1С (releases.1c.ru) или Postgres Pro для 1С. Тогда ставится только selta-server, без postgresql-mchar: mchar входит в эти сборки. selta-pg-setup находит такие установки сам (/opt/pgpro/1c-N, /usr/pgsql-N, /usr/lib/postgresql/N). Не ставьте рядом PostgreSQL дистрибутива: на Debian он сразу создаёт свой кластер на том же порту 5432.
4. Сервер PostgreSQL на Windows
SELTA работает и с PostgreSQL для 1С под Windows. Скрипта настройки для Windows нет: выставьте настройки из раздела «Что нужно серверу» в postgresql.conf, разрешите доступ клиентов в pg_hba.conf, а базы создайте в Центре управления SELTA (кнопки «Создать БД», «Инициализировать», «Обновить SELTA»). Центр управления при подключении проверяет, что у сервера есть модуль mchar.
Старые серверы Postgre@Etersoft 8.x и 9.2
SELTA 1.1.6 по-прежнему подключается к Postgre@Etersoft 9.2, но этот сервер больше не развивается и не проверяется. Перенесите базы на один из вариантов выше: Действия при обновлении PostgreSQL.
Как проверить сервер
На Linux: selta-pg-setup status — покажет настройки, версию mchar, базы SELTA и их версии, код возврата не 0, если что-то не так. Вручную:
$ psql -U postgres -c "SHOW standard_conforming_strings" -c "SHOW client_min_messages" -c "SHOW shared_preload_libraries" $ psql -U postgres -c "SELECT name, default_version FROM pg_available_extensions WHERE name = 'mchar'" $ psql -U postgres -d buh -c "SELECT * FROM pg_selta_version"