Как настроить подключение 1С к кубам MS SQL Server Analysis Services через HTTP и решить проблему с пустым списком кубов

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

При построении продвинутой аналитики в среде 1С часто возникает необходимость интеграции с многомерными базами данных Microsoft SQL Server Analysis Services (SSAS). Использование внешних источников данных в 1С позволяет напрямую обращаться к OLAP-кубам и строить на их основе комплексные отчеты. Для обеспечения удаленной работы и обхода ограничений прямой видимости серверов подключение настраивают через специальный HTTP-шлюз на базе веб-сервера IIS с использованием библиотеки msmdpump.dll.

Однако на этапе настройки разработчики часто сталкиваются с проблемой: в MS Excel кубы подключаются без проблем, но в конфигураторе 1С при попытке выбрать куб внешнего источника данных открывается абсолютно пустой список, при этом платформа не выдает никаких ошибок. Давайте подробно разберем эту ситуацию, проанализируем причины возникновения ошибки и пошагово решим проблему.

Выясняем причину: почему Excel работает, а 1С — нет?

При работе с MS Excel подключение к SSAS через HTTP-шлюз обычно использует текущие учетные данные пользователя Windows (технология SSPI / Integrated Security). Excel инициирует сессию от имени текущего доменного пользователя, и веб-сервер IIS прозрачно передает эти данные на сервер авторизации SSAS.

В случае с 1С ситуация иная. Платформа 1С выполняет запросы к внешним источникам данных на стороне сервера приложений (в клиент-серверном варианте) или от имени специального процесса. При анонимном доступе к IIS, который часто настраивают для упрощения работы шлюза msmdpump.dll, запросы к кубу фактически выполняются от имени локальной учетной записи веб-сервера. Если у этой учетной записи нет прав внутри базы данных SSAS, сервер аналитики просто возвращает пустую структуру метаданных, что и приводит к отображению пустого списка кубов в конфигураторе 1С.

Давайте по шагам разберем процесс исправления этой ошибки и корректной настройки всей цепочки взаимодействия.

Шаг 1. Проверка и корректировка строки подключения в 1С

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


http://<Имя_Вашего_Сервера>:80/msolap/msmdpump.dll?ProviderName=Microsoft Analysis Services&DataSourceName=<Имя_Сервера_SSAS>&Catalog=<Имя_Базы_Данных_SSAS>

Обратите внимание на параметр ProviderName. Версия провайдера (например, MSOLAP.8 или MSOLAP.7) должна быть установлена на компьютере, с которого выполняется подключение (на сервере 1С и на рабочем месте разработчика, где запущен Конфигуратор).

Шаг 2. Включение просмотра каталога на веб-сервере IIS

Для того чтобы конфигуратор 1С мог корректно прочитать структуру папок и обратиться к шлюзу, на стороне веб-сервера IIS необходимо включить просмотр каталога. Рассмотрим, как это сделать:

  1. Откройте Диспетчер служб IIS (Internet Information Services Manager) на сервере, где опубликован шлюз.
  2. В дереве подключений перейдите к вашему сайту или виртуальному каталогу (обычно это Default Web Site/MSOLAP).
  3. В центральной панели дважды щелкните по иконке Просмотр каталога (Directory Browsing).
  4. В правой панели действий нажмите кнопку Включить (Enable).

Важное примечание по безопасности: Функция просмотра каталога необходима в первую очередь для работы мастера подключения в конфигураторе 1С. После того как структура метаданных успешно импортирована и подключение настроено, в целях безопасности эту функцию на IIS рекомендуется отключить.

Шаг 3. Настройка прав доступа на сервере MS SQL Server Analysis Services

Теперь перейдем к главному решению проблемы. Поскольку IIS обрабатывает входящие анонимные запросы через специального системного пользователя, нам необходимо предоставить этому пользователю права на чтение кубов в SSAS.

По умолчанию для анонимного доступа IIS использует встроенную учетную запись NT AUTHORITY\IUSR. Проанализируем, как дать ей необходимые права:

  1. Запустите среду Microsoft SQL Server Management Studio (SSMS) и подключитесь к вашему серверу Analysis Services.
  2. В обозревателе объектов разверните узел Базы данных (Databases) и выберите вашу аналитическую базу данных.
  3. Разверните узел базы данных, нажмите правой кнопкой мыши на раздел Роли (Roles) и выберите Создать роль... (New Role).
  4. В окне свойств роли на вкладке Общие (General) укажите понятное имя роли, например, 1C_Reader_Anonymous, и установите разрешение на чтение базы данных (Read).
  5. Перейдите на вкладку Членство (Membership) и нажмите кнопку Добавить (Add).
  6. В поле выбора пользователей введите системное имя учетной записи: NT AUTHORITY\IUSR (если сервер находится в домене, убедитесь, что поиск производится по локальному компьютеру, а не по активному каталогу домена). Нажмите ОК.
  7. Перейдите на вкладку Кубы (Cubes) и убедитесь, что для необходимых вам кубов установлено разрешение доступа Чтение (Read).
  8. Нажмите ОК для сохранения настроек роли.

После применения этих настроек веб-шлюз msmdpump.dll сможет успешно обращаться к метаданным SSAS от имени пользователя IUSR, и список кубов в 1С перестанет быть пустым.

Шаг 4. Альтернативные и более безопасные методы авторизации

Предоставление прав учетной записи NT AUTHORITY\IUSR — это рабочее и быстрое решение, но оно несет в себе определенные риски безопасности, так как фактически открывает анонимный доступ к вашим аналитическим данным для любого пользователя, имеющего доступ к веб-серверу IIS. Рассмотрим более безопасные альтернативы.

Вариант А: Использование выделенного пула приложений

Вместо использования системной учетной записи IUSR мы можем настроить IIS так, чтобы шлюз выполнялся от имени определенного локального или доменного пользователя:

  1. В IIS Manager создайте отдельный пул приложений (Application Pool), например, MSOLAP_AppPool.
  2. В дополнительных параметрах пула в поле Удостоверение (Identity) укажите конкретную служебную учетную запись (например, специально созданного пользователя domain\svc_1colap).
  3. В настройках анонимной аутентификации вашего виртуального каталога MSOLAP укажите использование "Удостоверения пула приложений" (Application pool identity) вместо IUSR.
  4. В SSAS добавьте в роль чтения именно эту служебную учетную запись domain\svc_1colap.

Вариант Б: Базовая проверка подлинности (Basic Authentication)

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

  1. В настройках IIS для каталога MSOLAP отключите анонимный доступ и включите Базовую проверку подлинности (Basic Authentication).
  2. Поскольку пароли при базовой проверке передаются в открытом виде, обязательно настройте использование безопасного протокола HTTPS (SSL/TLS) для вашего веб-сайта в IIS.
  3. В строке подключения 1С явно передавайте имя пользователя и пароль, которые заведены на сервере или в домене и имеют соответствующие права в SSAS:

http://<Имя_Сервера>/msolap/msmdpump.dll?ProviderName=Microsoft Analysis Services&DataSourceName=<Имя_Сервера>&Catalog=<База>;UID=olap_user;PWD=user_password;

Шаг 5. Контроль разрядности драйверов (Bitness)

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

Мы успешно разобрали все тонкости интеграции 1С с кубами Microsoft SQL Server Analysis Services через HTTP-шлюз. Последовательное выполнение этих шагов гарантирует стабильное подключение и корректное отображение кубов во внешних источниках данных 1С.

← На главную