К статье
Практический материал

Администрирование · 11 мин

Какую версию PostgreSQL выбрать для 1С 8.3

Как выбрать версию PostgreSQL для 1С 8.3: совместимость с платформой, сборки PostgresPro и 1С, настройка, ошибки и проверка результата. Практическое руководство.

1С:Предприятие 8.3 работает не с любым PostgreSQL, а только со сборками, в которые встроены патчи совместимости: это либо дистрибутив от фирмы «1С» (1C:PostgreSQL), либо Postgres Pro Standard / Certified. Обычный «ванильный» PostgreSQL с официального сайта postgresql.org платформа 1С не примет — при создании базы вы получите ошибку о несовместимости типов или отсутствии нужных функций. Поэтому вопрос «какую версию выбрать» всегда начинается с выбора сборки, а уже потом — номера версии.

Второй ограничитель — версия самой платформы 1С. Каждый релиз платформы сертифицирован на работу с определённым диапазоном версий PostgreSQL. Например, старые платформы 8.3.8–8.3.12 корректно работали с PostgreSQL 9.4–9.6, платформы 8.3.15–8.3.20 — с версиями 9.6–12, а актуальные релизы 8.3.21 и новее поддерживают PostgreSQL 12–15 и выше. Точную матрицу совместимости нужно сверять с системными требованиями вашего релиза платформы на портале 1С, потому что несовпадение даже на одну мажорную версию может привести к ошибкам при создании информационной базы или к скрытым проблемам в работе.

Практическое правило: выбирайте максимально свежую версию PostgreSQL из тех, что официально поддерживаются вашей платформой 1С, но не новее её. Это даёт лучшую производительность планировщика запросов, более качественный автовакуум и актуальные исправления безопасности, не выходя за рамки сертифицированной совместимости.

Какие сборки PostgreSQL вообще подходят для 1С

Платформа 1С использует специфические типы данных и функции, которых нет в стандартном PostgreSQL: в частности, особую работу с типом mvarchar, специфическое поведение при сравнении строк и ряд внутренних механизмов. Поэтому «1С» совместно с сообществом поддерживает патчи, которые накладываются на исходный код PostgreSQL перед сборкой.

На практике доступны три варианта. Первый — 1C:PostgreSQL, готовые пакеты с портала releases.1c.ru, бесплатные для пользователей с действующим договором ИТС. Второй — Postgres Pro Standard или Certified от компании Postgres Professional, коммерческий продукт с технической поддержкой и расширенными возможностями (мультимастер, компрессия, улучшенный планировщик). Третий — самостоятельная сборка из исходников с наложением патчей 1С: рабочий, но трудоёмкий путь, требующий навыков компиляции и самостоятельного сопровождения.

Сравнение вариантов сборок

1C:PostgreSQL с портала 1С

Бесплатно при наличии ИТС, гарантированная совместимость, готовые пакеты под Windows и Linux. Ограничение: обновления выходят с задержкой относительно апстрима.

Postgres Pro Standard / Certified

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

Самостоятельная сборка с патчами

Полный контроль над версией, но нужно самостоятельно собирать, тестировать и обновлять. Не рекомендуется без опыта администрирования PostgreSQL.

Как определить совместимую версию для вашей платформы

Откройте документ «Системные требования» для вашего релиза платформы на портале portal.1c.ru или в документации к дистрибутиву. В разделе про СУБД будет указан перечень поддерживаемых версий PostgreSQL. Это единственный достоверный источник: форумы и статьи часто содержат устаревшие данные для других релизов.

Узнать текущую версию платформы можно в конфигураторе: меню «Справка» → «О программе». Там же видно разрядность — важно, чтобы разрядность сервера 1С и PostgreSQL совпадала по архитектуре (обе x64), хотя сам PostgreSQL может работать и на отдельном сервере.

