Перевод информационной базы 1С 8.3 на MS SQL Server: от установки СУБД до обслуживания

· 10 мин

Содержание

Чтобы установить базу 1С на сервер SQL, нужны три вещи: установленный MS SQL Server с кодировкой Cyrillic_General_CI_AS, сервер 1С:Предприятия 8.3 и SQL-логин с правом создавать базы. Саму базу создают не в SQL Management Studio, а через кластер 1С: консоль администрирования серверов или окно запуска. Данные переносят выгрузкой .dt из старой файловой базы и загрузкой в новую.

Частое заблуждение — «достаточно поставить SQL и подключить к нему файл 1Cv8.1CD». Так не работает . Клиент 1С не ходит в SQL напрямую: между ними всегда стоит сервер 1С:Предприятия. Без него и без серверной лицензии клиент-серверная база не запустится.

Что подготовить до установки: серверы, версии, лицензии

Начните с инвентаризации. Ошибки на этом этапе потом стоят дороже всего.

📋 Что нужно иметь на руках:

  • 🖥️ Сервер под Windows Server 2016 или новее. СУБД и сервер 1С можно поставить на одну машину — для 10–30 пользователей это нормальная схема.
  • 💾 Оперативная память: ориентир — от 16 ГБ при совмещённой установке. SQL Server и рабочие процессы 1С (rphost) делят одну память.
  • 💽 Отдельный диск (лучше SSD) под файлы базы и журнала. Системный диск под данные не используйте.
  • 🔑 Лицензия на сервер 1С:Предприятия. Клиентских лицензий файловой версии для этого недостаточно.
  • 📄 Лицензии MS SQL Server на нужное число ядер или пользователей.
  • 📦 Дистрибутив платформы той же версии, что стоит на клиентах.

Версии сервера 1С и клиентов должны совпадать до последней цифры. Клиент 8.3.24.1548 к серверу 8.3.24.1342 не подключится.

Какую редакцию SQL Server выбрать

РедакцияКогда подходитОграничения
ExpressТест, небольшая базаРазмер одной базы до 10 ГБ, урезана память, нет SQL Agent
StandardРабочие базы малого и среднего бизнесаОсновной выбор для 1С
EnterpriseКрупные базы, сотни пользователейДорогая, нужна редко
DeveloperТолько разработка и тестыЗапрещено использовать в рабочей среде

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

Список поддерживаемых версий СУБД зависит от версии платформы. Сверьтесь с ним до покупки: слишком свежий SQL Server на старой платформе может не подключиться.

Установка MS SQL Server под 1С: что выставить в мастере

Мастер установки SQL Server в основном можно проходить с параметрами по умолчанию. Но три настройки определяют, будет ли 1С работать вообще.

Шаг 1. Компоненты

Отметьте Database Engine Services. Отдельно скачайте и поставьте SQL Server Management Studio (SSMS) — в новых версиях она в дистрибутив не входит. Остальные компоненты для 1С не нужны.

Шаг 2. Параметры сортировки (Collation)

На вкладке Server Configuration → Collation проверьте значение. Нужно Cyrillic_General_CI_AS.

Сортировку сервера после установки поменять очень сложно — проверьте её до нажатия «Далее».

Если оставить SQL_Latin1_General_CP1_CI_AS, база создастся, но пойдут ошибки конфликта сортировки при работе с временными таблицами. Временные таблицы живут в tempdb, а она наследует сортировку сервера.

Шаг 3. Режим аутентификации

Выберите Mixed Mode (SQL Server и Windows) и задайте надёжный пароль для sa. Под sa 1С работать не будет — отдельный логин создадим ниже.

Шаг 4. Каталоги данных

На вкладке Data Directories укажите пути на отдельном диске: один каталог для файлов данных, другой — для журналов, третий — для резервных копий. Для tempdb в новых версиях мастер сам предложит несколько файлов — оставьте.

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

