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

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

Как развернуть новую базу 1С на SQL-сервере

Пошаговое руководство по развёртыванию новой базы 1С на MS SQL Server: подготовка сервера, создание базы через консоль кластера, настройка прав и типичные ошибки.

Клиент-серверный режим работы 1С:Предприятия используют там, где файловая база уже не справляется: много пользователей, большие объёмы данных, требования к отказоустойчивости и регламентным операциям. В этой связке сервер 1С выступает посредником между клиентскими приложениями и СУБД, а физически данные хранятся в базе Microsoft SQL Server (реже — PostgreSQL, Oracle или IBM DB2). Ниже рассмотрен самый распространённый сценарий — развёртывание новой базы на связке «сервер 1С + MS SQL Server».

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

Инструкция предполагает, что платформа 1С:Предприятие и сервер 1С уже установлены, а у вас есть административный доступ к обоим серверам. Если сервер 1С и SQL Server размещены на одной машине (допустимо для небольших внедрений), порядок действий тот же.

Проверьте готовность инфраструктуры перед созданием базы

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

В-третьих, проверьте сетевую связность: сервер 1С должен видеть SQL Server по имени и порту (по умолчанию TCP 1433). Если SQL Server установлен как именованный экземпляр, имя указывается в формате СЕРВЕР\ЭКЗЕМПЛЯР, и служба SQL Server Browser должна работать, либо порт экземпляра задан явно. Ошибка «сервер баз данных не обнаружен» на этапе создания базы почти всегда означает проблему сети, брандмауэра или неверного имени экземпляра.

Служба агента 1СЗапущена и работает

services.msc → «Агент сервера 1С:Предприятия» в состоянии «Выполняется»

Доступность SQL ServerПорт 1433 открыт

Test-NetConnection sqlserver -Port 1433 с машины сервера 1С

Учётная записьЕсть права на создание БД

Роль dbcreator или sysadmin на SQL Server

Дисковое пространствоЗапас под рост базы

Место под данные и журнал транзакций на дисках SQL Server

Подготовьте SQL Server: collation, учётная запись, настройки

Ключевой параметр — collation (параметры сортировки). Для баз 1С на русском языке требуется collation Cyrillic_General_CI_AS. Его можно задать на уровне экземпляра при установке SQL Server или на уровне конкретной базы. Если collation экземпляра отличается, база всё равно создастся, но при создании через консоль 1С collation базы будет унаследован — проверьте его после создания командой SELECT DATABASEPROPERTYEX('ИмяБазы', 'Collation'). Неверный collation приводит к ошибкам сортировки и сравнения строк, а исправляется только пересозданием базы.

Отдельно подготовьте учётную запись, от имени которой сервер 1С будет обращаться к SQL Server. Правильная практика — выделенная учётная запись (доменная или SQL-логин) с правами на конкретную базу, а не sa. Для создания базы через консоль 1С учётной записи нужны права на создание БД (роль dbcreator); после создания для штатной работы достаточно db_owner на эту базу. Пароль SQL-логина с особыми символами иногда вызывает проблемы при передаче через мастер — это стоит учитывать при генерации пароля.

Также заранее решите вопрос модели восстановления. По умолчанию новая база наследует модель из системной базы model — обычно Full (полная). Для продуктивной базы это оправдано, но требует регулярного бэкапа журнала транзакций, иначе журнал будет расти бесконечно. Для тестовых баз удобнее Simple (простая) модель.

Создайте информационную базу через консоль администрирования

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

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

Порядок создания базы
  1. 1
    Откройте консоль администрирования серверов 1С и разверните нужный кластер
  2. 2
    Правой кнопкой по «Информационные базы» → «Создать» → «Информационная база»
  3. 3
    Заполните имя, тип СУБД (MS SQL Server), имя сервера и имя базы данных
  4. 4
    Укажите учётную запись SQL с правом создания БД и установите флаг «Создать базу данных в случае её отсутствия»
  5. 5
    Заблокируйте регламентные задания на время загрузки конфигурации
  6. 6
    Нажмите «ОК» и проверьте, что база появилась в списке кластера и в списке баз на SQL Server

