Перевод файловой базы 1С в клиент-серверный режим на MS SQL или PostgreSQL

· 10 мин

Содержание

Чтобы перенести базу 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 может ещё не поддерживаться установленной платформой — и наоборот, старая СУБД может быть уже снята с поддержки.

Что проверить перед стартом

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

Выгрузка файловой базы в .dt и резервная копия

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

Шаг 1. Проверьте базу на ошибки

Битые ссылки и повреждения файловой базы переедут на SQL вместе с данными. Иногда выгрузка просто падает на повреждённой таблице.

  1. Сделайте копию каталога базы целиком (файл 1Cv8.1CD и всё рядом с ним).
  2. Откройте базу в Конфигураторе.
  3. Запустите Администрирование → Тестирование и исправление.
  4. Для первого прогона отметьте только проверку логической и ссылочной целостности без исправлений — посмотрите, что найдётся.

Тестирование и исправление требует монопольного доступа: все пользователи должны выйти из базы. Режим «исправлять» меняет данные, поэтому запускайте его только на копии или после полной копии каталога.

Шаг 2. Выгрузите базу

  1. Убедитесь, что в базе никто не работает .
  2. В Конфигураторе: Администрирование → Выгрузить информационную базу.
  3. Укажите путь и имя файла, например D:\Backup\buh_2026-10-07.dt.
  4. Дождитесь сообщения о завершении. Для базы 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. Откройте оснастку «Администрирование серверов 1С Предприятия».
  2. Разверните Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → Локальный кластер → Информационные базы.
  3. Правой кнопкой по «Информационные базы» → Создать → Информационная база.
  4. Заполните поля (таблица ниже) и нажмите ОК.
ПолеЧто указать
ИмяИмя базы в кластере, латиницей без пробелов, например buh
Сервер баз данныхИмя SQL-сервера, для именованного экземпляра MS SQL — SRV\SQLEXPRESS
Тип СУБДMSSQLServer или PostgreSQL
База данныхИмя базы в СУБД, удобно совпадающее с именем в кластере
Пользователь и пароль сервера БДЛогин СУБД с правом создавать базы
Разрешить выдачу лицензий сервером 1С:ПредприятияДа, если клиентские лицензии будет выдавать сервер
Смещение дат2000 для MS SQL, 0 для PostgreSQL
Создать базу данных в случае ее отсутствияОтметить
Установить блокировку регламентных заданийОтметить на время переноса и проверки

Смещение дат для MS SQL ставьте 2000 и больше не меняйте. Значение задаётся один раз при создании и влияет на хранение всех дат в базе. Ошибка здесь лечится только пересозданием базы и повторной загрузкой .dt.

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

  1. В списке баз нажмите Добавить → Создание новой информационной базы.
  2. Выберите «Создание информационной базы без конфигурации» — конфигурация придёт из .dt.
  3. Тип расположения — «На сервере 1С:Предприятия».
  4. Заполните те же поля: кластер серверов , имя базы, тип СУБД, сервер БД, логин, смещение дат, флаг создания базы данных.

Этот способ быстрее, база сразу появляется в списке у вас. Консоль удобнее, когда баз много и нужно видеть всё на одном экране.

Загрузка данных из файла выгрузки в базу на SQL

Теперь новая пустая база существует и в кластере, и в СУБД. Осталось залить в неё данные.

  1. Запустите Конфигуратор для новой серверной базы. Строка подключения выглядит как Srvr="SRV1C";Ref="buh";.
  2. При входе пользователей в пустой базе ещё нет — откроется сразу.
  3. Выполните Администрирование → Загрузить информационную базу и выберите файл .dt.
  4. Подтвердите предупреждение о замене данных.
  5. После загрузки Конфигуратор предложит перезапуститься — соглашайтесь.

Из командной строки загрузка делается ключом /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 SQLExpress и PostgreSQL бесплатны

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

Программные клиентские лицензии, которые раньше лежали на компьютерах пользователей, можно оставить там. А можно перенести на сервер и включить флаг «Разрешить выдачу лицензий сервером» — тогда они выдаются централизованно и не привязаны к рабочему месту. Перенос программной лицензии на другой компьютер требует повторной активации пин-кодом.

Цену лицензии на сервер узнавайте у партнёра 1С: ориентировочно ПРОФ стоит в несколько раз дешевле КОРП. Для одной организации с базой на 10–30 человек обычно хватает ПРОФ.

Настройка производительности после переезда

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

MS SQL Server

  1. Ограничьте память. В свойствах сервера Memory → Maximum server memory оставьте операционной системе и серверу 1С минимум 4–8 ГБ. Иначе SQL займёт всю RAM, и рабочие процессы 1С начнут тормозить.
  2. MAXDOP = 1. Параметр Max Degree of Parallelism для 1С обычно ставят в 1: запросы платформы короткие, параллелизм их скорее замедляет.
  3. Модель восстановления. Если резервные копии журнала транзакций не делаются, переключите базу на Simple. В модели Full без бэкапов журнала файл .ldf растёт до размера диска.
  4. Обслуживание. Создайте план обслуживания: обновление статистик ежедневно, перестроение или реорганизация индексов раз в неделю, полная резервная копия каждую ночь.
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 в СУБД невозможно: форматы хранения разные.
Сколько времени займёт перенос?
Для базы 5–10 ГБ закладывайте 1–3 часа простоя: выгрузка, загрузка и проверка. Установка сервера 1С и СУБД делается заранее и в простой не входит.
Нужно ли менять что-то у пользователей?
Да, в списке баз прописать новую строку подключения Srvr="сервер";Ref="имя"; и поставить ту же версию платформы, что на сервере. Тонкий клиент работает как обычно.
Можно ли вернуть базу обратно в файловый режим?
Можно тем же способом: выгрузить .dt из серверной базы и загрузить его в новую файловую базу.
Подойдёт ли SQL Server Express для рабочей базы?
Только пока база меньше 10 ГБ. Бухгалтерская база небольшой фирмы растёт до этого предела за несколько лет, после чего придётся переходить на платную редакцию или PostgreSQL.