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

· 10 мин

Содержание

Файловая база 1С 8.3 переводится на SQL так: ставите сервер 1С:Предприятия и MS SQL Server, создаёте в кластере пустую информационную базу на СУБД, выгружаете файловую базу в .dt через Конфигуратор и загружаете этот файл в новую базу. Сами данные и конфигурация при этом не меняются, меняется только место хранения: вместо файла 1Cv8.1CD таблицы живут в базе SQL Server.

Есть два пути. Перенос через .dt подходит почти всем: он простой и проверенный. Конвертацию через «Сохранить в файл / Загрузить из файла» конфигурации делать бессмысленно — так вы перенесёте только конфигурацию без данных. Поэтому дальше речь идёт про .dt, а для больших баз — про запуск той же выгрузки из командной строки ночью.

Что подготовить до переезда: серверы, СУБД и лицензии

Переход на клиент-серверный режим окупается, когда в файловой базе работает больше 5–10 человек одновременно, база перевалила за несколько гигабайт или нужны регламентные задания, работающие без открытого клиента.

Железо и роли

Минимальная схема — один сервер, на котором стоят и сервер 1С, и SQL Server. Для 10–30 пользователей обычно хватает 4–8 ядер, 32 ГБ памяти и SSD/NVMe-дисков. Память СУБД съедает охотно, поэтому её ограничивают (об этом ниже).

КомпонентЧто ставимКомментарий
ОСWindows Server 2016 и новееМожно Linux, но инструкция ниже про Windows
Сервер 1СТа же версия платформы, что у клиентовНомер версии на сервере и у клиентов должен совпадать полностью
СУБДMicrosoft SQL ServerАльтернатива — PostgreSQL в сборке для 1С
ДискиОтдельно данные, журнал транзакций, tempdbНа одном небольшом сервере допустим один быстрый SSD

Лицензии: что нужно докупить

  • 🔑 Лицензия на сервер 1С:Предприятия. Это отдельный продукт, клиентские лицензии её не заменяют. Без неё сервер не запустит базу.
  • 👥 Клиентские лицензии остаются те же, что были в файловом варианте. Программные можно активировать прямо на сервере 1С, тогда их будет выдавать кластер, а не каждый компьютер.
  • 🗄️ Лицензия на SQL Server. Бесплатная редакция Express подходит для пробы и маленьких баз, но у неё жёсткий предел — 10 ГБ на одну базу данных, а также ограничения по памяти и ядрам. Для рабочей базы средней фирмы берут Standard.

Если покупать MS SQL дорого или нельзя, смотрите в сторону PostgreSQL. Порядок переезда тот же, отличается только выбор типа СУБД при создании базы и настройка самого сервера СУБД.

Шаг 1. Устанавливаем сервер 1С и запускаем кластер

Дистрибутив платформы для Windows один, сервер выбирается при установке компонентов.

  1. Запустите setup.exe из полного дистрибутива технологической платформы нужной версии.
  2. В списке компонентов отметьте «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия».
  3. Включите установку сервера как сервиса Windows. Установщик предложит создать пользователя USR1CV8 — согласитесь или укажите доменную учётную запись.
  4. После установки зарегистрируйте консоль администрирования. Откройте командную строку от имени администратора и выполните:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
regsvr32 radmin.dll

Номер версии в пути подставьте свой. Без регистрации radmin.dll консоль откроется, но сервер в ней не появится.

  1. Запустите «Администрирование серверов 1С Предприятия», правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя компьютера.

Порты и брандмауэр

Клиент сначала обращается к агенту сервера, затем к менеджеру кластера и рабочим процессам:

ПортКто слушает
1540Агент сервера (ragent), через него ходит и консоль
1541Менеджер кластера
1560–1591Рабочие процессы, диапазон задаётся в свойствах рабочего сервера
1433MS SQL Server (если СУБД на отдельной машине)
475, 1947Менеджер аппаратных ключей HASP, если лицензии на USB-ключе

Откройте эти порты на входящие соединения в брандмауэре Windows сервера. Клиентские компьютеры должны находить сервер по имени: если DNS нет, пропишите имя и IP в C:\Windows\System32\drivers\etc\hosts.

Шаг 2. Настраиваем SQL Server под 1С

