Администрирование · 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Сделайте выгрузку файловой базы: Конфигуратор → Администрирование → Выгрузить информационную базу
- 2Откройте консоль кластера 1С и создайте новую информационную базу с типом СУБД MSSQL Server
- 3Укажите сервер СУБД, имя базы, логин и пароль; включите создание базы при отсутствии
- 4Добавьте новую базу в список на клиенте и войдите в конфигуратор
- 5Загрузите данные: Администрирование → Загрузить информационную базу → выберите файл .dt
- 6Проверьте работу: войдите в режим предприятия, откройте справочники и документы
Способ 2: создание базы средствами SQL Server
Иногда администратор СУБД предпочитает сам контролировать размещение файлов базы: на каких дисках лежат данные и журнал транзакций, какие заданы параметры начального размера и прироста. В этом случае база сначала создаётся в SQL Server Management Studio, а затем регистрируется в консоли 1С без флага автоматического создания.
В SSMS создайте новую базу данных с именем, совпадающим с тем, что вы укажете в консоли 1С. Важный момент — collation (параметры сортировки): для 1С требуется Cyrillic_General_CI_AS. Если оставить collation по умолчанию и он отличается, при подключении возникнет ошибка несоответствия параметров сортировки.
После создания базы выдайте логину 1С роль db_owner на эту базу. Затем в консоли кластера создайте информационную базу, укажите те же параметры подключения, но снимите флаг создания базы — 1С подключится к уже существующей и создаст в ней свои служебные таблицы при первом входе в конфигуратор.
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 и не требуют остановки работы пользователей при правильной настройке.
Как проверить результат
База видна в списке информационных баз, статус активен
База отсутствует или при подключении ошибка доступа к СУБД
База открывается, справочники и документы на месте
Ошибка соединения с сервером или пустые справочники
Логин 1С имеет db_owner только на свою базу
Используется sa или логин с правами на весь сервер
Типичные ошибки и их решение
Самая частая проблема — ошибка «Ошибка СУБД: прекращена попытка соединения» при создании базы. Причины: не запущена служба SQL Server Browser, закрыт порт 1433 на брандмауэре, отключён протокол TCP/IP в настройках SQL Server. Проверьте эти три пункта в первую очередь.
Вторая распространённая ошибка — несоответствие collation при регистрации заранее созданной базы. Решение: пересоздать базу с параметрами сортировки Cyrillic_General_CI_AS. Изменить collation существующей базы сложнее, чем создать новую.
Также встречается ситуация, когда база создана, но пользователи не видят её в списке. Причина в том, что список информационных баз формируется на каждом клиенте отдельно. Для централизованной публикации используйте общий файл списка баз (.v8i) на сетевом ресурсе или публикацию через веб-сервер.
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.