Как перевести базу 1С на сервер SQL
Содержание
Чтобы перевести базу 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 Server | PostgreSQL |
|---|---|---|
| Стоимость | Платная (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 | ОЗУ | Диск |
|---|---|---|---|
| до 10 | 4 | 16 ГБ | SSD от 250 ГБ |
| 10–30 | 6–8 | 32 ГБ | NVMe, отдельный диск под копии |
| 30–80 | 8–16 | 64 ГБ | NVMe в RAID 1/10 |
Цифры примерные: ERP и УТ с большим документооборотом требуют больше памяти, чем БП на 5 организаций. Частота ядра для 1С важнее их количества — однопоточное проведение документа упирается именно в неё.
Что подготовить до переноса:
- ОС. Windows Server 2016 или новее либо поддерживаемый дистрибутив Linux.
- Сеть. Скорость 1 Гбит/с между сервером и пользователями, статический IP и DNS-имя сервера.
- Порты. Откройте в брандмауэре
1540(агент сервера),1541(менеджер кластера) и диапазон рабочих процессов, по умолчанию1560–1591. Для MS SQL —1433, для PostgreSQL —5432, если СУБД на отдельной машине. - Сервер 1С. Установите платформу с компонентом «Сервер 1С:Предприятия» той же версии, что у клиентов. Установщик создаёт службу агента и пользователя
USR1CV8, под которым она работает. - СУБД. Для MS SQL при установке выберите сортировку
Cyrillic_General_CI_ASи смешанную проверку подлинности. Для PostgreSQL задайте пароль пользователяpostgres. - Лицензии. Активируйте лицензию на сервер и клиентские лицензии на сервере 1С, чтобы их выдавал сервер.
Проверьте файловую базу
перед выгрузкой: в конфигураторе Администрирование → Тестирование и исправление с галочками проверки логической и ссылочной целостности. Ошибки, которые тянутся в файле годами, на SQL никуда не денутся, а при загрузке могут её прервать.
Настройка кластера 1С и создание пустой базы на SQL
После установки сервера кластер создаётся автоматически. Управляют им через «Администрирование серверов 1С Предприятия» — оснастку, которая ставится вместе с платформой. Если она не открывается, зарегистрируйте библиотеку radmin.dll из каталога bin платформы:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой. Команду запускайте от имени администратора.
Создать базу на сервере можно двумя способами.
Через консоль кластера:
- Добавьте центральный сервер по имени машины, раскройте
Кластеры → Локальный кластер → Информационные базы. - В контекстном меню выберите создание новой информационной базы.
- Заполните поля: имя базы в кластере, тип СУБД (
MSSQLServerилиPostgreSQL), сервер баз данных, имя базы данных, пользователь и пароль СУБД. - Для MS SQL поставьте смещение дат 2000, для PostgreSQL оставьте 0.
- Отметьте «Создать базу данных в случае ее отсутствия» и «Разрешить выдачу лицензий сервером 1С:Предприятия».
- Включите «Установить блокировку регламентных заданий».
Через окно запуска 1С: Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации → На сервере 1С:Предприятия — те же поля в мастере.
Блокировка регламентных заданий — главный приём при переезде. Пока вы проверяете новую базу, она не начнёт обмениваться с сайтом, отправлять отчёты и загружать банк одновременно со старой файловой. Снимите блокировку только после окончательного переключения.
Пользователь СУБД при создании базы должен иметь право создавать базы данных: в MS SQL — роль dbcreator или sysadmin, в PostgreSQL — суперпользователь или роль с CREATEDB.
Перенос файловой базы 1С на SQL через выгрузку .dt
Схема одна для любой СУБД: выгрузить, загрузить, проверить, переключить пользователей.
- Предупредите пользователей и выберите окно: на базе 20 ГБ перенос занимает от одного до нескольких часов.
- Откройте файловую базу в конфигураторе:
Администрирование → Выгрузить информационную базу, сохраните файл.dt. - Откройте новую серверную базу в конфигураторе (вход без пароля — база пустая).
- Выполните
Администрирование → Загрузить информационную базуи укажите файл.dt. - После загрузки запустите базу в режиме 1С:Предприятие под администратором, откройте пару крупных отчётов и проведите тестовый документ.
- Сверьте остатки: оборотно-сальдовая ведомость за прошлый месяц в старой и новой базе должна совпасть до копейки.
- Переведите файловую базу в архив: переименуйте каталог или уберите её из списка баз, чтобы никто не продолжил работу в старой копии.
- Пропишите пользователям новую базу:
Сервер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.
Что обязательно:
- 🗓 Храните минимум 7 ежедневных и 4 еженедельные копии.
- 📦 Держите копию вне сервера: другой диск, NAS, облако.
- 🔁 Раз в месяц восстанавливайте копию в тестовую базу и открывайте её в 1С. Непроверенная копия — не копия.
- 📄 Перед обновлением конфигурации дополнительно делайте
.dt— его проще развернуть, если обновление пошло не так.
Ошибки при переходе на SQL и как их снять
Частые вопросы
Можно ли вернуть базу обратно в файловый вариант?
.dt из серверной базы, создайте пустую файловую базу и загрузите в неё файл. Обратный путь работает так же, как прямой.Нужно ли докупать клиентские лицензии при переходе на сервер?
Можно ли поставить сервер 1С и SQL на обычный офисный компьютер?
Сохранятся ли пароли и права пользователей 1С?
.dt и переносятся вместе с данными.