Альтернативный путь — создание базы через диалог запуска 1С (кнопка «Добавить» → «Создание новой информационной базы» → «На сервере 1С:Предприятия»). Там же можно сразу выбрать шаблон конфигурации из установленных. Этот способ удобен, когда конфигурация ставится из дистрибутива, а не загружается из выгрузки.

Загрузите конфигурацию в новую базу

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

Второй способ — установка конфигурации из шаблона поставщика. Сначала устанавливается дистрибутив конфигурации (setup.exe из комплекта поставки), затем при создании базы через диалог запуска выбирается нужный шаблон. Этот вариант подходит для внедрения «с нуля». После первой загрузки войдите в конфигуратор и выполните обновление конфигурации базы данных (F7), если конфигуратор попросит, — без этого база не запустится в режиме предприятия.

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

Настройте базу на стороне SQL Server

После создания базы откройте SQL Server Management Studio и проверьте её свойства. Убедитесь в правильном collation, выберите модель восстановления под вашу схему бэкапов, проверьте начальные размеры файлов и настройки авторасширения. Параметр авторасширения в процентах для больших баз нежелателен: лучше задать фиксированный прирост в мегабайтах, чтобы расширение файлов не тормозило работу в случайные моменты.

Обязательно создайте план обслуживания: резервное копирование полной базы (ежедневно), бэкап журнала транзакций при модели Full (несколько раз в день), обновление статистики и реорганизация индексов. Без регулярного обслуживания производительность базы 1С деградирует по мере роста данных, а журнал транзакций может переполнить диск.

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

Проверьте результат и типичные ошибки

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

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

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

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

Отображается в ветке «Информационные базы» без ошибок

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

База есть на SQL Server, но отсутствует в кластере — создание не завершено

Collation базы
Норма

Cyrillic_General_CI_AS

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

Другой collation — сортировка и поиск будут работать некорректно

Запуск в режиме Предприятия
Норма

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

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

Ошибки прав доступа SQL или «база данных не обнаружена»

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

Соответствует плану бэкапов (Full или Simple)

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

Full без бэкапов журнала — журнал растёт без ограничений

Типичные ошибки
01
Создание базы напрямую в SSMS вручную, а потом попытка «привязать» её к 1С — структуру таблиц должна создавать сама платформа через консоль или загрузку .dt
02
Использование sa или учётной записи с избыточными правами для постоянной работы — риск безопасности
03
Имя базы кириллицей или с пробелами — проблемы в скриптах, бэкапах и строках подключения
04
Забытая блокировка регламентных заданий при загрузке .dt — задания стартуют на полупустой базе и порождают ошибки
05
Отсутствие плана бэкапов с первого дня — первый же сбой приводит к потере данных

FAQ: частые вопросы о развёртывании базы 1С на SQL

Можно ли создать базу 1С на SQL без сервера 1С?

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

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

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

Какие права нужны учётной записи SQL для постоянной работы базы?

Для штатной работы достаточно роли db_owner на конкретную базу данных. Права на создание баз (dbcreator) нужны только на момент развёртывания. Давать учётной записи 1С роль sysadmin на постоянной основе не следует — это избыточные права.

Сколько места выделять под новую базу?

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

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

Проверьте по порядку: запущена ли служба SQL Server, правильно ли указано имя сервера или экземпляра, открыт ли порт 1433 в брандмауэре, работает ли SQL Server Browser для именованного экземпляра, включён ли протокол TCP/IP в конфигурации SQL Server. Чаще всего причина — брандмауэр или неверное имя экземпляра.

Можно ли разместить сервер 1С и SQL Server на одной машине?

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

Итог

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

База 1С на SQL создаётся через консоль администрирования сервера 1С, а не вручную в SSMS. Ключевые условия успеха: правильный collation (Cyrillic_General_CI_AS), выделенная учётная запись с минимально необходимыми правами, осознанный выбор модели восстановления и настроенные бэкапы с первого дня. После загрузки конфигурации проверьте запуск в режиме Предприятия и снимите блокировку регламентных заданий.