Как перевести базу 1С на сервер SQL

· 10 мин

Содержание

Чтобы перевести базу 1С на SQL, нужно поставить сервер 1С:Предприятия и СУБД (MS SQL Server или PostgreSQL), создать в кластере новую пустую информационную базу и загрузить в неё выгрузку .dt из файловой базы. Код конфигурации и данные переносятся целиком: пользователи, настройки, история документов остаются прежними.

Обычно к переходу приходят, когда файловая база выросла до десятков гигабайт, а 10–15 человек начинают ждать друг друга при проведении документов и закрытии месяца. Если сервер 1С уже куплен, сам перенос базы занимает один вечер.

Что меняется в 1С после переезда с файловой базы на SQL

В файловом режиме каждый клиент сам читает и пишет файл 1Cv8.1CD по сети. Блокировки здесь грубые, а повреждение файла при обрыве связи — частая история.

В клиент-серверном варианте появляется три звена:

  • 🖥 клиент 1С — у пользователя, данные напрямую не трогает;
  • ⚙️ сервер 1С:Предприятия — выполняет запросы и проведение, держит сеансы;
  • 🗄 СУБД — хранит таблицы базы, отвечает за транзакции и блокировки.

Что это даёт на практике:

  • одновременная работа 20, 50, 100 пользователей без «ожидания на блокировке» по любому чиху;
  • быстрые отчёты по большим периодам — тяжёлую работу делает сервер, а не ПК бухгалтера;
  • резервные копии средствами СУБД без выгона пользователей;
  • доступ через интернет , тонкий клиент и веб-клиент без копирования файла по сети.

Цена вопроса — лицензия на сервер 1С (варианты: МИНИ для небольшого числа подключений, обычная и КОРП), при выборе MS SQL ещё и лицензии Microsoft, плюс отдельная машина и администрирование.

MS SQL Server или PostgreSQL: какую СУБД выбрать для 1С

Обе СУБД официально поддерживаются платформой 8.3. Типовые конфигурации (БП, ЗУП, УТ, ERP) работают на обеих.

КритерийMS SQL ServerPostgreSQL
СтоимостьПлатная (Standard), Express бесплатна с ограничениямиБесплатна
ОС сервераWindows Server (Linux — с оговорками)Windows и Linux
Требования к сборкеОбычный дистрибутив MicrosoftТолько сборка с патчами для 1С
АдминистрированиеПривычный SSMS, планы обслуживания мышкойКомандная строка, pgAdmin, cron
ИмпортозамещениеНетПодходит, есть сертифицированные сборки

Короткие правила выбора:

  • 💰 бюджет ограничен или нужен Linux — PostgreSQL;
  • 🧑‍💻 в штате админ Windows, MS SQL уже куплен — MS SQL Server;
  • 🏛 госсектор и требования к отечественному ПО — PostgreSQL в сборке Postgres Professional.

Обычный PostgreSQL с сайта postgresql.org для 1С не подходит. Платформе нужны дополнительные типы и функции (например, тип mchar), которые есть только в сборках «для 1С». Их распространяют фирма 1С и компания Postgres Professional.

MS SQL Express ограничивает размер одной базы 10 ГБ и использует мало памяти. Для теста и маленькой бухгалтерии сойдёт, для рабочей базы на 10+ человек — нет.

Версию СУБД сверяйте со списком поддерживаемых для вашей версии платформы: свежий выпуск PostgreSQL или SQL Server может работать только с новыми релизами 8.3.2x.

Подготовка сервера к переводу базы 1С на SQL

Ориентировочные требования к железу для сервера, где стоят и 1С, и СУБД:

ПользователейЯдра CPUОЗУДиск
до 10416 ГБSSD от 250 ГБ
10–306–832 ГБNVMe, отдельный диск под копии
30–808–1664 ГБNVMe в RAID 1/10

Цифры примерные: ERP и УТ с большим документооборотом требуют больше памяти, чем БП на 5 организаций. Частота ядра для 1С важнее их количества — однопоточное проведение документа упирается именно в неё.

