Как переехать с файловой базы 1С на сервер с MS SQL или PostgreSQL
Содержание
Файловую базу
1С переводят в SQL через выгрузку в файл .dt: в Конфигураторе файловой базы Администрирование → Выгрузить информационную базу, затем создаёте новую базу на сервере 1С:Предприятия с СУБД MS SQL Server или PostgreSQL и в её Конфигураторе выполняете Администрирование → Загрузить информационную базу. Скопировать файл 1Cv8.1CD в SQL напрямую нельзя — данные переносит только сама платформа.
Для перехода нужны три вещи: установленный сервер 1С той же версии платформы, что и клиенты, установленная СУБД и лицензия на сервер 1С:Предприятия (ПРОФ или КОРП). Сам перенос базы на 20–30 ГБ занимает от получаса до нескольких часов. Основное время уходит на подготовку и настройку после.
1. Подготовка к переводу базы 1С на SQL: сервер, СУБД, лицензии
Начните с выбора СУБД. Для типовых конфигураций 1С подходят обе популярные системы, разница — в деньгах и в опыте вашего администратора.
| Критерий | MS SQL Server | PostgreSQL |
|---|---|---|
| Стоимость | Платные редакции; Express ограничен по размеру базы (10 ГБ) и памяти | Бесплатно; сборка с патчами для 1С |
| ОС сервера | Windows Server | Windows или 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 никуда не исчезнут.
2. Создание пустой базы 1С на SQL-сервере
Базу на стороне СУБД лучше создавать средствами самой 1С. Тогда платформа сама задаст правильную кодировку и параметры, а вам не придётся гадать с collation.
Через окно запуска 1С
- В окне запуска нажмите
Добавить→ «Создание новой информационной базы». - Выберите «Создание информационной базы без конфигурации» — данные придут из
.dt. - Тип расположения — «На сервере 1С:Предприятия».
- Заполните поля:
- Кластер серверов
1С:Предприятия — имя сервера, например
srv1c(илиsrv1c:1541, если порт нестандартный); - Имя информационной базы в кластере — латиницей без пробелов, например
buh_ooo_romashka; - Тип СУБД — MSSQLServer или PostgreSQL;
- Сервер баз данных — имя сервера СУБД (для MS SQL с именованным экземпляром —
srvsql\SQL2019); - Имя базы данных — обычно то же, что имя в кластере;
- Пользователь сервера БД и пароль — учётная запись СУБД (об этом ниже).
- Кластер серверов
1С:Предприятия — имя сервера, например
- Поставьте флажок «Создать базу данных в случае ее отсутствия».
- Поле «Смещение дат»: для MS SQL ставят 2000, для PostgreSQL оставляют 0.
- Поставьте «Установить блокировку регламентных заданий» — до проверки базы фоновые задания запускаться не должны.
Через консоль администрирования серверов
В консоли раскройте Кластеры → <ваш кластер> → Информационные базы, в контекстном меню выберите Создать → Информационная база. Поля те же. Разница в том, что база не появится в списке у пользователей — её придётся добавить в окно запуска отдельно.
Если консоль администрирования не открывается после установки сервера, зарегистрируйте компоненту командой regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора. Номер версии в пути должен совпадать с запущенным сервером.
3. Перенос данных: конвертация файловой базы 1С в SQL
Перенос делается в монопольном режиме. Назначьте окно вне рабочего времени и попросите всех выйти из базы.
Выгрузка из файловой базы
- Откройте файловую базу в Конфигураторе.
- Выберите
Администрирование → Выгрузить информационную базу. - Укажите путь к файлу, например
D:\Migrate\buh_2026.dt, и дождитесь сообщения о завершении. - После выгрузки не работайте в файловой базе: всё, что внесут в неё после этого момента, в серверную базу не попадёт.
Загрузка в серверную базу
- Откройте в Конфигураторе новую пустую серверную базу.
- Выберите
Администрирование → Загрузить информационную базуи укажите файл.dt. - Подтвердите предупреждение о замене данных.
- После загрузки Конфигуратор предложит перезапуститься — согласитесь.
Вместе с данными переезжают конфигурация, пользователи с паролями и их роли. Если конфигурация на поддержке, настройки поддержки тоже сохраняются.
Пакетный перенос из командной строки
Для больших баз или ночного переезда удобно запустить всё из 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 SQL | PostgreSQL | Как часто |
|---|---|---|---|
| Полная копия | План обслуживания: Back Up Database (Full) | pg_dump или физическая копия | Ежедневно ночью |
| Копия журнала | Back Up Database (Transaction Log), только для модели Full | Архивирование WAL при необходимости | Каждые 15–60 минут |
| Статистика | Update Statistics, затем очистка процедурного кеша DBCC FREEPROCCACHE | VACUUM ANALYZE (плюс включённый autovacuum) | Ежедневно |
| Индексы | Reorganize Index или Rebuild Index | REINDEX по необходимости | Раз в неделю |
| Целостность | 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?
Нужно ли заново настраивать обмены и пути к файлам?
C:\Обмен будут указывать на диск сервера, а не пользователя.Сохранятся ли расширения и внешние обработки?
.dt. Внешние обработки, подключённые через справочник дополнительных обработок, тоже переезжают; файлы, которые открывали вручную через «Файл → Открыть», — нет.