Почему 64-разрядный сервер 1С не видит MS SQL Server и не запускается служба

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Различие каталогов 32-разрядного и 64-разрядного серверов 1С

Первое, на что следует обратить внимание — это разделение каталогов установки и хранения служебной информации (информации о кластере и входящих в него информационных базах) в зависимости от разрядности платформы:

Для 32-разрядного сервера 1С данные кластера по умолчанию находятся по пути:

C:\Program Files (x86)\1cv8\srvinfo

Для 64-разрядного сервера 1С данные кластера хранятся в каталоге:

C:\Program Files\1cv8\srvinfo

Если ранее работала 32-битная версия сервера, то при установке 64-битного сервера платформы создается абсолютно новый рабочий каталог. Консоль администрирования 64-разрядного сервера приложений обращается к пустому дереву кластера, в результате чего списки баз и подключений к MS SQL Server кажутся «пропавшими».

Шаг 1. Настройка прав доступа для учетной записи службы 1С

Часто в процессе установки 64-разрядной службы сервера 1С инсталлятор выдает ошибку о невозможности запустить службу из-за недостатка прав. Если пропустить запуск службы и попытаться стартовать ее вручную через оснастку Windows, служба может завершать работу сразу после запуска.

Выясним причину: при создании стандартного пользователя USR1CV8 Windows не всегда автоматически предоставляет ему полные права на каталог C:\Program Files\1cv8\srvinfo и все вложенные объекты.

Рассмотрим пошаговый порядок исправления прав доступа:

  1. Откроем проводник Windows и перейдем к каталогу C:\Program Files\1cv8\.
  2. Откроем свойства папки srvinfo и перейдем на вкладку Безопасность.
  3. Нажмем кнопку Изменить и добавим пользователя USR1CV8 (или ту учетную запись, от имени которой запускается служба ragent).
  4. Предоставим этой учетной записи флаг Полный доступ (Full Control).
  5. Применим изменения ко всем вложенным папкам и файлам.

Кроме того, в локальных политиках безопасности Windows Server (secpol.msc) убедимся, что учетная запись USR1CV8 включена в политику Вход в систему в качестве службы (SeServiceLogonRight).

Шаг 2. Перенос реестра кластера информационных баз

Если требуется сохранить настройки ранее созданных информационных баз и параметры их подключения к MS SQL Server, перенесем реестр кластера из 32-разрядной директории в 64-разрядную.

Разберем порядок действий:

  1. Остановим службу 32-разрядного сервера 1С (если она запущенa).
  2. Остановим службу 64-разрядного сервера 1С.
  3. Скопируем содержимое папки C:\Program Files (x86)\1cv8\srvinfo в папку C:\Program Files\1cv8\srvinfo (в частности, файлы 1cv8wsrv.lst и вложенные каталоги с файлами 1CV8Clst.lst).
  4. Проверим, что на все скопированные файлы у пользователя USR1CV8 есть права на чтение и запись.
  5. Запустим службу 64-разрядного сервера 1С.

Важно: Одновременный запуск 32-разрядного и 64-разрядного серверов 1С на одном физическом сервере без изменения сетевых портов невозможно, так как они будут вешать служебные процессы (ragent, rmngr, rphost) на одни и те же порты по умолчанию (1540, 1541, 1560-1591).

Шаг 3. Проверка разрядности драйвера СУБД (SQL Native Client)

Технически 64-разрядный рабочий процесс 1С (rphost.exe) взаимодействует с MS SQL Server через 64-разрядный OLE DB провайдер. Если 32-разрядный сервер 1С подключался к MS SQL посредством 32-разрядного драйвера, то 64-разрядный процесс 1С не сможет с ним работать.

Убедимся, что в операционной системе установлен 64-разрядный клиентский компонент MS SQL Server: Microsoft SQL Server Native Client x64 или Microsoft OLE DB Driver for SQL Server x64. Без установленного 64-битного драйвера сервер приложений 1С будет выдавать ошибку взаимодействия с СУБД.

Шаг 4. Настройка прав и ролей пользователя MS SQL Server

Для создания новых информационных баз прямо из консоли администрирования 1С или из тонкого клиента пользователь SQL, под которым сервер 1С подключается к MS SQL Server, должен обладать необходимыми правами на сервере баз данных.

Назначение роли sysadmin решает проблему подключения, но нарушает требования информационной безопасности. Рассмотрим минимально необходимый набор ролей и прав на стороне MS SQL Server:

На уровне сервера MS SQL Server:

  1. dbcreator — дает право серверу 1С автоматически создавать новые базы данных MS SQL при добавлении информационной базы.
  2. processadmin — позволяет серверу 1С завершать зависшие соединения и фоновые процессы в СУБД при необходимости.
  3. public — базовая роль сервера.

На уровне конкретной информационной базы данных MS SQL:

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

Шаг 5. Проверка сетевых настроек и авторизации MS SQL Server

Если после настройки прав доступа сервер 1С по-прежнему выдает ошибку авторизации при попытке подключения к MS SQL Server, проанализируем следующие параметры СУБД:

  1. Режим аутентификации MS SQL: В свойствах сервера СУБД (в SQL Server Management Studio) на вкладке Security должен быть включен смешанный режим авторизации — SQL Server and Windows Authentication mode.
  2. Протокол TCP/IP: В оснастке SQL Server Configuration Manager в разделе SQL Server Network Configuration -> Protocols for MSSQLSERVER должен быть включен протокол TCP/IP.
  3. Служба SQL Server Browser: Если используется именованный экземпляр MS SQL (например, SERVER\SQLEXPRESS), служба SQL Server Browser должна быть запущена.

Подводя итог: стабильная работа 64-разрядного сервера 1С:Предприятие с MS SQL Server обеспечивается корректными правами пользователя USR1CV8 на папку srvinfo, присутствием 64-битного OLE DB провайдера в Windows и назначением ролей dbcreator и processadmin для служебного пользователя СУБД.

← На главную