Как переехать с файловой базы 1С на сервер с MS SQL или PostgreSQL

· 10 мин

Содержание

Файловую базу 1С переводят в SQL через выгрузку в файл .dt: в Конфигураторе файловой базы Администрирование → Выгрузить информационную базу, затем создаёте новую базу на сервере 1С:Предприятия с СУБД MS SQL Server или PostgreSQL и в её Конфигураторе выполняете Администрирование → Загрузить информационную базу. Скопировать файл 1Cv8.1CD в SQL напрямую нельзя — данные переносит только сама платформа.

Для перехода нужны три вещи: установленный сервер 1С той же версии платформы, что и клиенты, установленная СУБД и лицензия на сервер 1С:Предприятия (ПРОФ или КОРП). Сам перенос базы на 20–30 ГБ занимает от получаса до нескольких часов. Основное время уходит на подготовку и настройку после.

1. Подготовка к переводу базы 1С на SQL: сервер, СУБД, лицензии

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

КритерийMS SQL ServerPostgreSQL
СтоимостьПлатные редакции; Express ограничен по размеру базы (10 ГБ) и памятиБесплатно; сборка с патчами для 1С
ОС сервераWindows ServerWindows или Linux
Порог входаНиже: графическая студия SSMS, много готовых инструкцийВыше: настройка через конфиги и консоль
Где удобенУже есть Windows-инфраструктура и лицензии SQLЭкономия на лицензиях, сервер на Linux

Для PostgreSQL берите сборку, адаптированную под 1С (например, Postgres Pro для 1С или дистрибутив с портала поддержки 1С). Обычный PostgreSQL из репозитория без патчей с базами 1С работает нестабильно или не работает вовсе.

Что ещё проверить до начала:

  • 🖥️ Железо. Для 10–20 пользователей ориентир — 4–8 ядер, 32 ГБ ОЗУ, SSD под файлы базы и отдельный том под журнал транзакций или WAL. СУБД и сервер 1С на одной машине — нормальная схема для небольшой компании.
  • 🔑 Лицензии. Клиентские лицензии остаются прежними. Дополнительно нужна лицензия на сервер 1С:Предприятия: без неё сервер не выдаст доступ к базе.
  • 🔢 Версии. Номер версии платформы на сервере должен совпадать с номером у клиентов. Номер платформы, на которой выгружаете .dt, — не выше номера платформы сервера.
  • 🌐 Порты. Клиенты ходят к агенту сервера (1540), менеджеру кластера (1541) и рабочим процессам (по умолчанию 1560–1591). Откройте их в брандмауэре сервера.
  • 🧹 Проверка файловой базы. Перед выгрузкой прогоните Администрирование → Тестирование и исправление в Конфигураторе или утилиту chdbfl.exe из каталога bin платформы. Ошибки целостности в .1CD при загрузке в SQL никуда не исчезнут.
Готовность к переезду
Выполнено: 0 / 6

2. Создание пустой базы 1С на SQL-сервере

Базу на стороне СУБД лучше создавать средствами самой 1С. Тогда платформа сама задаст правильную кодировку и параметры, а вам не придётся гадать с collation.

Через окно запуска 1С

  1. В окне запуска нажмите Добавить → «Создание новой информационной базы».
  2. Выберите «Создание информационной базы без конфигурации» — данные придут из .dt.
  3. Тип расположения — «На сервере 1С:Предприятия».
  4. Заполните поля:
    • Кластер серверов 1С:Предприятия — имя сервера, например srv1c (или srv1c:1541, если порт нестандартный);
    • Имя информационной базы в кластере — латиницей без пробелов, например buh_ooo_romashka;
    • Тип СУБД — MSSQLServer или PostgreSQL;
    • Сервер баз данных — имя сервера СУБД (для MS SQL с именованным экземпляром — srvsql\SQL2019);
    • Имя базы данных — обычно то же, что имя в кластере;
    • Пользователь сервера БД и пароль — учётная запись СУБД (об этом ниже).
  5. Поставьте флажок «Создать базу данных в случае ее отсутствия».
  6. Поле «Смещение дат»: для MS SQL ставят 2000, для PostgreSQL оставляют 0.
  7. Поставьте «Установить блокировку регламентных заданий» — до проверки базы фоновые задания запускаться не должны.