Откройте SSMS, щёлкните правой кнопкой по серверу → Properties.

  1. Memory → Maximum server memory. По умолчанию SQL забирает почти всю память. На совмещённом сервере с 32 ГБ разумно поставить 20–22 ГБ, остальное оставить системе и rphost.
  2. Advanced → Max Degree of Parallelism. Для 1С обычно ставят 1. Запросы 1С короткие и многочисленные, параллелизм на них чаще мешает.
  3. Протокол TCP/IP. В SQL Server Configuration Manager проверьте, что он включён, если сервер 1С стоит на другой машине. После включения перезапустите службу SQL Server — в нерабочее время, все подключения к СУБД оборвутся.

Те же параметры можно задать скриптом:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 20480;
EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;

SQL-логин для 1С и права доступа к базе

Сервер 1С подключается к СУБД под учётной записью, которую вы укажете при создании базы. Работать под sa — плохая практика: пароль администратора СУБД окажется в настройках кластера, и любой администратор 1С получит полный доступ к серверу.

Создайте отдельный логин:

  1. В SSMS откройте Security → Logins, правой кнопкой → New Login.
  2. Имя, например, usr1c. Выберите SQL Server authentication, задайте пароль.
  3. Снимите галку User must change password at next login — иначе 1С не сможет войти.
  4. На странице Server Roles отметьте dbcreator. Эта роль нужна, чтобы 1С сама создала базу.
  5. Нажмите OK.

Скриптом то же самое:

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

Когда база создастся, логин станет её владельцем и получит полные права внутри неё. Роль sysadmin ему не нужна.

CHECK_EXPIRATION = OFF выставлен не случайно. Если срок действия пароля истечёт, сервер 1С перестанет подключаться к базе, и утром никто не сможет войти.

Если базу заранее создал администратор СУБД, роль dbcreator не нужна. Тогда логину достаточно стать владельцем этой базы (db_owner).

Создание базы 1С в кластере серверов

Сервер 1С:Предприятия должен быть установлен и запущен как служба. Агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591 по умолчанию. Если клиенты в другой подсети, откройте эти порты в брандмауэре сервера.

Создать базу можно двумя способами — результат одинаковый.

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

  1. На клиенте нажмите Добавить → Создание новой информационной базы.
  2. Выберите «Создание информационной базы без конфигурации» — данные потом загрузите из .dt.
  3. Тип расположения — «На сервере 1С:Предприятия».
  4. Заполните поля:
    • Кластер серверов 1С:Предприятия — имя сервера 1С, например srv1c;
    • Имя информационной базы в кластере — латиницей, без пробелов: buh_main;
    • Тип СУБД — MS SQL Server;
    • Сервер баз данных — имя сервера SQL, для именованного экземпляра srvsql\INSTANCE;
    • Имя базы данных — имя базы в SQL, удобно совпадает с именем в кластере;
    • Пользователь сервера БД и пароль — логин usr1c;
    • Смещение дат — 2000 для MS SQL;
    • галка Создать базу данных в случае ее отсутствия — включена.
  5. Нажмите «Далее» и «Готово».

Способ 2. Через консоль администрирования серверов

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

  • ✅ Разрешить выдачу лицензий сервером 1С:Предприятия — если лицензии стоят на сервере;
  • ✅ Установить блокировку регламентных заданий — включите на время переноса, чтобы обмены и загрузки не стартовали в пустой базе.

Если консоль не открывается и пишет об ошибке оснастки, перерегистрируйте radmin.dll из каталога bin установленной платформы командой regsvr32 от имени администратора. Это частая проблема после обновления платформы.

После создания в SSMS появится новая база, а в консоли кластера — информационная база с тем же именем.

Перенос данных из файловой базы через .dt

Пустая база готова — пора загрузить в неё данные. Перенос делается через файл выгрузки .dt, а не копированием 1Cv8.1CD.

Выгрузка из старой базы

  1. Откройте старую файловую базу в Конфигураторе. Пользователи должны выйти: выгрузка требует монопольного доступа.
  2. Меню Администрирование → Выгрузить информационную базу.
  3. Сохраните файл, например D:\backup\buh_2026.dt.