При установке SQL Server обратите внимание на три вещи.

  • 🔤 Сортировка (collation). Выберите Cyrillic_General_CI_AS. Её задают при установке экземпляра, потом менять неудобно.
  • 🔐 Режим проверки подлинности — смешанный (SQL Server и Windows). Так 1С сможет подключаться под отдельным SQL-логином.
  • 🧠 Ограничение памяти. В свойствах сервера в SQL Server Management Studio задайте «Максимальный объём памяти сервера». Ориентир для общей машины 32 ГБ: 18–20 ГБ СУБД, остальное — системе и рабочим процессам 1С.

Затем создайте логин для 1С. Работать под sa можно, но лучше отдельный логин:

CREATE LOGIN usr1c WITH PASSWORD = 'Сложный_Пароль_1С!', CHECK_POLICY = ON;
ALTER SERVER ROLE dbcreator ADD MEMBER usr1c;

Роли dbcreator достаточно, чтобы 1С сама создала базу данных и стала её владельцем.

Пароль SQL-логина хранится в параметрах базы в кластере. Не используйте одинаковый пароль для sa, логина 1С и учётных записей Windows.

Шаг 3. Создаём пустую информационную базу на SQL-сервере

Базу удобнее создавать из консоли администрирования: сразу видно все параметры.

  1. В консоли раскройте сервер → кластер «Локальный кластер» → правой кнопкой по «Информационные базы» → «Создать» → «Информационная база».
  2. Заполните поля:
ПолеЧто указать
ИмяКороткое латиницей без пробелов, например buh — по нему подключаются клиенты
Защищённое соединениеВыключено (для локальной сети)
Сервер баз данныхИмя сервера SQL, для именованного экземпляра SRV\SQLEXPRESS
Тип СУБДMSSQLServer
База данныхИмя базы в SQL Server, удобно такое же — buh
Пользователь / пароль сервера БДusr1c и его пароль
Смещение дат2000
Разрешить выдачу лицензий серверомДа, если лицензии активированы на сервере
Создать базу данных в случае её отсутствияОтметить
Установить блокировку регламентных заданийОтметить на время переезда
  1. Нажмите «ОК». Если всё верно, в SQL Server появится новая база, а в консоли — информационная база buh.

Блокировка регламентных заданий нужна, чтобы пустая, а затем заполненная база не начала сама загружать курсы, обмениваться с ЭДО или банком, пока вы проверяете перенос. Снимите её в конце.

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

Шаг 4. Выгружаем данные из файловой базы и загружаем на сервер

Это главный шаг. Вся конфигурация, данные, пользователи и их пароли переезжают одним файлом .dt.

Выгрузка из файловой базы

  1. Попросите всех выйти из базы и убедитесь, что сеансов нет: изменения после выгрузки в новую базу не попадут.
  2. Откройте файловую базу в режиме «Конфигуратор».
  3. Меню Администрирование → Выгрузить информационную базу, укажите путь, например D:\Transfer\buh.dt.
  4. Сделайте отдельную копию папки с файловой базой целиком — это ваш путь отступления.

Загрузка в серверную базу

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

Ночной перенос большой базы из командной строки

Для базы в десятки гигабайт выгрузка идёт часами. Её удобно запускать пакетно и смотреть журнал:

set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"

%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\Transfer\buh.dt" /Out"D:\Transfer\dump.log"

%V8% DESIGNER /S"srv1c\buh" /RestoreIB"D:\Transfer\buh.dt" /Out"D:\Transfer\restore.log"

/F — путь к папке файловой базы, /S — сервер и имя базы в кластере. Во второй команде пользователя не указываем: база ещё пустая.

Для загрузки .dt нужен монопольный доступ к серверной базе. Если в ней уже кто-то работает (например, вы тестировали её днём), загрузка остановится с ошибкой — завершите сеансы в консоли администрирования, предупредив людей.

Шаг 5. Пользователи, права и подключение рабочих мест

Пользователи 1С и их роли переехали вместе с .dt, перенастраивать их не нужно. Меняется другое — права на уровне Windows и то, как компьютеры находят базу.

Права служебной учётной записи

  • 📁 Пользователь службы (USR1CV8 или доменный) должен иметь полный доступ к каталогу кластера — по умолчанию C:\Program Files\1cv8\srvinfo.
  • 🧾 Если в 1С есть загрузка из файлов или выгрузка в общую папку, этой же учётной записи дайте права на сетевые папки: теперь файлы читает сервер, а не компьютер пользователя.
  • 🔒 Если в базе включена аутентификация операционной системы, в карточке пользователя 1С проверьте, что указан правильный доменный пользователь вида \\DOMAIN\ivanov.

