При обновлении платформы 1С:Предприятие до версии 8.3.18 пользователи часто сталкиваются с критической ошибкой «DATABASE не пригоден для использования», если в качестве СУБД используется PostgreSQL версии 12.1. Данная проблема связана с изменением требований платформы к настройкам взаимодействия с базой данных и возможной несовместимостью версий протоколов.
В ходе исследования проблемы мы выяснили, что начиная с версии платформы 8.3.18, 1С ужесточила требования к конфигурации PostgreSQL. Основные причины сбоя включают:
shared_preload_libraries могут потребовать обновления для обеспечения целостности данных.Самым эффективным способом устранения проблемы, который доказал свою работоспособность в ходе тестирования, является обновление СУБД PostgreSQL до версии 12.4.1 или выше. На основе наших наблюдений, это обновление исправляет патчи, некорректно обрабатываемые платформой 8.3.18.
Порядок действий:
Интересным фактом является то, что после обновления до 12.4.1 база данных продолжает корректно функционировать даже в том случае, если вы решите временно откатиться на предыдущие версии платформы (например, 8.3.16), что говорит об изменении самой структуры или метаданных СУБД при первичной инициализации под управлением новой платформы.
Если обновление СУБД на данный момент невозможно, попробуем изменить параметры конфигурации сервера. Для этого необходимо отредактировать файл postgresql.conf, расположенный в каталоге данных вашего сервера PostgreSQL.
Рассмотрим подробнее необходимые изменения. Откройте файл в текстовом редакторе и найдите (или добавьте) следующие строки, сняв с них комментарий:
backslash_quote = on
escape_string_warning = off
standard_conforming_strings = off
После внесения правок обязательно перезапустите службу PostgreSQL, чтобы настройки вступили в силу. Данный метод помогает сгладить несовместимости в методах экранирования строк, однако помните, что это временная мера и для стабильной работы в промышленной эксплуатации крайне рекомендуется использовать официально поддерживаемые версии СУБД.
Если вышеуказанные шаги не привели к устранению ошибки, разберем способы углубленной диагностики:
log_min_messages = debug1 в конфигурационном файле, чтобы увидеть более подробные записи о причинах отказа в доступе.localhost port=5433.lc_collate и lc_ctype: Различия в настройках локали могут приводить к тому, что 1С не может корректно интерпретировать индексы таблиц, созданные на старых версиях сервера.В процессе совместной работы над данной проблемой мы выяснили, что наиболее надежным путем является использование актуальных сборок от Postgres Pro, которые проходят сертификацию специалистами 1С. Помните, что поддержание актуальности как платформы 1С, так и СУБД, гарантирует стабильную работу всех транзакционных механизмов вашей информационной системы.