Перед выгрузкой стоит прогнать «Тестирование и исправление информационной базы» в том же меню. Ошибки файловой базы при загрузке в SQL всплывут всё равно, только позже.

Загрузка в новую базу на SQL

  1. Добавьте новую серверную базу в список окна запуска (если создавали через консоль).
  2. Откройте её в Конфигураторе. Пользователь при первом входе не спрашивается — база пустая.
  3. Меню Администрирование → Загрузить информационную базу, выберите .dt.
  4. Подтвердите предупреждение о замене данных.
  5. Дождитесь сообщения о завершении. Для базы 5–10 ГБ на SSD это примерно 20–60 минут.

Загрузка .dt полностью затирает данные в базе-приёмнике. Проверьте, что открыли именно новую базу, а не рабочую.

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

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

Обслуживание базы 1С на MS SQL: копии, индексы, статистика

База на SQL без обслуживания через полгода-год начинает тормозить. Выгрузка .dt как единственная резервная копия тоже не годится: она требует выгнать пользователей и долго делается.

Модель восстановления

У базы в SSMS: Properties → Options → Recovery model.

МодельКогда выбиратьЧто учесть
SimpleДостаточно ежедневной копии, потерять день работы допустимоЖурнал сам не разрастается
FullНужно восстановление на конкретный момент времениОбязательны копии журнала, иначе файл .ldf вырастет до размеров диска

Самая частая авария — модель Full без бэкапов журнала. Через несколько месяцев журнал занимает весь диск, база встаёт.

Резервная копия средствами SQL

Копию SQL делает «на ходу», пользователей выгонять не нужно:

BACKUP DATABASE buh_main
TO DISK = 'E:\SQLBackup\buh_main_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;

Сжатие (COMPRESSION) доступно в Standard и выше. Восстановить такую копию можно в другую базу и подключить её к кластеру как отдельную информационную базу — удобно для тестовой копии.

План обслуживания

В SSMS: Management → Maintenance Plans → Maintenance Plan Wizard. Нужен работающий SQL Server Agent, в Express его нет — там задания запускают через планировщик Windows и sqlcmd.

Типовой набор для 1С:

  • 🗓️ Ежедневно ночью — полная копия базы, обновление статистики (Update Statistics).
  • 🕐 Каждый час — копия журнала, если модель Full.
  • 📅 Раз в неделю — перестроение или реорганизация индексов (Rebuild Index / Reorganize Index), проверка целостности (Check Database Integrity).
  • 🧹 Очистка старых файлов копий старше N дней.

Не включайте задачу Shrink Database в регулярный план. Сжатие фрагментирует индексы, а файл через неделю снова вырастет. Опция Auto Shrink у базы тоже должна быть выключена.

Перестроение индексов тяжёлое и в Standard блокирует таблицы. Запускайте его ночью или в выходные, когда в базе никто не работает.

Ошибки при подключении базы 1С к SQL Server

Диагностика: выберите симптом

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

Можно ли подключить к SQL уже существующий файл 1Cv8.1CD?
Нет. Файловую базу переносят только выгрузкой в .dt и загрузкой в новую серверную базу.
Нужен ли сервер 1С, если SQL уже стоит?
Да. Клиент 1С работает с SQL только через сервер 1С:Предприятия, и на него нужна отдельная лицензия.
Почему смещение дат именно 2000?
Так 1С хранит даты в MS SQL, чтобы обойти ограничение старого типа datetime на даты до 1753 года. Для PostgreSQL смещение не задают.
Можно ли держать несколько баз 1С на одном SQL Server?
Да. Каждая информационная база — отдельная база в SQL. Ограничение одно — ресурсы сервера: память, диск и процессор.
Как сделать тестовую копию рабочей базы на SQL?
Восстановите свежий .bak в базу с новым именем через SSMS, затем зарегистрируйте её в кластере с галкой «Установить блокировку регламентных заданий», чтобы копия не запустила обмены.