Через консоль администрирования серверов

В консоли раскройте Кластеры → <ваш кластер> → Информационные базы, в контекстном меню выберите Создать → Информационная база. Поля те же. Разница в том, что база не появится в списке у пользователей — её придётся добавить в окно запуска отдельно.

Если консоль администрирования не открывается после установки сервера, зарегистрируйте компоненту командой regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора. Номер версии в пути должен совпадать с запущенным сервером.

3. Перенос данных: конвертация файловой базы 1С в SQL

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

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

  1. Откройте файловую базу в Конфигураторе.
  2. Выберите Администрирование → Выгрузить информационную базу.
  3. Укажите путь к файлу, например D:\Migrate\buh_2026.dt, и дождитесь сообщения о завершении.
  4. После выгрузки не работайте в файловой базе: всё, что внесут в неё после этого момента, в серверную базу не попадёт.

Загрузка в серверную базу

  1. Откройте в Конфигураторе новую пустую серверную базу.
  2. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
  3. Подтвердите предупреждение о замене данных.
  4. После загрузки Конфигуратор предложит перезапуститься — согласитесь.

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

Пакетный перенос из командной строки

Для больших баз или ночного переезда удобно запустить всё из bat-файла. Ключи /DumpIB и /RestoreIB есть у 1cv8.exe в режиме Конфигуратора:

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set DT=D:\Migrate\buh.dt

rem Выгрузка из файловой базы
%V8% DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "pass" /DumpIB %DT% /Out D:\Migrate\dump.log

rem Загрузка в серверную базу
%V8% DESIGNER /S "srv1c\buh_ooo_romashka" /N "Администратор" /P "pass" /RestoreIB %DT% /Out D:\Migrate\restore.log

Номер платформы в пути подставьте свой. Результат проверяйте по логам в /Out: строка об успешном завершении означает, что база загружена.

Проверка после загрузки

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

4. Пользователи и права доступа после переноса на сервер

В клиент-серверном варианте права разделены на три уровня. Путаница между ними — основная причина звонков в первый день.

УровеньГде настраиваетсяКто нужен
СУБДSSMS или pg_hba.conf и роли PostgreSQLУчётка, под которой 1С ходит в СУБД
Кластер 1СКонсоль администрирования серверовАдминистратор кластера и администратор базы
Информационная базаАдминистрирование → Пользователи в базеОбычные пользователи 1С

Учётная запись СУБД

  • MS SQL. Создайте SQL-логин (режим смешанной аутентификации) с ролью dbcreator, чтобы 1С могла сама создать базу. После создания этот логин становится владельцем базы. Логин sa в настройках 1С не используйте.
  • PostgreSQL. Создайте роль с правом создавать базы:
CREATE ROLE usr1c WITH LOGIN PASSWORD 'СложныйПароль' CREATEDB;

Кластер и служба

Сразу задайте администратора кластера в консоли (Кластеры → <кластер> → Администраторы). Пока список пуст, любой пользователь сети с консолью может управлять кластером и удалять базы.

Служба сервера 1С работает под пользователем USR1CV8 (или под доменной учёткой). Ей нужны права на каталог srvinfo и доступ к сетевым ресурсам, если базы пишут файлы в общие папки.

Пользователи 1С

Списки пользователей переносятся из .dt без изменений. Если у кого-то включена аутентификация операционной системы, проверьте, что в карточке указано имя в формате \\ДОМЕН\логин, — на сервере имя компьютера может отличаться от того, что было на старом ПК.

Пользователям добавьте базу в окно запуска: Добавить → «Добавление в список существующей информационной базы» → «На сервере 1С:Предприятия», с теми же именами кластера и базы. Строка подключения выглядит так: Srvr="srv1c";Ref="buh_ooo_romashka";.

5. Настройка MS SQL и PostgreSQL под 1С после миграции

Без настройки серверная база может работать медленнее файловой — особенно на одном-двух пользователях. Причина почти всегда в параметрах СУБД по умолчанию.

