Перевод файловой базы 1С в клиент-серверный режим на MS SQL или PostgreSQL
Содержание
Чтобы перенести базу 1С на SQL, выгрузите файловую базу
в файл .dt через Конфигуратор (Администрирование → Выгрузить информационную базу), создайте новую базу в кластере сервера 1С с типом СУБД MS SQL Server или PostgreSQL и загрузите в неё этот файл (Администрирование → Загрузить информационную базу). Данные при таком переносе не теряются: .dt содержит конфигурацию, все документы, справочники, пользователей и их настройки.
Сама по себе СУБД ничего не даст без сервера 1С:Предприятия. Схема клиент-серверного режима такая: клиент → сервер 1С (агент, менеджер кластера, рабочие процессы) → SQL-сервер. Поэтому переезд — это не только загрузка данных, но и установка сервера 1С, лицензия на него и настройка прав в СУБД. Инструкция ниже — для платформы 8.3 и Windows Server 2016 и новее; шаги одинаковы для любой конфигурации, будь то Бухгалтерия, ЗУП или УТ.
Что подготовить до переноса: сервер, СУБД, версии
Перед тем как трогать рабочую базу, соберите инфраструктуру и проверьте совместимость. Ошибка на этом этапе вылезает позже — при создании базы или в первый же день работы.
Минимальный состав
- 🖥️ Сервер 1С:Предприятия 8.3 — та же версия платформы, что у клиентов, номер в номер. Клиент 8.3.24.1586 не подключится к серверу 8.3.24.1548.
- 🗄️ СУБД — Microsoft SQL Server или PostgreSQL. Ставить можно на ту же машину, что и сервер 1С, или на отдельную.
- 🔑 Лицензия на сервер 1С — без неё кластер не будет обслуживать сеансы (подробнее в разделе про лицензирование).
- 🌐 Открытые порты: 1540 (агент сервера), 1541 (менеджер кластера) и диапазон рабочих процессов, по умолчанию
1560:1591. Для MS SQL — 1433, для PostgreSQL — 5432, если СУБД стоит на другой машине.
Какую СУБД выбрать
| СУБД | Стоимость | Ограничения | Когда подходит |
|---|---|---|---|
| MS SQL Server Express | Бесплатно | Размер одной базы до 10 ГБ, ограничение по памяти и ядрам | Небольшая база, 5–10 пользователей, тест |
| MS SQL Server Standard | Платная лицензия Microsoft | Практически без ограничений для 1С | Средние и крупные базы, привычная Windows-среда |
| PostgreSQL (сборка для 1С) | Бесплатно | Нужна сборка с патчами под 1С, а не «чистый» дистрибутив | Экономия на лицензиях, Linux-серверы |
PostgreSQL для 1С берут из специальных сборок: дистрибутив, адаптированный фирмой 1С, или Postgres Pro. Обычная версия с сайта postgresql.org без патчей с 1С корректно работать не будет.
Перед установкой откройте список поддерживаемых СУБД для вашей версии платформы. Свежий релиз PostgreSQL или SQL Server может ещё не поддерживаться установленной платформой — и наоборот, старая СУБД может быть уже снята с поддержки.
Что проверить перед стартом
Выгрузка файловой базы в .dt и резервная копия
Файл выгрузки .dt — и есть транспорт для переноса. Его же сохраните как резервную копию: если что-то пойдёт не так, файловая база останется нетронутой, а .dt можно загрузить снова.
Шаг 1. Проверьте базу на ошибки
Битые ссылки и повреждения файловой базы переедут на SQL вместе с данными. Иногда выгрузка просто падает на повреждённой таблице.
- Сделайте копию каталога базы целиком (файл
1Cv8.1CDи всё рядом с ним). - Откройте базу в Конфигураторе.
- Запустите
Администрирование → Тестирование и исправление. - Для первого прогона отметьте только проверку логической и ссылочной целостности без исправлений — посмотрите, что найдётся.
Тестирование и исправление требует монопольного доступа: все пользователи должны выйти из базы. Режим «исправлять» меняет данные, поэтому запускайте его только на копии или после полной копии каталога.
Шаг 2. Выгрузите базу
- Убедитесь, что в базе никто не работает .
- В Конфигураторе:
Администрирование → Выгрузить информационную базу. - Укажите путь и имя файла, например
D:\Backup\buh_2026-10-07.dt. - Дождитесь сообщения о завершении. Для базы 5–10 ГБ это обычно от 10 до 40 минут.
Ту же операцию можно запустить из командной строки — удобно для ночного окна или большой базы:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\Backup\buh.dt" /Out"D:\Backup\dump.log"
Путь к 1cv8.exe подставьте свой, по номеру установленной платформы. Результат смотрите в файле лога.
Для больших баз запускайте 64-разрядный Конфигуратор. 32-разрядный клиент упирается в память и на базах в десятки гигабайт может прервать выгрузку или загрузку с ошибкой нехватки памяти.
Создание новой базы в кластере сервера 1С
Пустую базу на SQL создают не в СУБД вручную, а через сервер 1С: он сам создаст базу данных в СУБД с нужными параметрами. Способов два.
Способ 1. Через консоль администрирования серверов
- Откройте оснастку «Администрирование серверов 1С Предприятия».
- Разверните
Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → Локальный кластер → Информационные базы. - Правой кнопкой по «Информационные базы» →
Создать → Информационная база. - Заполните поля (таблица ниже) и нажмите ОК.
| Поле | Что указать |
|---|---|
| Имя | Имя базы в кластере, латиницей без пробелов, например buh |
| Сервер баз данных | Имя SQL-сервера, для именованного экземпляра MS SQL — SRV\SQLEXPRESS |
| Тип СУБД | MSSQLServer или PostgreSQL |
| База данных | Имя базы в СУБД, удобно совпадающее с именем в кластере |
| Пользователь и пароль сервера БД | Логин СУБД с правом создавать базы |
| Разрешить выдачу лицензий сервером 1С:Предприятия | Да, если клиентские лицензии будет выдавать сервер |
| Смещение дат | 2000 для MS SQL, 0 для PostgreSQL |
| Создать базу данных в случае ее отсутствия | Отметить |
| Установить блокировку регламентных заданий | Отметить на время переноса и проверки |
Смещение дат для MS SQL ставьте 2000 и больше не меняйте. Значение задаётся один раз при создании и влияет на хранение всех дат в базе. Ошибка здесь лечится только пересозданием базы и повторной загрузкой .dt.
Способ 2. Через окно запуска 1С
- В списке баз нажмите
Добавить → Создание новой информационной базы. - Выберите «Создание информационной базы без конфигурации» — конфигурация придёт из
.dt. - Тип расположения — «На сервере 1С:Предприятия».
- Заполните те же поля: кластер серверов , имя базы, тип СУБД, сервер БД, логин, смещение дат, флаг создания базы данных.
Этот способ быстрее, база сразу появляется в списке у вас. Консоль удобнее, когда баз много и нужно видеть всё на одном экране.
Загрузка данных из файла выгрузки в базу на SQL
Теперь новая пустая база существует и в кластере, и в СУБД. Осталось залить в неё данные.
- Запустите Конфигуратор для новой серверной базы. Строка подключения выглядит как
Srvr="SRV1C";Ref="buh";. - При входе пользователей в пустой базе ещё нет — откроется сразу.
- Выполните
Администрирование → Загрузить информационную базуи выберите файл.dt. - Подтвердите предупреждение о замене данных.
- После загрузки Конфигуратор предложит перезапуститься — соглашайтесь.
Из командной строки загрузка делается ключом /RestoreIB:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /S"SRV1C\buh" /RestoreIB"D:\Backup\buh.dt" /Out"D:\Backup\restore.log"
После загрузки пользователи и пароли окажутся такими же, как в файловой базе. Если в файловой базе стоял вход по аутентификации Windows, проверьте, что доменные учётки совпадают с теми, под которыми люди будут заходить на новый сервер.
Как проверить, что всё переехало
- 📊 Откройте оборотно-сальдовую ведомость за последний закрытый период в обеих базах и сравните итоги.
- 📄 Сравните количество документов за месяц в любом крупном журнале.
- 👥 Зайдите под двумя-тремя пользователями с разными ролями.
- ⏰ Только после проверки снимите блокировку регламентных заданий в свойствах базы в консоли.
Пока работают обе базы, не давайте пользователям вносить данные в старую файловую. Иначе через день придётся вручную переносить документы. Старую базу лучше удалить из списка у пользователей и переименовать её каталог.
Права в СУБД и лицензии для клиент-серверного режима
Пользователь СУБД
Сервер 1С ходит в базу под логином, указанным в свойствах базы. Варианты:
- MS SQL — отдельный SQL-логин (смешанный режим аутентификации), которому на время создания базы нужна роль
dbcreator. После создания достаточно ролиdb_ownerв самой базе. Использоватьsaдля работы не стоит: компрометация пароля открывает весь сервер. - PostgreSQL — роль-владелец базы, например стандартная
postgresили отдельная роль с правом создавать базы.
Пример создания логина в MS SQL:
CREATE LOGIN usr1c WITH PASSWORD = 'СложныйПароль_2026!', CHECK_POLICY = ON;
ALTER SERVER ROLE dbcreator ADD MEMBER usr1c;
Служба сервера 1С по умолчанию работает от пользователя USR1CV8. У этой учётки должны быть права на каталог сервера 1С и на каталог с файлами .dt, если загружаете их через сервер.
Какие лицензии нужны
| Лицензия | Зачем | Комментарий |
|---|---|---|
| Клиентская (на пользователей) | Подключение каждого сеанса | Те же, что были в файловом режиме, перерегистрировать не нужно |
| На сервер 1С:Предприятия | Работа кластера | Отдельная покупка: ПРОФ или КОРП, различаются функциональностью |
| На СУБД | Только для платной редакции MS SQL | Express и PostgreSQL бесплатны |
Без лицензии на сервер кластер не запустит сеансы пользователей. Исключение — учебная версия, но рабочую базу на ней не держат.
Программные клиентские лицензии, которые раньше лежали на компьютерах пользователей, можно оставить там. А можно перенести на сервер и включить флаг «Разрешить выдачу лицензий сервером» — тогда они выдаются централизованно и не привязаны к рабочему месту. Перенос программной лицензии на другой компьютер требует повторной активации пин-кодом.
Цену лицензии на сервер узнавайте у партнёра 1С: ориентировочно ПРОФ стоит в несколько раз дешевле КОРП. Для одной организации с базой на 10–30 человек обычно хватает ПРОФ.
Настройка производительности после переезда
Сразу после переноса серверная база может работать не быстрее файловой, а иногда и медленнее. Дело в настройках по умолчанию, которые рассчитаны не на 1С.
MS SQL Server
- Ограничьте память. В свойствах сервера
Memory → Maximum server memoryоставьте операционной системе и серверу 1С минимум 4–8 ГБ. Иначе SQL займёт всю RAM, и рабочие процессы 1С начнут тормозить. - MAXDOP = 1. Параметр
Max Degree of Parallelismдля 1С обычно ставят в 1: запросы платформы короткие, параллелизм их скорее замедляет. - Модель восстановления. Если резервные копии журнала транзакций не делаются, переключите базу на
Simple. В моделиFullбез бэкапов журнала файл.ldfрастёт до размера диска. - Обслуживание. Создайте план обслуживания: обновление статистик ежедневно, перестроение или реорганизация индексов раз в неделю, полная резервная копия каждую ночь.
ALTER DATABASE buh SET RECOVERY SIMPLE;
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 24576; RECONFIGURE;
Значение памяти в примере — для сервера с 32 ГБ RAM: 24 ГБ отдаём SQL, 8 ГБ остаётся системе и 1С.
PostgreSQL
Сборки для 1С при установке предлагают базовые параметры, но их стоит подогнать под объём памяти в postgresql.conf:
shared_buffers— около 25% оперативной памяти;effective_cache_size— 50–75% памяти;work_mem— несколько десятков мегабайт, с осторожностью: умножается на число одновременных операций;- автоочистка (autovacuum) должна быть включена — без неё таблицы разбухают.
После изменения shared_buffers перезапустите службу PostgreSQL.
Перезапуск службы СУБД или сервера 1С обрывает сеансы всех пользователей. Делайте это вне рабочего времени и предупредите людей заранее.
Регламент копий
Файловую базу копировали архивом каталога. На SQL так нельзя: копировать файлы .mdf работающего сервера бессмысленно. Делайте бэкап средствами СУБД — заданием SQL Server Agent (в Express его нет, нужен планировщик Windows и скрипт) или pg_dump по расписанию для PostgreSQL. Раз в неделю дополнительно выгружайте .dt — его можно развернуть на любой СУБД.
Ошибки при переносе и как их снять
Частые вопросы
Можно ли перенести базу 1С на SQL без выгрузки в .dt?
.dt. Копирование файла 1Cv8.1CD в СУБД невозможно: форматы хранения разные.Сколько времени займёт перенос?
Нужно ли менять что-то у пользователей?
Srvr="сервер";Ref="имя"; и поставить ту же версию платформы, что на сервере. Тонкий клиент работает как обычно.Можно ли вернуть базу обратно в файловый режим?
.dt из серверной базы и загрузить его в новую файловую базу.