Порядок выбора версии
  1. 1
    Узнайте точный релиз платформы 1С (Конфигуратор → Справка → О программе).
  2. 2
    Откройте системные требования этого релиза на портале 1С и найдите список поддерживаемых версий PostgreSQL.
  3. 3
    Выберите максимальную версию из списка, для которой есть готовая сборка 1C:PostgreSQL или Postgres Pro.
  4. 4
    Проверьте разрядность: сервер 1С и PostgreSQL должны быть x64.
  5. 5
    Скачайте дистрибутив только с официального источника: releases.1c.ru или сайт Postgres Professional.

Рекомендации по выбору для типовых сценариев

Новое внедрение, платформа 8.3.21 и новее

Берите PostgreSQL 14 или 15 в сборке 1С или Postgres Pro — если они входят в список поддерживаемых для вашего релиза. В этих версиях заметно улучшен планировщик запросов, параллельное выполнение операций и работа с индексами, что напрямую влияет на скорость проведения документов и построения отчётов в 1С. Ставить PostgreSQL 9.6 на новое внедрение нет смысла: вы получите устаревшую ветку без исправлений безопасности.

Существующая база на старой платформе (8.3.10–8.3.16)

Здесь работает обратное правило: не обновляйте PostgreSQL выше диапазона, сертифицированного для платформы. Если платформа 8.3.12 поддерживает максимум PostgreSQL 9.6, переход на 11-ю версию без обновления платформы может вызвать ошибки в запросах, которые 1С генерирует в расчёте на старое поведение СУБД. Правильная последовательность — сначала обновить платформу, протестировать, и только потом мигрировать СУБД.

Высоконагруженная база от 100 ГБ и десятки пользователей

Для крупных баз имеет смысл рассмотреть Postgres Pro Standard: в нём есть механизмы, снижающие раздувание таблиц (и как следствие — деградацию скорости), улучшенная работа с большими индексами и инструменты диагностики. На таких объёмах разница между версиями PostgreSQL тоже ощутима: переход с 9.6 на 13+ часто даёт ускорение тяжёлых отчётов без изменения кода конфигурации.

Установка и ключевые настройки после выбора версии

После установки PostgreSQL для 1С обязательна настройка конфигурации — параметры по умолчанию рассчитаны на слабое оборудование и дадут низкую производительность. В файле postgresql.conf как минимум корректируются: shared_buffers (обычно 25% оперативной памяти сервера), work_mem, maintenance_work_mem, effective_cache_size (около 50–75% RAM), max_connections с запасом под рабочие процессы 1С.

Критично правильно задать локаль при создании кластера: для 1С требуется русская локаль (например, ru_RU.UTF-8 на Linux или Russian_Russia.1251 на Windows в зависимости от сборки). Если кластер инициализирован с неправильной локалью, сортировка и сравнение строк в 1С будут работать некорректно, а исправить это можно только пересозданием кластера с выгрузкой всех баз.

bash
# Пример инициализации кластера с нужной локалью (Linux)
/usr/pgsql-14/bin/initdb -D /var/lib/pgsql/14/data --locale=ru_RU.UTF-8 --encoding=UTF8

# Проверка версии и сборки после запуска
psql -c "SELECT version();"

После настройки создайте базу через консоль кластера серверов 1С, а не напрямую в psql: платформа сама создаст нужные структуры и расширения. Прямое создание базы в обход консоли кластера — частый источник ошибок «база не найдена» и проблем с правами.

Как проверить, что версия выбрана и настроена правильно

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

Полезно проверить логи PostgreSQL: ошибки вида «could not serialize access», частые deadlock или сообщения о нехватке shared memory указывают на необходимость перенастройки параметров. Саму версию и сборку можно увидеть запросом SELECT version(); — в выводе должно присутствовать упоминание 1C или Postgres Pro.

Контрольные точки

Как проверить результат

Создание базы через консоль кластера 1С
Норма

База создаётся без ошибок, конфигуратор открывается

Тревожный признак

Ошибка о несовместимости типов или отказ в создании — неверная сборка или версия

Вывод SELECT version();
Норма

В строке версии есть пометка 1C или Postgres Pro

Тревожный признак

Чистый PostgreSQL без патчей — 1С рано или поздно выдаст ошибку

