Переезд файловой базы 1С в клиент-серверный вариант на MS SQL Server
Содержание
Файловая база 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 один, сервер выбирается при установке компонентов.
- Запустите
setup.exeиз полного дистрибутива технологической платформы нужной версии. - В списке компонентов отметьте «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия».
- Включите установку сервера как сервиса Windows. Установщик предложит создать пользователя
USR1CV8— согласитесь или укажите доменную учётную запись. - После установки зарегистрируйте консоль администрирования. Откройте командную строку от имени администратора и выполните:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
regsvr32 radmin.dll
Номер версии в пути подставьте свой. Без регистрации radmin.dll консоль откроется, но сервер в ней не появится.
- Запустите «Администрирование серверов 1С Предприятия», правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя компьютера.
Порты и брандмауэр
Клиент сначала обращается к агенту сервера, затем к менеджеру кластера и рабочим процессам:
| Порт | Кто слушает |
|---|---|
| 1540 | Агент сервера (ragent), через него ходит и консоль |
| 1541 | Менеджер кластера |
| 1560–1591 | Рабочие процессы, диапазон задаётся в свойствах рабочего сервера |
| 1433 | MS 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-сервере
Базу удобнее создавать из консоли администрирования: сразу видно все параметры.
- В консоли раскройте сервер → кластер «Локальный кластер» → правой кнопкой по «Информационные базы» → «Создать» → «Информационная база».
- Заполните поля:
| Поле | Что указать |
|---|---|
| Имя | Короткое латиницей без пробелов, например buh — по нему подключаются клиенты |
| Защищённое соединение | Выключено (для локальной сети) |
| Сервер баз данных | Имя сервера SQL, для именованного экземпляра SRV\SQLEXPRESS |
| Тип СУБД | MSSQLServer |
| База данных | Имя базы в SQL Server, удобно такое же — buh |
| Пользователь / пароль сервера БД | usr1c и его пароль |
| Смещение дат | 2000 |
| Разрешить выдачу лицензий сервером | Да, если лицензии активированы на сервере |
| Создать базу данных в случае её отсутствия | Отметить |
| Установить блокировку регламентных заданий | Отметить на время переезда |
- Нажмите «ОК». Если всё верно, в SQL Server появится новая база, а в консоли — информационная база
buh.
Блокировка регламентных заданий нужна, чтобы пустая, а затем заполненная база не начала сама загружать курсы, обмениваться с ЭДО или банком, пока вы проверяете перенос. Снимите её в конце.
Можно создать базу и из окна запуска 1С: «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации» → «На сервере 1С:Предприятия». Поля там те же.
Шаг 4. Выгружаем данные из файловой базы и загружаем на сервер
Это главный шаг. Вся конфигурация, данные, пользователи и их пароли переезжают одним файлом .dt.
Выгрузка из файловой базы
- Попросите всех выйти из базы и убедитесь, что сеансов нет: изменения после выгрузки в новую базу не попадут.
- Откройте файловую базу в режиме «Конфигуратор».
- Меню
Администрирование → Выгрузить информационную базу, укажите путь, напримерD:\Transfer\buh.dt. - Сделайте отдельную копию папки с файловой базой целиком — это ваш путь отступления.
Загрузка в серверную базу
- В окне запуска добавьте новую базу: «Добавить» → «Добавление в список существующей информационной базы» → «На сервере 1С:Предприятия». Кластер — имя сервера, база —
buh. - Откройте её в Конфигураторе. Пустая база пользователей не имеет, поэтому вход пройдёт без пароля.
Администрирование → Загрузить информационную базу, выберитеbuh.dt, подтвердите замену данных.- После загрузки Конфигуратор предложит перезапуститься. Дальше вход уже по пользователям из старой базы.
Ночной перенос большой базы из командной строки
Для базы в десятки гигабайт выгрузка идёт часами. Её удобно запускать пакетно и смотреть журнал:
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. Производительность и проверка после переезда
Проверка данных
Сразу после загрузки сравните старую и новую базы на одинаковых отчётах:
Расхождений после .dt быть не должно. Если они есть, почти всегда кто-то работал в файловой базе после выгрузки.
Настройка SQL Server для 1С
| Настройка | Где | Рекомендация |
|---|---|---|
| Модель восстановления | Свойства базы → «Параметры» | Простая, если делаете полные копии ежедневно; полная — если нужен откат на любую минуту, но тогда обязательно бэкап журнала |
| Обновление статистик | План обслуживания | Ежедневно ночью |
| Перестроение индексов | План обслуживания | Раз в неделю, в выходные |
| Резервное копирование | План обслуживания | Полная копия каждую ночь, хранить 7–14 копий на другом диске |
| Автоувеличение файлов | Свойства базы → «Файлы» | В мегабайтах (500–1000 МБ), а не в процентах |
Модель восстановления «Полная» без регулярного бэкапа журнала транзакций — частая беда: файл .ldf растёт, пока не займёт весь диск, и база останавливается.
Резервные копии .dt из Конфигуратора после переезда оставьте как дополнительную меру, но основной копией должен стать бэкап SQL Server: он делается без выгона пользователей.
Нагрузочный тест
Перед тем как отправлять всех в новую базу, проведите короткий «день тишины»:
- Попросите 2–3 человека поработать в серверной базе обычный час: провести документы, сформировать тяжёлые отчёты.
- Запустите закрытие месяца или другую длинную операцию и засеките время. На файловой базе с 10+ пользователями она часто идёт в разы дольше.
- Посмотрите в консоли кластера число сеансов и рабочих процессов, а в Диспетчере задач — память
sqlservr.exeиrphost.exe. - Если всё в порядке, снимите блокировку регламентных заданий в свойствах базы и переключайте пользователей.
Если стало медленнее, чем в файловом варианте
Так бывает с маленькими базами на 1–3 пользователя: клиент-серверный режим тратит время на сеть и СУБД. Проверьте, что памяти SQL Server хватает и она ограничена, что антивирус исключает каталоги данных SQL и srvinfo, и что в электропитании Windows включена «Высокая производительность». Для 1–3 человек файловый режим часто честно быстрее, и переезжать не нужно.
Частые вопросы
Можно ли перенести базу обратно в файловый режим?
.dt через Конфигуратор, создайте пустую файловую базу и загрузите файл. Порядок тот же, что при переезде на сервер, только в обратную сторону.Хватит ли SQL Server Express для рабочей базы?
Нужно ли переносить конфигурацию и обновления отдельно?
.dt содержит и конфигурацию, и данные. Если базу перед переездом обновляли, новая база будет того же релиза. Обновлять её дальше можно как обычно, через Конфигуратор или «Обновление версии программы».Сколько длится перенос?
Заработают ли внешние обработки и печатные формы?
C:\Обмен, проверьте, где выполняется этот код: серверная часть видит диски сервера, а не компьютера пользователя.