К статье
Практический материал

Администрирование · 10 мин

Как добавить базу 1С в SQL Server: подробная инструкция

Как добавить базу 1С в SQL Server: создание базы через консоль кластера и SQL Server Management Studio, настройка прав, миграция с файлового режима, проверка результата.

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

«Добавить базу 1С в SQL» можно двумя способами: создать новую пустую базу на сервере и загрузить в неё данные из файловой копии, либо сначала создать базу средствами самого SQL Server, а затем зарегистрировать её в консоли кластера 1С. Оба подхода рабочие, но первый проще и надёжнее для большинства ситуаций.

Перед началом убедитесь, что у вас есть: установленный сервер 1С:Предприятие, SQL Server (поддерживаются Microsoft SQL Server, PostgreSQL, Oracle, IBM DB2 — чаще всего используется MS SQL), учётная запись с правами на создание баз данных в СУБД и актуальная выгрузка файловой базы в формате .dt. Без выгрузки .dt перенести данные в новую базу не получится.

Что понадобится перед началом работы

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

Проверьте совместимость версий: не каждая версия платформы 1С работает с любой версией SQL Server. Актуальную матрицу совместимости смотрите в системных требованиях платформы на сайте её разработчика. Использование неподдерживаемой комбинации приводит к ошибкам при создании базы или к нестабильной работе в дальнейшем.

Подготовьте учётную запись для подключения 1С к SQL Server. Рекомендуется создать отдельный логин (SQL-аутентификация или доменная учётная запись) и дать ему роль dbcreator на уровне сервера, а после создания базы — роль db_owner только на конкретную базу. Работать под sa — плохая практика: это суперпользователь, и любая утечка пароля открывает доступ ко всем базам сервера.

Способ 1: создание базы через консоль кластера 1С

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

В открывшемся окне заполните параметры: имя базы (так она будет отображаться в списке у пользователей), тип СУБД — MSSQL Server, имя сервера баз данных, имя базы данных в СУБД (латиницей, без пробелов), пользователь и пароль для подключения к SQL Server. Установите флаг «Создать базу данных в случае её отсутствия» — тогда база в SQL Server будет создана автоматически.

Остальные параметры можно оставить по умолчанию: блокировка регламентных заданий при создании включена, что удобно — после загрузки данных вы сами решите, когда их разрешить. Дата и время смещения и региональные установки обычно не трогают.

Порядок действий
  1. 1
    Сделайте выгрузку файловой базы: Конфигуратор → Администрирование → Выгрузить информационную базу
  2. 2
    Откройте консоль кластера 1С и создайте новую информационную базу с типом СУБД MSSQL Server
  3. 3
    Укажите сервер СУБД, имя базы, логин и пароль; включите создание базы при отсутствии
  4. 4
    Добавьте новую базу в список на клиенте и войдите в конфигуратор
  5. 5
    Загрузите данные: Администрирование → Загрузить информационную базу → выберите файл .dt
  6. 6
    Проверьте работу: войдите в режим предприятия, откройте справочники и документы

Способ 2: создание базы средствами SQL Server

Иногда администратор СУБД предпочитает сам контролировать размещение файлов базы: на каких дисках лежат данные и журнал транзакций, какие заданы параметры начального размера и прироста. В этом случае база сначала создаётся в SQL Server Management Studio, а затем регистрируется в консоли 1С без флага автоматического создания.

В SSMS создайте новую базу данных с именем, совпадающим с тем, что вы укажете в консоли 1С. Важный момент — collation (параметры сортировки): для 1С требуется Cyrillic_General_CI_AS. Если оставить collation по умолчанию и он отличается, при подключении возникнет ошибка несоответствия параметров сортировки.

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

sql
CREATE DATABASE [TradeBase]
COLLATE Cyrillic_General_CI_AS;
GO

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

Пустая база на SQL — это только каркас. Данные из файловой версии переносятся через выгрузку в файл .dt. В файловой базе откройте конфигуратор, выберите «Администрирование» → «Выгрузить информационную базу» и укажите путь к файлу. На больших базах выгрузка занимает заметное время, планируйте её на нерабочие часы.

Затем добавьте новую SQL-базу в список информационных баз на своём компьютере (через диалог запуска 1С, кнопка «Добавить» → «Добавление в список существующей информационной базы» → тип «На сервере 1С:Предприятия»). Войдите в конфигуратор новой базы и выполните «Администрирование» → «Загрузить информационную базу», указав файл .dt.