Производительность отчётов через неделю работы
Норма

Время выполнения стабильно

Тревожный признак

Постоянная деградация — проверяйте autovacuum и настройки памяти

Лог PostgreSQL
Норма

Нет повторяющихся ошибок сериализации и нехватки памяти

Тревожный признак

Регулярные deadlock и ошибки — нужна перенастройка конфигурации

Типичные ошибки при выборе и обновлении

Самая распространённая ошибка — установка ванильного PostgreSQL с официального сайта. На старте всё может даже заработать, но при создании базы или первой же интенсивной работе появятся ошибки типов данных. Вторая ошибка — обновление PostgreSQL мимо платформы: администратор ставит новую СУБД, не проверив, поддерживает ли её текущий релиз 1С.

Третья группа ошибок связана с миграцией: перенос базы между мажорными версиями PostgreSQL делается через pg_upgrade или выгрузку/загрузку (dump/restore или dt), а не копированием каталога данных. Копирование файлов кластера между разными мажорными версиями гарантированно приводит к неработоспособной базе.

Типичные ошибки
01
Установка ванильного PostgreSQL без патчей 1С — ошибки при создании базы и в работе.
02
Выбор версии СУБД новее, чем поддерживает платформа, — непредсказуемые ошибки запросов.
03
Перенос каталога данных между мажорными версиями вместо pg_upgrade или dump/restore — неработоспособный кластер.
04
Инициализация кластера с неправильной локалью — некорректная сортировка, исправляется только пересозданием.
05
Работа с настройками postgresql.conf по умолчанию — низкая производительность при росте базы.

FAQ

Подойдёт ли PostgreSQL с официального сайта postgresql.org для 1С 8.3?

Нет. Платформа 1С требует специальные патчи, которых нет в стандартной поставке. Используйте сборку 1C:PostgreSQL с портала releases.1c.ru, Postgres Pro или самостоятельно собранный PostgreSQL с патчами 1С.

Какая версия PostgreSQL оптимальна для платформы 8.3.22?

Ориентируйтесь на системные требования конкретного релиза: для свежих платформ 8.3.21+ в список поддерживаемых обычно входят PostgreSQL 12–15. Из этого диапазона выбирайте максимальную версию, для которой есть готовая сборка 1С или Postgres Pro.

Можно ли обновить PostgreSQL без обновления платформы 1С?

Только в пределах диапазона версий, сертифицированного для вашего релиза платформы. Обновление СУБД за пределы этого диапазона без обновления платформы может вызвать ошибки в работе. Правильная последовательность: сначала платформа, потом СУБД.

Чем 1C:PostgreSQL отличается от Postgres Pro?

1C:PostgreSQL — бесплатная сборка с патчами совместимости, доступная при наличии договора ИТС. Postgres Pro — коммерческий продукт с техподдержкой, дополнительными механизмами производительности и сертифицированными версиями. Для небольших баз достаточно 1C:PostgreSQL, для крупных и критичных систем есть смысл рассмотреть Postgres Pro.

Как перенести базу 1С на новую версию PostgreSQL?

Два безопасных способа: выгрузка базы в файл dt через конфигуратор с последующей загрузкой на новом сервере, либо dump/restore средствами PostgreSQL (pg_dump/pg_restore). Перед миграцией сделайте обе копии и сначала проверьте процесс на тестовом стенде.

Нужна ли 64-разрядная версия PostgreSQL?

Да. Для серверной 1С 8.3 используется только 64-разрядный PostgreSQL x64: 32-разрядные версии ограничены по памяти и не поддерживаются современными сборками. Разрядность сервера 1С и СУБД должна совпадать.

Итог

Что важно запомнить

Для 1С 8.3 нужен только патченый PostgreSQL: сборка 1С или Postgres Pro. Версию выбирайте как максимальную из диапазона, сертифицированного для вашего релиза платформы, и сверяйтесь с системными требованиями на портале 1С. После установки обязательно настройте postgresql.conf и локаль кластера, а любое обновление выполняйте только после полного резервного копирования и теста на копии базы.