Переход с сервера СУБД Microsoft SQL Server или встроенного варианта на PostgreSQL становится стандартом для многих компаний, использующих платформу 1С:Предприятие. Это решение позволяет существенно снизить затраты на лицензии и повысить стабильность работы высоконагруженных систем. Однако процесс интеграции требует внимательного подхода к настройке окружения и параметров взаимодействия между компонентами.
В этой статье мы подробно разберем, как корректно создать базу данных, настроить права доступа и подключить её к кластеру серверов 1С. Вы узнаете о критических настройках кодировки и особенностях драйверов, которые часто упускают из виду начинающие администраторы.
Подготовка окружения и выбор версии СУБД
Перед началом работы необходимо убедиться, что на сервере установлена совместимая версия PostgreSQL. Платформа 1С:Предприятие 8.3 официально поддерживает версии СУБД от 9.6 и выше, но для новых релизов платформы рекомендуется использовать актуальные стабильные ветки, такие как 14 или 15.
Критически важным моментом является выбор кодировки при инициализации кластера базы данных. Для корректной работы с русскоязычными данными и предотвращения проблем с сортировкой необходимо использовать кодировку UTF8. Использование других кодировок может привести к некорректному отображению символов или ошибкам при выполнении сложных запросов.
При установке сервера в операционной системе Linux рекомендуется использовать стандартные репозитории дистрибутива или официальные репозитории разработчика СУБД. В среде Windows установщик предоставляет графический интерфейс, где можно сразу задать параметры суперпользователя.
⚠️ Внимание: Не используйте кодировкуSQL_ASCIIилиWIN1251для новых баз 1С, так как это может вызвать проблемы с международными символами и обновлением платформы в будущем.
Для проверки текущей кодировки созданного кластера выполните команду SHOW server_encoding; в консоли psql.
Создание базы данных и пользователя для 1С
Процесс создания объекта хранения данных начинается с регистрации нового пользователя, от имени которого платформа 1С будет осуществлять подключение. Этот пользователь должен обладать правами на создание баз данных в рамках кластера СУБД.
Далее необходимо создать саму базу данных, указав владельца и параметры локализации. Важно, чтобы параметры LC_COLLATE и LC_CTYPE соответствовали локали сервера, обычно это ru_RU.UTF-8. Несоответствие этих параметров может привести к ошибкам при создании базы из конфигуратора 1С.
Для выполнения этих действий можно использовать графическую утилиту pgAdmin или командную строку. Ниже приведен пример команды для создания пользователя и базы с необходимыми параметрами:
createuser -P -D -R -S -E utf8 user1c
createdb -O user1c -E UTF8 -T template0 base1c
- 🔑 Параметр
-Pтребует ввода пароля для нового пользователя сразу при создании. - 🚫 Флаги
-D -R -Sзапрещают пользователю создавать базы, роли и быть суперпользователем соответственно. - 📂 Опция
-T template0гарантирует создание чистой базы без лишних расширений.
☑️ Проверка прав доступа
Настройка аутентификации в pg_hba.conf
Файл конфигурации pg_hba.conf управляет правилами доступа клиентов к серверу баз данных. По умолчанию доступ часто разрешен только для локальных подключений, что блокирует работу сервера 1С, если он установлен на другой машине.
Необходимо добавить правило, разрешающее подключение для пользователя 1С или всей подсети, в которой находится сервер приложений. Тип аутентификации md5 или scram-sha-256 является обязательным для сетевых подключений, так как он требует проверки пароля.
После внесения изменений в файл конфигурации требуется перезагрузить службу PostgreSQL или отправить сигнал SIGHUP процессу сервера для применения новых правил без разрыва активных соединений.
⚠️ Внимание: Избегайте использования метода аутентификации trust в производственной среде, так как это позволяет подключаться к базе без ввода пароля любому пользователю с указанным IP.
Пример записи в pg_hba.conf
host base1c user1c 192.168.1.0/24 md5
Регистрация базы в кластере серверов 1С
После подготовки СУБД следующим этапом является регистрация информационной базы в кластере серверов 1С:Предприятие. Это действие выполняется через консоль администрирования или утилиты командной строки rac.
При создании базы необходимо указать тип СУБД PostgreSQL, строку соединения, имя пользователя и пароль. Строка соединения обычно содержит IP-адрес сервера, порт и имя базы данных в формате srvr="server_name";ref="base_name".
Если вы используете файловый вариант базы данных с размещением на PostgreSQL (что редко, но возможно), процедура отличается. В большинстве случаев речь идет о клиент-серверном варианте, где данные хранятся исключительно в СУБД.
| Параметр | Значение для PostgreSQL | Описание |
|---|---|---|
| Тип СУБД | PostgreSQL | Выбор движка хранения данных |
| Сервер | IP или Hostname | Адрес машины с установленной СУБД |
| Порт | 5432 | Стандартный порт прослушивания |
| Пользователь | user1c | Учетная запись СУБД для подключения |
Успешное создание базы в кластере 1С автоматически создает необходимые системные таблицы и структуру хранения внутри PostgreSQL.
Оптимизация производительности и параметры работы
Для обеспечения высокой скорости работы конфигураций 1С необходимо настроить параметры сервера PostgreSQL. Стандартные настройки часто ориентированы на универсальное использование и не учитывают специфику нагрузки от платформы 1С.
Особое внимание следует уделить параметру work_mem, который определяет объем памяти для операций сортировки и хеширования. Увеличение этого значения может значительно ускорить выполнение сложных отчетов и закрытие периодов.
Также рекомендуется настроить параметры автовакуума (autovacuum), чтобы система своевременно очищала таблицы от устаревших версий записей. В высоконагруженных системах частота запуска вакуума должна быть выше стандартной.
Решение типичных ошибок подключения
При первом запуске пользователи часто сталкиваются с ошибкой "Соединение с базой данных не установлено". Чаще всего причина кроется в неверном пароле, блокировке портов межсетевым экраном или отсутствии прав в файле pg_hba.conf.
Другая распространенная проблема связана с несовместимостью версий драйверов. Убедитесь, что на сервере 1С установлены клиентские библиотеки PostgreSQL той же мажорной версии, что и сервер СУБД.
Если база создается, но при запуске 1С возникает ошибка инициализации, проверьте права доступа к системным схемам. Пользователь 1С должен иметь права на чтение и запись в схему public и системные каталоги.
⚠️ Внимание: Интерфейсы программ и настройки серверов могут обновляться разработчиками. Всегда сверяйте актуальные требования к версиям ПО в официальной документации к вашей версии платформы.
Часто задаваемые вопросы (FAQ)
Можно ли перенести базу из MSSQL в PostgreSQL без потери данных?
Да, это возможно с помощью обработки "Выгрузка данных в файлы XML" или специализированных конвертеров, однако потребуется ручная доработка некоторых запросов, если в коде 1С использовался специфичный синтаксис T-SQL.
Какой минимальный объем оперативной памяти нужен для сервера PostgreSQL под 1С?
Для небольших баз (до 10 рабочих мест) достаточно 4 ГБ RAM, но для производительной работы рекомендуется выделять минимум 50% от свободной памяти сервера под кеш СУБД.
Нужно ли устанавливать PostgreSQL на тот же сервер, где стоит 1С?
Не обязательно. Для повышения отказоустойчивости и производительности рекомендуется размещать СУБД на отдельном физическом или виртуальном сервере, особенно при количестве пользователей более 20.
Как обновить версию PostgreSQL без потери базы 1С?
Обновление мажорной версии (например, с 12 на 14) требует процедуры дампа и восстановления данных или использования утилиты pg_upgrade. Простое обновление пакета возможно только в рамках одной мажорной версии.