Администрирование · 9 мин
Как создать базу 1С на сервере PostgreSQL
Пошаговая инструкция по созданию базы 1С на PostgreSQL: установка сборки PostgresPro, настройка кластера, создание ИБ в консоли кластера 1С и типичные ошибки.
Перенос информационной базы 1С с файлового режима на связку «сервер 1С:Предприятие + PostgreSQL» — стандартный шаг, когда в базе работают более 5–10 пользователей и файловый вариант начинает тормозить и конфликтовать по блокировкам. PostgreSQL — бесплатная СУБД, официально поддерживаемая платформой 1С, поэтому именно её чаще всего выбирают для небольших и средних внедрений.
Процесс состоит из четырёх этапов: установка специальной сборки PostgreSQL, установка сервера 1С:Предприятие, создание пустой базы в консоли кластера 1С и загрузка данных. Ниже разобран каждый шаг с конкретными командами, проверками результата и типичными ошибками.
Что понадобится перед началом работы
Для работы связки потребуются три компонента: сама СУБД PostgreSQL, сервер 1С:Предприятие и клиентская часть (толстый или тонкий клиент) для подключения и загрузки данных. Все компоненты должны быть совместимы по разрядности и версии — несовпадение одна из самых частых причин сбоев.
Критически важный момент: обычная сборка PostgreSQL с официального сайта postgresql.org с 1С не работает. Нужна специальная сборка с патчами — PostgresPro (вариант «Postgres Pro Standard» или сборка для 1С) либо сборка PostgreSQL, которую распространяет сама фирма «1С» через портал. Эти сборки содержат исправления, без которых платформа 1С не сможет корректно работать с СУБД.
Также заранее подготовьте дистрибутив сервера 1С:Предприятие той же версии платформы, под которой будет работать прикладное решение, и файл выгрузки (.dt) существующей базы, если переносите данные, а не создаёте пустую базу с нуля.
Установка и настройка PostgreSQL
Установите сборку PostgresPro на сервер, где будет размещаться СУБД. В Windows установщик предложит задать пароль суперпользователя postgres и порт (по умолчанию 5432) — обязательно запишите пароль, он понадобится при создании базы. В Linux установка выполняется пакетным менеджером, после чего кластер инициализируется и запускается служба.
# Пример для Debian/Ubuntu: проверка статуса службы
systemctl status postgrespro-1c-16
# Подключение к СУБД под суперпользователем
psql -U postgres -h localhostПосле установки проверьте, что служба PostgreSQL запущена и принимает подключения. Для этого достаточно подключиться утилитой psql с локального хоста под пользователем postgres. Если подключение прошло и появилось приглашение командной строки — СУБД работает.
Для приемлемой производительности 1С рекомендуется скорректировать конфигурацию PostgreSQL в файле postgresql.conf. Основные параметры, которые обычно меняют: shared_buffers (объём памяти под кэш СУБД, ориентир — четверть оперативной памяти сервера), work_mem, effective_cache_size и параметры журнала транзакций. Точные значения зависят от объёма ОЗУ и нагрузки, универсальной формулы нет.
Установка сервера 1С:Предприятие
Сервер 1С можно установить на ту же машину, где стоит PostgreSQL (для небольших внедрений это нормальный вариант), либо на отдельный сервер. При установке дистрибутива платформы отметьте компонент «Сервер 1С:Предприятия» и при необходимости «Администрирование сервера 1С:Предприятия» — консоль управления кластером.
После установки убедитесь, что служба «Агент сервера 1С:Предприятия» запущена. По умолчанию агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы занимают диапазон 1560–1591. Если сервер СУБД и сервер 1С находятся на разных машинах, проверьте, что между ними открыты нужные порты и нет блокировок файрволом.
Создание информационной базы в консоли кластера
Создание базы выполняется не в СУБД напрямую, а через консоль «Администрирование серверов 1С:Предприятия» либо из диалога запуска клиента. Платформа сама создаст базу данных в PostgreSQL и пропишет все необходимые структуры — вручную создавать базу через psql не нужно.
- 1Откройте консоль «Администрирование серверов 1С:Предприятия» и разверните узел локального кластера
- 2Кликните правой кнопкой по «Информационные базы» и выберите «Создать» → «Информационная база»
- 3Укажите имя базы (латиницей, без пробелов), тип СУБД — PostgreSQL, сервер СУБД — имя или IP сервера PostgreSQL
- 4Введите имя базы данных в СУБД, пользователя postgres и его пароль
- 5Установите флажок «Создать базу данных в случае её отсутствия» и нажмите «ОК»
- 6Дождитесь завершения операции и проверьте, что база появилась в списке информационных баз кластера
Альтернативный способ — создать базу из диалога запуска 1С: в списке информационных баз нажать «Добавить» → «Создание новой информационной базы» → «На сервере 1С:Предприятия» и заполнить те же параметры. Результат идентичен: платформа создаст пустую базу данных в PostgreSQL и зарегистрирует её в кластере.
Имена базы в кластере 1С и базы данных в PostgreSQL могут отличаться, но удобнее, когда они совпадают — так проще ориентироваться при обслуживании. Имя базы данных в СУБД должно состоять из латинских букв, цифр и подчёркиваний.
Загрузка данных и первый запуск
Новосозданная база пустая — в ней нет ни конфигурации, ни данных. Чтобы наполнить её, откройте базу конфигуратором и загрузите либо файл выгрузки .dt (через «Администрирование» → «Загрузить информационную базу»), либо конфигурацию из файла .cf, если разворачиваете чистую конфигурацию поставщика.
Выгрузку .dt из файловой базы делают заранее: «Администрирование» → «Выгрузить информационную базу». Учтите, что загрузка большой базы может занять значительное время — от десятков минут до нескольких часов в зависимости от объёма. Во время загрузки пользователи не должны работать с базой.
Как проверить результат
Информационная база видна в списке, свойства открываются без ошибок
База отсутствует или при открытии свойств ошибка соединения с СУБД
Конфигуратор и предприятие открываются, справочники доступны
Ошибка аутентификации СУБД или «база данных не найдена»
В psql команда \l показывает базу данных с указанным именем
Базы в списке нет — создание не завершилось
Типичные ошибки и их устранение
Отдельно стоит сказать о пользователе СУБД. В простых внедрениях базу создают под суперпользователем postgres. В более строгих схемах создают отдельного пользователя с правами на конкретную базу — это безопаснее, но требует аккуратной выдачи привилегий, иначе платформа не сможет создавать и изменять объекты.
Если при создании базы возникает ошибка, первым делом смотрите технологический журнал сервера 1С и лог PostgreSQL — там указана конкретная причина отказа, будь то аутентификация, отсутствие прав или недоступность сервера.
Обслуживание базы после создания
Работающая на PostgreSQL база требует регулярного обслуживания: резервного копирования средствами СУБД (pg_dump или физические копии), периодического обновления статистики и контроля свободного места на диске под данные и журналы транзакций. Без бэкапов любой сбой диска превращается в потерю данных.
Настройте автоматическое резервное копирование pg_dump по расписанию сразу после развёртывания базы, а не «потом». Проверяйте восстановление из копии на тестовом стенде хотя бы раз — копия, которая ни разу не восстанавливалась, не считается надёжной.
Также избегайте прямого вмешательства в данные базы через SQL-запросы: структура таблиц 1С в PostgreSQL служебная, и ручные изменения почти гарантированно приведут к рассогласованию данных. Все операции с данными выполняйте средствами платформы.
Что важно запомнить
Для 1С нужна специальная сборка PostgreSQL (PostgresPro). База создаётся из консоли кластера 1С или диалога запуска с флажком «Создать базу данных», вручную в СУБД её создавать не нужно. После создания загрузите .dt или .cf через конфигуратор и сразу настройте резервное копирование.
Частые вопросы
Можно ли использовать обычный PostgreSQL с официального сайта?
Нет. Платформа 1С требует сборку с патчами — PostgresPro или сборку, распространяемую фирмой «1С». На «ванильном» PostgreSQL создание базы завершится ошибкой либо работа будет нестабильной.
Можно ли поставить PostgreSQL и сервер 1С на одну машину?
Да, для небольших внедрений это распространённый и рабочий вариант. Главное — чтобы серверу хватало оперативной памяти на оба процесса, и корректно распределить память в настройках СУБД.
Нужно ли создавать базу данных в PostgreSQL вручную через psql?
Нет. Базу создаёт сама платформа 1С при установке флажка «Создать базу данных в случае её отсутствия». Ручное создание приведёт к несовместимой структуре, и платформа не сможет с такой базой работать.
Как перенести существующую файловую базу на PostgreSQL?
Откройте файловую базу конфигуратором, выполните «Администрирование» → «Выгрузить информационную базу» в файл .dt, затем создайте серверную базу, откройте её конфигуратором и загрузите этот файл. После загрузки проверьте работу ключевых отчётов и документов.
Какой пользователь СУБД нужен для создания базы?
Проще всего использовать суперпользователя postgres с паролем, заданным при установке. В промышленной среде лучше создать отдельного пользователя с правами на конкретную базу — это ограничит последствия компрометации учётных данных.
Что делать, если при создании базы возникает ошибка аутентификации?
Проверьте пароль пользователя postgres, убедитесь, что в pg_hba.conf разрешены подключения с хоста сервера 1С методом md5 или scram-sha-256, и что служба PostgreSQL доступна по сети на порту 5432. После правки pg_hba.conf перезапустите службу СУБД.