Что делать, если возникает ошибка при создании базы 1С в клиент-серверном варианте на MS SQL Server?

Системный администратор IT и автоматизация бизнеса
← На главную

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

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

Шаг 1. Первичная диагностика системы

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

  1. Проверка служб. Откроем оснастку "Службы" (services.msc) и убедимся, что ключевые службы запущены. Нас интересуют:
    • Агент сервера 1С:Предприятие 8.3 (или аналогичная для вашей версии). Эта служба является сердцем сервера 1С.
    • SQL Server (MSSQLSERVER). Основная служба СУБД.
    • SQL Server Agent (MSSQLSERVER). Служба агента SQL Server.
  2. Проверка сетевой доступности. Убедимся, что сервер 1С может "достучаться" до SQL Server. Если они на одной машине, этот шаг менее критичен, но если на разных — это обязательно. Проверим, что брандмауэр Windows не блокирует порты, необходимые для работы SQL Server. По умолчанию это:
    • TCP 1433 — для подключения к экземпляру SQL Server по умолчанию.
    • UDP 1434 — для службы SQL Server Browser, которая помогает обнаруживать именованные экземпляры.

Шаг 2. Разбираемся с правами доступа в MS SQL Server

Это самая распространенная причина ошибки. По умолчанию, учетная запись, от имени которой работает служба "Агент сервера 1С:Предприятие" (чаще всего это системный пользователь USR1CV8), не имеет достаточных прав на сервере MS SQL для выполнения операции создания новой базы данных.

Чтобы предоставить необходимые права, выполним следующие действия:

  1. Запустим SQL Server Management Studio (SSMS) и подключимся к нашему экземпляру SQL Server.
  2. В обозревателе объектов перейдем в раздел "Безопасность" (Security) -> "Имена для входа" (Logins).
  3. Найдем в списке логин, соответствующий пользователю службы 1С. Если вы не меняли его при установке, это будет USR1CV8. Если такого логина нет, его необходимо создать.
  4. Откроем свойства этого логина (правой кнопкой мыши -> "Свойства").
  5. Перейдем на вкладку "Роли сервера" (Server Roles).
  6. Здесь необходимо выдать пользователю минимально необходимые роли для создания и управления базами. Установим флажки напротив ролей:
    • dbcreator — эта роль дает право создавать, изменять и удалять базы данных.
    • public — эта роль есть у всех по умолчанию, но убедимся, что она активна.
  7. Важный момент: Убедимся, что в настройках самого экземпляра SQL Server включен смешанный режим аутентификации (SQL Server and Windows Authentication mode). Это позволит подключаться к SQL не только под учетными записями Windows, но и с помощью логина/пароля SQL, что часто используется в 1С.
  8. Сохраним изменения. После этого можно попробовать снова создать базу данных напрямую из платформы 1С. В большинстве случаев это решает проблему.

После предоставления роли dbcreator пользователь USR1CV8 сможет самостоятельно выполнять команду CREATE DATABASE на SQL сервере, и процесс создания базы из консоли 1С пройдет успешно.

Шаг 3. Альтернативный способ: ручное создание базы

Если по каким-то причинам вы не хотите давать пользователю службы 1С права на создание баз (например, из соображений безопасности), можно использовать другой, абсолютно рабочий метод. Суть его в том, чтобы сначала подготовить "пустой контейнер" в SQL, а затем "подключить" его к 1С.

Разберем этот процесс по шагам:

  1. Создание пустой базы в SSMS.

    Запустим SQL Server Management Studio. В обозревателе объектов нажмем правой кнопкой мыши на "Базы данных" (Databases) и выберем "Создать базу данных" (New Database).

    В открывшемся окне зададим имя будущей базы, например, MyCompany_ERP.

    Критически важный параметр — параметры сортировки (Collation). Для корректной работы русскоязычных конфигураций 1С необходимо установить значение Cyrillic_General_CI_AS. Если этого не сделать, в будущем вы можете столкнуться с ошибками сортировки и сравнения строк. Перейдем на вкладку "Параметры" (Options) и в поле "Параметры сортировки" выберем нужное значение.

    Нажимаем "ОК". Пустая база данных создана.

  2. Создание информационной базы в консоли 1С.

    Теперь откроем "Администрирование серверов 1С:Предприятия".

    Нажмем правой кнопкой на кластере и выберем "Создать" -> "Информационную базу".

    В мастере создания укажем имя базы (например, "Бухгалтерия предприятия").

    На шаге выбора СУБД выберем "Microsoft SQL Server".

    Далее заполним поля, но с одним ключевым отличием. В поле "База данных" укажем точное имя базы, которую мы создали на предыдущем шаге в SSMS (MyCompany_ERP).

    Также укажем пользователя и пароль для доступа к SQL. Это может быть пользователь с правами db_owner на уже созданную базу.

    Важно: снимем флажок "Создавать базу данных в случае ее отсутствия", так как база у нас уже существует.

    Завершаем работу мастера. Сервер 1С не будет пытаться создать базу на SQL, а просто подключится к существующей и создаст в ней необходимые для своей работы таблицы и объекты.

Шаг 4. Дополнительные проверки сетевых протоколов и компонентов

Если предыдущие шаги не помогли, стоит проверить настройки сетевого взаимодействия на уровне самого SQL Server.

Таким образом, решая проблему создания базы 1С, мы проходим путь от простой проверки служб до тонкой настройки прав и сетевых протоколов. В подавляющем большинстве случаев, предоставление роли dbcreator пользователю службы 1С или предварительное ручное создание базы данных в SSMS с правильными параметрами сортировки полностью решает данную ошибку.

← На главную