После загрузки платформа предложит перезапустить конфигуратор — соглашайтесь. Затем включите регламентные задания в консоли кластера, если они нужны, и настройте расписание резервного копирования уже средствами SQL Server: выгрузка .dt не заменяет регулярные бэкапы СУБД.

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

После создания базы стоит выполнить базовую настройку СУБД. Ограничьте максимальное объём памяти SQL Server (max server memory), оставив операционной системе и серверу 1С достаточный запас, если они размещены на той же машине. Без ограничения SQL Server постепенно занимает почти всю доступную память.

Разместите файлы данных и журнал транзакций на разных дисках, если позволяет оборудование. Выберите модель восстановления: Full подходит для рабочих баз с регулярными бэкапами журнала, Simple — для тестовых и разработческих копий, где не нужно восстановление на произвольный момент времени.

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

Контрольные точки

Как проверить результат

База в консоли кластера
Норма

База видна в списке информационных баз, статус активен

Тревожный признак

База отсутствует или при подключении ошибка доступа к СУБД

Вход в режим предприятия
Норма

База открывается, справочники и документы на месте

Тревожный признак

Ошибка соединения с сервером или пустые справочники

Права в SQL Server
Норма

Логин 1С имеет db_owner только на свою базу

Тревожный признак

Используется sa или логин с правами на весь сервер

Типичные ошибки и их решение

Самая частая проблема — ошибка «Ошибка СУБД: прекращена попытка соединения» при создании базы. Причины: не запущена служба SQL Server Browser, закрыт порт 1433 на брандмауэре, отключён протокол TCP/IP в настройках SQL Server. Проверьте эти три пункта в первую очередь.

Вторая распространённая ошибка — несоответствие collation при регистрации заранее созданной базы. Решение: пересоздать базу с параметрами сортировки Cyrillic_General_CI_AS. Изменить collation существующей базы сложнее, чем создать новую.

Также встречается ситуация, когда база создана, но пользователи не видят её в списке. Причина в том, что список информационных баз формируется на каждом клиенте отдельно. Для централизованной публикации используйте общий файл списка баз (.v8i) на сетевом ресурсе или публикацию через веб-сервер.

Типичные ошибки
01
Создание базы с collation по умолчанию — 1С отказывается подключаться, базу приходится пересоздавать
02
Работа под учётной записью sa — риск компрометации всего SQL-сервера
03
Отсутствие бэкапа перед загрузкой .dt — при сбое данные теряются безвозвратно
04
Ограничение памяти SQL Server не задано — сервер 1С и СУБД конкурируют за ресурсы, всё тормозит
05
Забытые отключённые регламентные задания — после перехода перестают выполняться обмены и автоматические операции

FAQ

Можно ли добавить базу 1С в SQL без выгрузки .dt?

Нет, прямого подключения файловой базы к SQL Server не существует — это разные форматы хранения. Перенос выполняется только через выгрузку .dt или через механизмы конвертации данных, если речь идёт о частичном переносе.

Какая версия SQL Server подходит для 1С?

Подойдёт любая поддерживаемая платформой редакция, включая бесплатную Express. Однако у Express есть ограничения на объём памяти и размер базы, поэтому для рабочих баз среднего и крупного размера обычно выбирают Standard. Точную матрицу совместимости смотрите в системных требованиях вашей версии платформы.

Нужен ли отдельный сервер для SQL?

Не обязательно. Для небольшого числа пользователей сервер 1С и SQL Server нормально работают на одной машине при достаточном объёме памяти и правильном ограничении max server memory. При росте нагрузки разнесение на разные серверы даёт выигрыш в производительности и упрощает обслуживание.

Что делать, если при создании базы ошибка доступа?

Проверьте, что логин имеет роль dbcreator или sysadmin на SQL Server, что служба SQL Server запущена, включён протокол TCP/IP и порт не заблокирован брандмауэром. Также убедитесь, что указали правильное имя экземпляра сервера — для именованных экземпляров оно пишется в формате «сервер\экземпляр».

Как перенести базу обратно из SQL в файловый режим?

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

Можно ли создать базу в SQL Server вручную через скрипт?

Да, базу можно создать T-SQL-командой CREATE DATABASE с указанием collation Cyrillic_General_CI_AS, а затем зарегистрировать её в консоли кластера 1С без флага автоматического создания. Все служебные таблицы 1С создаст сама при первом входе в конфигуратор.

Итог

Что важно запомнить

База 1С добавляется в SQL через консоль кластера серверов 1С с указанием типа СУБД, сервера и учётных данных. Данные переносятся только через выгрузку .dt. Перед операциями делайте резервные копии, используйте отдельный логин с минимально необходимыми правами и следите за collation Cyrillic_General_CI_AS.