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

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

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

Как перенести файловую базу 1С на PostgreSQL: подготовка сервера, установка СУБД, выгрузка dt, создание базы в кластере, проверка результата и типичные ошибки.

Файловый вариант работы 1С удобен для небольших команд, но при росте числа пользователей и объёма данных он становится узким местом: база блокируется при регламентных операциях, растёт риск повреждения файла, а одновременная работа более 5–10 пользователей заметно тормозит. Переход на клиент-серверный вариант с PostgreSQL снимает эти ограничения: СУБД обрабатывает конкурентные запросы, поддерживает транзакции и позволяет настроить резервное копирование на уровне сервера.

Миграция выполняется штатными средствами платформы 1С и не требует сторонних конвертеров: данные выгружаются из файловой базы в файл с расширением .dt и загружаются в новую базу, созданную в кластере серверов 1С. Однако процесс требует подготовки: нужно развернуть PostgreSQL (обычно в сборке от 1С), установить сервер 1С:Предприятия и правильно настроить параметры, иначе база будет работать медленнее файловой.

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

Когда переход на PostgreSQL оправдан, а когда рано

Не каждой базе нужен клиент-серверный режим. Если с базой работают 1–3 человека, объём файла меньше 2–3 ГБ и жалоб на скорость нет, переход даст больше затрат на администрирование, чем пользы. Серверный вариант требует отдельной машины или виртуалки, регулярного обслуживания СУБД и более сложной схемы резервного копирования.

Сигналы того, что пора мигрировать: регулярные ошибки «конфликт блокировок при выполнении транзакции», невозможность выполнить регламентные задания без отключения пользователей, файл базы вырос до 5–10 ГБ и продолжает расти, число одновременных пользователей превышает 5–8 человек. Также клиент-серверный режим обязателен, если планируется веб-доступ, тонкий клиент через интернет или интеграции с высокой нагрузкой.

Число пользователейБолее 5–8 одновременно

Файловый режим начинает тормозить и конфликтовать блокировками

Размер файла 1Cv8.1CDБолее 5 ГБ

Риск повреждения файла и длительное время восстановления

Ошибки блокировокПоявляются регулярно

Признак конкуренции за файл, которую решает только СУБД

Регламентные заданияТребуют монопольного доступа

В серверном режиме выполняются без отключения пользователей

Что подготовить перед миграцией

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

Требования к железу зависят от нагрузки, но минимальный разумный ориентир для небольшой базы — 8–16 ГБ ОЗУ и SSD-диски. PostgreSQL чувствителен к скорости диска при записи журнала транзакций, поэтому размещать базу на медленном HDD не стоит. Отдельно проверьте, что версия платформы на сервере совпадает с версией, под которой работает файловая база: несовпадение версий — частая причина сбоев при загрузке.

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

Установка и настройка PostgreSQL для 1С

Установите PostgreSQL из сборки, адаптированной для 1С: она уже содержит нужные расширения и патч для работы с типом данных mchar. При установке задайте пароль суперпользователя postgres и запомните его — он понадобится при создании базы в кластере. Локаль по умолчанию должна быть ru_RU.UTF-8 (или соответствующая вашему региону): несовпадение локали приведёт к ошибкам сортировки и сравнения строк.

После установки скорректируйте основные параметры в postgresql.conf. Ключевые настройки для 1С: увеличить shared_buffers (обычно до 25% оперативной памяти), настроить effective_cache_size (около 50–75% ОЗУ), включить подходящий уровень логирования и настроить max_connections с запасом под рабочие процессы сервера 1С. Точные значения зависят от железа и нагрузки — не копируйте чужие конфиги без понимания, начните с умеренных значений.

bash
# Проверка, что PostgreSQL запущен и принимает подключения
sudo systemctl status postgresql
sudo -u postgres psql -c "SELECT version();"

Убедитесь, что сервер 1С может достучаться до PostgreSQL по сети: проверьте pg_hba.conf (должна быть строка, разрешающая подключение с адреса сервера 1С, обычно с методом md5 или scram-sha-256) и параметр listen_addresses в postgresql.conf. Если сервер 1С и СУБД на одной машине, достаточно localhost.

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

Откройте консоль управления серверами 1С (оснастка «Администрирование серверов 1С Предприятия»), зарегистрируйте свой сервер и перейдите в ветку «Информационные базы». Создайте новую базу: укажите имя, тип СУБД — PostgreSQL, сервер баз данных, имя базы в СУБД, пользователя postgres и его пароль. Флажок «Создать базу данных в случае её отсутствия» позволит платформе самой создать пустую базу в PostgreSQL.