Что подготовить до переноса:

  1. ОС. Windows Server 2016 или новее либо поддерживаемый дистрибутив Linux.
  2. Сеть. Скорость 1 Гбит/с между сервером и пользователями, статический IP и DNS-имя сервера.
  3. Порты. Откройте в брандмауэре 1540 (агент сервера), 1541 (менеджер кластера) и диапазон рабочих процессов, по умолчанию 1560–1591. Для MS SQL — 1433, для PostgreSQL — 5432, если СУБД на отдельной машине.
  4. Сервер 1С. Установите платформу с компонентом «Сервер 1С:Предприятия» той же версии, что у клиентов. Установщик создаёт службу агента и пользователя USR1CV8, под которым она работает.
  5. СУБД. Для MS SQL при установке выберите сортировку Cyrillic_General_CI_AS и смешанную проверку подлинности. Для PostgreSQL задайте пароль пользователя postgres.
  6. Лицензии. Активируйте лицензию на сервер и клиентские лицензии на сервере 1С, чтобы их выдавал сервер.

Проверьте файловую базу перед выгрузкой: в конфигураторе Администрирование → Тестирование и исправление с галочками проверки логической и ссылочной целостности. Ошибки, которые тянутся в файле годами, на SQL никуда не денутся, а при загрузке могут её прервать.

Готовность к переносу
Выполнено: 0 / 6

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

После установки сервера кластер создаётся автоматически. Управляют им через «Администрирование серверов 1С Предприятия» — оснастку, которая ставится вместе с платформой. Если она не открывается, зарегистрируйте библиотеку radmin.dll из каталога bin платформы:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути подставьте свой. Команду запускайте от имени администратора.

Создать базу на сервере можно двумя способами.

Через консоль кластера:

  1. Добавьте центральный сервер по имени машины, раскройте Кластеры → Локальный кластер → Информационные базы.
  2. В контекстном меню выберите создание новой информационной базы.
  3. Заполните поля: имя базы в кластере, тип СУБД (MSSQLServer или PostgreSQL), сервер баз данных, имя базы данных, пользователь и пароль СУБД.
  4. Для MS SQL поставьте смещение дат 2000, для PostgreSQL оставьте 0.
  5. Отметьте «Создать базу данных в случае ее отсутствия» и «Разрешить выдачу лицензий сервером 1С:Предприятия».
  6. Включите «Установить блокировку регламентных заданий».

Через окно запуска 1С: Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации → На сервере 1С:Предприятия — те же поля в мастере.

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

Пользователь СУБД при создании базы должен иметь право создавать базы данных: в MS SQL — роль dbcreator или sysadmin, в PostgreSQL — суперпользователь или роль с CREATEDB.

Перенос файловой базы 1С на SQL через выгрузку .dt

Схема одна для любой СУБД: выгрузить, загрузить, проверить, переключить пользователей.

  1. Предупредите пользователей и выберите окно: на базе 20 ГБ перенос занимает от одного до нескольких часов.
  2. Откройте файловую базу в конфигураторе: Администрирование → Выгрузить информационную базу, сохраните файл .dt.
  3. Откройте новую серверную базу в конфигураторе (вход без пароля — база пустая).
  4. Выполните Администрирование → Загрузить информационную базу и укажите файл .dt.
  5. После загрузки запустите базу в режиме 1С:Предприятие под администратором, откройте пару крупных отчётов и проведите тестовый документ.
  6. Сверьте остатки: оборотно-сальдовая ведомость за прошлый месяц в старой и новой базе должна совпасть до копейки.
  7. Переведите файловую базу в архив: переименуйте каталог или уберите её из списка баз, чтобы никто не продолжил работу в старой копии.
  8. Пропишите пользователям новую базу: Сервер1С\ИмяБазы в окне запуска или через общий файл списка баз.

Не разрешайте работу в двух базах одновременно: данные, внесённые в старую файловую базу после выгрузки, в новую не попадут.

Выгрузку и загрузку можно запустить из командной строки — удобно ночью по планировщику:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "D:\Backup\buh.dt"

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /RestoreIB "D:\Backup\buh.dt"

Ключ /F указывает файловую базу, /S — серверную в формате сервер\имя.

