При настройке обменов данными между различными конфигурациями (например, из 1С:ЗУП в 1С:Общепит или 1С:Розница) специалисты часто прибегают к использованию прямого COM-соединения. Однако на этом пути можно столкнуться с неприятной ситуацией, когда обмен прерывается с сообщением:
«Произошла исключительная ситуация (V83.COMConnector.1): Идентификация пользователя не выполнена. Неправильное имя или пароль пользователя».
Многие администраторы в первую очередь начинают искать проблему в сложных настройках сервера или DCOM-компонент, забывая о базовых принципах работы платформы. Давайте подробно разберем эту ситуацию, проанализируем причины возникновения ошибки и посмотрим, как правильно настроить авторизацию для успешного обмена.
В первую очередь выясним причину, связанную с настройками самого подключения. Если настройки компоненты V83.COMConnector задаются на сервере, почему возникает проблема с идентификацией? Ответ кроется в том, как именно формируется запрос к базе-приемнику.
В настройках транспорта обмена (в правилах синхронизации данных) обязательно должны быть прописаны логин и пароль пользователя, через которого идет подключение к другой базе. Если эти данные не указаны или указаны с ошибкой, база-приемник отклонит запрос.
Рассмотрим, как проверить корректность учетных данных. Для этого попробуем напрямую инициировать подключение к базе-приемнику, используя метод Connect() с явно заданной строкой подключения.
Посмотрим на пример строки подключения:
// Пример формирования строки подключения для клиент-серверной базы
СтрокаПодключения = "Srvr=ИмяСервера;Ref=ИмяБазы;Usr=ИмяПользователя;Pwd=ПарольПользователя;";
Попытка
COMКоннектор = Новый COMОбъект("V83.COMConnector");
Соединение = COMКоннектор.Connect(СтрокаПодключения);
Сообщить("Подключение установлено успешно!");
Исключение
Сообщить("Ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;
Если при выполнении этого кода пускает в базу — значит, проблема действительно крылась в неверно заданных логине или пароле в настройках типового обмена. В рассматриваемом случае ошибка оказалась именно в клиентской авторизации: система пыталась подключиться без корректных учетных данных пользователя 1С.
Проанализируем ситуацию, когда логин и пароль намеренно не передаются (например, предполагается использование доменной Windows-авторизации). Важно понимать архитектурную особенность: код COM-соединения выполняется на стороне сервера 1С.
Если в строке подключения не указаны параметры Usr и Pwd, подключение к базе-приемнику происходит от имени пользователя операционной системы, под которым работает служба самого сервера 1С. Зачастую это системная учетная запись, например USR1CV8.
Если этот служебный пользователь не добавлен в список пользователей в базе-приемнике (и у него не настроена аутентификация ОС), 1С справедливо выдаст ошибку об отказе в идентификации. Поэтому всегда проверяйте, от какого имени стартует процесс и имеет ли этот аккаунт права на вход в целевую базу.
Хотя часто проблема кроется в банальной опечатке в пароле, иногда администраторам приходится настраивать права на самом сервере Windows. Ошибка идентификации может возникать, если компоненте V83.COMConnector в «Службах компонентов» (Component Services) не хватает прав.
Рассмотрим необходимые действия для настройки:
Технология COM-соединения крайне чувствительна к версиям платформы. Библиотека comcntr.dll должна быть корректно зарегистрирована в реестре. Если база-источник и база-приемник находятся на серверах с немного отличающимися релизами платформы 1С, COM-соединение неминуемо завершится исключительной ситуацией.
При каждом обновлении платформы 1С библиотеку COM-коннектора приходится перерегистрировать вручную с помощью утилиты regsvr32 или через службы компонентов. Убедитесь, что версии платформ на взаимодействующих узлах совпадают до последней цифры. Для обхода этих ограничений и решения проблем совместимости разрядности можно использовать руководство по настройке 1С-коннектора в виде удаленного COM+ приложения.
В профессиональном сообществе справедливо замечают, что уходить от COM-обменов уже давно пора. Выделим несколько критических недостатков этой технологии:
Рассмотрим современные альтернативы для интеграции баз 1С:
Подводя итог, при возникновении ошибки идентификации пользователя при COM-соединении, в первую очередь проверяйте логин и пароль в строке подключения и в настройках узла обмена. Если данные верны, проанализируйте контекст выполнения (пользователя службы сервера 1С) и настройки DCOM. Однако стратегически правильным решением будет постепенный переход на более современные и независимые от платформы форматы интеграции, такие как HTTP-сервисы или EnterpriseData. При разработке альтернативных механизмов синхронизации справочников можно использовать готовое решение для обмена данными через HTTP-сервисы.