При создании обратите внимание на параметры «Блокировка регламентных заданий» и «Выдача лицензий сервером 1С». Для тестовой базы регламентные задания лучше заблокировать, чтобы они не запустились до окончания миграции. После создания база появится в списке, но будет пустой — в неё ещё нужно загрузить данные.

Выгрузка файловой базы и загрузка на сервер

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

Выполните выгрузку: меню «Администрирование» → «Выгрузить информационную базу», укажите путь к файлу .dt. На больших базах процесс занимает от десятков минут до нескольких часов. Затем откройте конфигуратором новую пустую серверную базу и выполните «Администрирование» → «Загрузить информационную базу», выбрав полученный файл. После загрузки платформа предложит перезапустить конфигуратор — согласитесь.

Порядок действий
  1. 1
    Сделать две резервные копии файловой базы и проверить их
  2. 2
    Выполнить тестирование и исправление файловой базы
  3. 3
    Выгрузить базу в файл .dt в монопольном режиме
  4. 4
    Установить и настроить PostgreSQL и сервер 1С
  5. 5
    Создать пустую базу в кластере серверов 1С
  6. 6
    Загрузить .dt в новую базу через конфигуратор
  7. 7
    Проверить данные, права и регламентные задания
  8. 8
    Перевести пользователей на новое подключение

Проверка результата и перевод пользователей

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

Проверьте права пользователей и роли: при загрузке через .dt пользователи и их пароли переносятся, но строка подключения у всех изменится. Опубликуйте новую базу в списке подключений пользователей (или раздайте новый ярлык) и убедитесь, что старый файловый путь больше не используется — файловую базу стоит переименовать или переместить в архив, чтобы никто не внёс данные «не туда».

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

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

ОСВ за последний закрытый период
Норма

Суммы совпадают с файловой базой до копейки

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

Есть расхождения — искать потерянные документы

Вход пользователей
Норма

Все входят под своими учётками, права работают

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

Ошибки доступа или пустой список пользователей

Регламентные задания
Норма

Выполняются по расписанию без ошибок

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

Задания заблокированы или падают в журнале регистрации

Скорость работы
Норма

Отчёты и проведение не медленнее файлового режима

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

Выраженные тормоза — проверять настройки PostgreSQL

Типичные ошибки и ограничения переноса

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

Учтите ограничения: перенос через .dt переносит данные и конфигурацию, но не переносит внешние файлы (присоединённые файлы, хранящиеся на диске, если тома настроены вне базы), настройки хранилища конфигурации и подключённые внешние компоненты на стороне клиентов. Если база использует COM-соединения, обмены через каталоги или планировщики на стороне ОС, эти интеграции нужно перенастроить отдельно.

Типичные ошибки
01
Миграция без тестового прогона — на боевой базе всплывают ошибки, и откат занимает часы
02
Копирование чужого postgresql.conf без понимания — база работает медленнее файловой
03
Забытые регламентные задания — после переноса они не выполняются, и обмены встают
04
Пользователи продолжают работать в старой файловой копии — данные расходятся
05
Несовпадение версий платформы на клиенте и сервере — ошибки при подключении

Частые вопросы

Можно ли перенести базу напрямую, без файла .dt?

Штатного прямого переноса «файл → PostgreSQL» в платформе нет: выгрузка в .dt — единственный документированный универсальный способ. Существуют сторонние инструменты прямой конвертации, но их использование рискованно и не поддерживается вендором.

Сколько времени занимает миграция?

Зависит от размера базы и железа. База в несколько гигабайт обычно выгружается и загружается за 1–3 часа, большие базы могут потребовать ночного окна. Тестовый прогон на копии покажет реальную длительность для вашего случая.

Нужна ли отдельная лицензия для сервера 1С?

Да, для коммерческой работы в клиент-серверном режиме требуется лицензия на сервер 1С:Предприятия плюс клиентские лицензии. PostgreSQL в сборке от 1С распространяется бесплатно, отдельная лицензия на СУБД не нужна.

Что делать, если после переноса база работает медленно?

Проверьте настройки памяти PostgreSQL (shared_buffers, work_mem), наличие индексов, статистику планировщика (выполните ANALYZE) и скорость дисковой подсистемы. Также убедитесь, что антивирус исключил каталоги данных СУБД из проверки в реальном времени.

Можно ли вернуться на файловый режим после миграции?

Да, обратный перенос выполняется тем же способом: выгрузка серверной базы в .dt и загрузка в файловую. Но учтите, что файловый режим имеет ограничения по объёму и конкурентности, поэтому возврат оправдан только при сокращении нагрузки.

Переносятся ли пароли пользователей?

Да, список пользователей и их аутентификационные данные сохраняются в файле .dt и загружаются на сервер. Однако настройки аутентификации операционной системой и разграничение доступа к самому кластеру серверов настраиваются отдельно.

Итог

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

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