Ускорение работы 1С после перехода на SQL

Сразу после переезда база может работать не быстрее файловой. Обычно виновата настройка СУБД по умолчанию: она рассчитана на «универсальную» нагрузку, а не на 1С.

MS SQL Server

  • 🧠 Max server memory. Ограничьте память SQL так, чтобы ОС и процессам rphost осталось место. На сервере 32 ГБ, где стоят и 1С, и SQL, разумно отдать SQL 18–20 ГБ.
  • 🔢 MAXDOP = 1. Для 1С рекомендуется отключать параллелизм запросов: он даёт взаимоблокировки и скачки нагрузки.
  • 💾 Модель восстановления. Full — если делаете копии журнала транзакций. Если копий журнала нет, ставьте Simple, иначе файл журнала вырастет до размера диска.
  • 🧹 План обслуживания. Ежедневно — обновление статистики и очистка процедурного кэша (DBCC FREEPROCCACHE) после него, раз в неделю — перестроение индексов.

PostgreSQL

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

shared_buffers = 8GB
effective_cache_size = 20GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500
  • shared_buffers — около четверти ОЗУ;
  • effective_cache_size — сколько памяти ОС может отдать под кэш файлов;
  • work_mem выделяется на каждую операцию сортировки, поэтому слишком большое значение при сотне сеансов съест всю память.

Автоочистку (autovacuum) не выключайте. Раз в неделю ночью полезно выполнить VACUUM ANALYZE по базе — это обновляет статистику для планировщика запросов.

Изменение shared_buffers и max_connections требует перезапуска службы PostgreSQL. Все сеансы 1С при этом оборвутся — делайте это вне рабочего времени, предупредив пользователей.

Общее для любой СУБД

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

Резервное копирование базы 1С на SQL-сервере

Файл .dt удобен для переноса, но как единственная резервная копия не годится: на больших базах выгрузка идёт часами и требует, чтобы в базе никто не менял данные.

Надёжная схема — копии средствами СУБД.

MS SQL Server:

  • полная копия — каждую ночь;
  • копия журнала транзакций — каждый час (только при модели Full): позволяет откатиться на конкретное время;
  • настраивается мастером планов обслуживания в SSMS, работает без отключения пользователей.

PostgreSQL:

pg_dump -U postgres -Fc -f /backup/buh_$(date +%F).dump buh

Восстановление — в заранее созданную пустую базу командой pg_restore -U postgres -d buh_test /backup/buh_2026-10-01.dump. Для отката на точное время настраивают архивирование WAL и pg_basebackup.

Что обязательно:

  1. 🗓 Храните минимум 7 ежедневных и 4 еженедельные копии.
  2. 📦 Держите копию вне сервера: другой диск, NAS, облако.
  3. 🔁 Раз в месяц восстанавливайте копию в тестовую базу и открывайте её в 1С. Непроверенная копия — не копия.
  4. 📄 Перед обновлением конфигурации дополнительно делайте .dt — его проще развернуть, если обновление пошло не так.

Ошибки при переходе на SQL и как их снять

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

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

Можно ли вернуть базу обратно в файловый вариант?
Да. Выгрузите .dt из серверной базы, создайте пустую файловую базу и загрузите в неё файл. Обратный путь работает так же, как прямой.
Нужно ли докупать клиентские лицензии при переходе на сервер?
Нет, клиентские лицензии остаются те же. Дополнительно нужна только лицензия на сервер 1С, а для MS SQL — лицензии Microsoft.
Можно ли поставить сервер 1С и SQL на обычный офисный компьютер?
Для теста — да. Для рабочей базы нужен компьютер, который не выключают на ночь, с SSD, ИБП и достаточной памятью. Иначе любая перезагрузка оборвёт работу всех пользователей.
Сохранятся ли пароли и права пользователей 1С?
Да. Список пользователей, их роли и пароли входят в выгрузку .dt и переносятся вместе с данными.
Сколько времени займёт перевод базы на SQL?
Сама выгрузка и загрузка базы на 10–30 ГБ — ориентировочно от одного до четырёх часов. Установка и настройка сервера с нуля — ещё полдня-день.