MS SQL Server

  • 🧠 Max server memory. Ограничьте память SQL так, чтобы ОС и процессам 1С осталось 20–30%. На сервере с 32 ГБ разумно задать около 22–24 ГБ.
  • ⚙️ Max degree of parallelism. Для баз 1С рекомендуется значение 1.
  • 💾 Модель восстановления. Simple — если хватает ежедневной полной копии. Full — если нужна точка восстановления на любой момент, но тогда обязательны копии журнала, иначе файл .ldf вырастет до размера диска.
  • 📂 tempdb вынесите на быстрый SSD.

PostgreSQL

Основные параметры в postgresql.conf для сервера с 32 ГБ ОЗУ, где на той же машине работает 1С:

shared_buffers = 8GB
effective_cache_size = 20GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 300

После изменения shared_buffers и max_connections нужен перезапуск службы PostgreSQL.

Перезапуск СУБД или службы сервера 1С обрывает все сеансы пользователей с потерей несохранённых данных. Делайте это вне рабочего времени или после выхода всех из базы.

На стороне 1С

В свойствах рабочего сервера в консоли проверьте ограничения памяти рабочих процессов. Для 64-разрядного сервера и больших баз значения по умолчанию часто слишком малы и процессы перезапускаются под нагрузкой.

6. Ошибки при переводе 1С с файлового режима на SQL

Диагностика: выберите симптом

Отдельно про PostgreSQL. Если база создаётся с ошибкой или загрузка .dt падает на ровном месте, первым делом проверьте, что установлена сборка для 1С, а не обычный дистрибутив. Без патчей настройкой это не исправить, только заменой СУБД.

7. Регламентное обслуживание базы 1С на SQL-сервере

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

ЗадачаMS SQLPostgreSQLКак часто
Полная копияПлан обслуживания: Back Up Database (Full)pg_dump или физическая копияЕжедневно ночью
Копия журналаBack Up Database (Transaction Log), только для модели FullАрхивирование WAL при необходимостиКаждые 15–60 минут
СтатистикаUpdate Statistics, затем очистка процедурного кеша DBCC FREEPROCCACHEVACUUM ANALYZE (плюс включённый autovacuum)Ежедневно
ИндексыReorganize Index или Rebuild IndexREINDEX по необходимостиРаз в неделю
ЦелостностьDBCC CHECKDBПроверка по логам и при восстановленииРаз в неделю

Пример для PostgreSQL по расписанию (cron или планировщик Windows):

"C:\Program Files\PostgreSQL\16\bin\vacuumdb.exe" -U usr1c -d buh_ooo_romashka --analyze
"C:\Program Files\PostgreSQL\16\bin\pg_dump.exe" -U usr1c -Fc -f D:\Backup\buh.backup buh_ooo_romashka

Путь к утилитам и номер версии PostgreSQL подставьте свои.

Выгрузку в .dt продолжайте делать перед каждым обновлением конфигурации. Это не замена копии средствами СУБД, но удобный способ развернуть копию базы на любом сервере или в файловом варианте.

Раз в квартал проверяйте, что копия восстанавливается: разверните её в тестовую базу и откройте. Копия, которую ни разу не восстанавливали, — это надежда, а не резерв.

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

Можно ли вернуть базу обратно из SQL в файловый режим?
Да. Выгрузите .dt из серверной базы, создайте пустую файловую базу и загрузите файл через Администрирование → Загрузить информационную базу.
Подойдёт ли бесплатный MS SQL Express?
Для небольших баз — да, но у Express есть предел размера файла данных 10 ГБ на базу и ограничение по памяти. Типовая бухгалтерия за 3–5 лет часто его превышает.
Нужно ли заново настраивать обмены и пути к файлам?
Да, проверьте. Обработки, загрузки из банка и обмены, которые работали с локальными папками, теперь выполняются на сервере. Пути вида C:\Обмен будут указывать на диск сервера, а не пользователя.
Сохранятся ли расширения и внешние обработки?
Расширения конфигурации хранятся в базе и переносятся вместе с .dt. Внешние обработки, подключённые через справочник дополнительных обработок, тоже переезжают; файлы, которые открывали вручную через «Файл → Открыть», — нет.
Сколько стоит переход?
Ориентировочно: лицензия на сервер 1С ПРОФ — от 50–90 тыс. руб., MS SQL Standard с клиентскими лицензиями — от нескольких сотен тысяч рублей, PostgreSQL для 1С — бесплатно. Работа специалиста по переносу и настройке — примерно 10–40 тыс. руб. в зависимости от объёма.