Администратор кластера

Пока у кластера нет администратора, любой, у кого установлена консоль и есть сетевой доступ к порту 1540, может удалить базу из кластера. Заведите администратора: в консоли «Администраторы» кластера → «Создать». После этого консоль будет спрашивать логин и пароль.

Подключение пользователей

На каждом компьютере уберите старую файловую базу из списка и добавьте серверную (кластер srv1c, база buh). Строка соединения выглядит так:

Srvr="srv1c";Ref="buh";

Для 20 компьютеров удобнее раздать общий список баз: файл .v8i кладут в сетевую папку и указывают в 1CEStart.cfg через параметр CommonInfoBases.

Шаг 6. Производительность и проверка после переезда

Проверка данных

Сразу после загрузки сравните старую и новую базы на одинаковых отчётах:

Проверка базы после переноса на SQL
Выполнено: 0 / 6

Расхождений после .dt быть не должно. Если они есть, почти всегда кто-то работал в файловой базе после выгрузки.

Настройка SQL Server для 1С

НастройкаГдеРекомендация
Модель восстановленияСвойства базы → «Параметры»Простая, если делаете полные копии ежедневно; полная — если нужен откат на любую минуту, но тогда обязательно бэкап журнала
Обновление статистикПлан обслуживанияЕжедневно ночью
Перестроение индексовПлан обслуживанияРаз в неделю, в выходные
Резервное копированиеПлан обслуживанияПолная копия каждую ночь, хранить 7–14 копий на другом диске
Автоувеличение файловСвойства базы → «Файлы»В мегабайтах (500–1000 МБ), а не в процентах

Модель восстановления «Полная» без регулярного бэкапа журнала транзакций — частая беда: файл .ldf растёт, пока не займёт весь диск, и база останавливается.

Резервные копии .dt из Конфигуратора после переезда оставьте как дополнительную меру, но основной копией должен стать бэкап SQL Server: он делается без выгона пользователей.

Нагрузочный тест

Перед тем как отправлять всех в новую базу, проведите короткий «день тишины»:

  1. Попросите 2–3 человека поработать в серверной базе обычный час: провести документы, сформировать тяжёлые отчёты.
  2. Запустите закрытие месяца или другую длинную операцию и засеките время. На файловой базе с 10+ пользователями она часто идёт в разы дольше.
  3. Посмотрите в консоли кластера число сеансов и рабочих процессов, а в Диспетчере задач — память sqlservr.exe и rphost.exe.
  4. Если всё в порядке, снимите блокировку регламентных заданий в свойствах базы и переключайте пользователей.

Если стало медленнее, чем в файловом варианте

Так бывает с маленькими базами на 1–3 пользователя: клиент-серверный режим тратит время на сеть и СУБД. Проверьте, что памяти SQL Server хватает и она ограничена, что антивирус исключает каталоги данных SQL и srvinfo, и что в электропитании Windows включена «Высокая производительность». Для 1–3 человек файловый режим часто честно быстрее, и переезжать не нужно.

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

Можно ли перенести базу обратно в файловый режим?
Да. Выгрузите серверную базу в .dt через Конфигуратор, создайте пустую файловую базу и загрузите файл. Порядок тот же, что при переезде на сервер, только в обратную сторону.
Хватит ли SQL Server Express для рабочей базы?
Только для небольшой. Предел Express — 10 ГБ на базу данных, при его достижении запись в базу прекращается. Бухгалтерия маленькой фирмы укладывается в него годами, торговля с тысячами документов в день — нет.
Нужно ли переносить конфигурацию и обновления отдельно?
Нет. Файл .dt содержит и конфигурацию, и данные. Если базу перед переездом обновляли, новая база будет того же релиза. Обновлять её дальше можно как обычно, через Конфигуратор или «Обновление версии программы».
Сколько длится перенос?
Для базы 5–10 ГБ выгрузка и загрузка вместе занимают примерно 30–90 минут на SSD. База 50 ГБ и больше может переезжать всю ночь, поэтому её переносят пакетным файлом с ведением журнала.
Заработают ли внешние обработки и печатные формы?
Подключённые через справочник дополнительных отчётов и обработок — да, они хранятся в базе. Если обработка читает или пишет файлы по жёсткому пути вроде C:\Обмен, проверьте, где выполняется этот код: серверная часть видит диски сервера, а не компьютера пользователя.