Как исправить ошибку COM-соединения «указана неправильная идентификация» (0x8000401A) в 1С

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

При работе с 1С:Предприятие через COM-соединение системные администраторы и разработчики часто сталкиваются с неприятной ошибкой: «Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля». Код ошибки — -2147467238(0x8000401A).

Ситуация осложняется тем, что соединение может работать стабильно некоторое время (например, после перезагрузки сервера или ручной перерегистрации компоненты), а затем «отваливаться» без видимых причин. В этой статье мы подробно разберем, почему это происходит, и проанализируем все шаги по полному устранению данной проблемы.

Выясним причину ошибки 0x8000401A

Ошибка 0x8000401A в контексте Windows означает CO_E_RUNAS_LOGON_FAILURE. Это сигнализирует о том, что служба COM+ пытается запустить процесс от имени определенного пользователя, но не может этого сделать. Чаще всего это происходит не из-за того, что пароль действительно «неправильный», а из-за ограничений операционной системы на запуск процессов в фоновом режиме или из-за выгрузки профиля пользователя из памяти.

Рассмотрим основные сценарии решения этой задачи.

Шаг 1. Настройка удостоверения в Службах компонентов (COM+)

Наиболее частая причина сбоев — неправильно настроенное «Удостоверение» (Identity) в консоли администрирования COM+. Рассмотрим, как правильно настроить компоненту V83.COMConnector.

  1. Откроем «Панель управления» — «Администрирование» — «Службы компонентов» (может потребоваться альтернативная консоль администрирования) или выполним команду dcomcnfg (также полезна консоль администрирования серверов 1С через ras).
  2. Перейдем по пути: «Консоль управления» — «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+».
  3. Найдем в списке наше приложение. Если его нет, его необходимо создать (обычно оно называется V83_ComConnector).
  4. Нажмем правой кнопкой мыши на V83_ComConnector и выберем «Свойства».
  5. Перейдем на закладку «Удостоверение» (Identity).

Важный момент: если там выбрано «Текущий вошедший пользователь» (Interactive User), то соединение будет работать только тогда, когда на сервере активна RDP-сессия под этим пользователем. Как только вы выйдете из системы, COM-объект перестанет создаваться.

Проанализируем правильный подход: выберем пункт «Указанный пользователь». Нажмем «Обзор» и выберем пользователя, от имени которого работает сервер 1С (например, USR1CV8). Обязательно введем и подтвердим актуальный пароль. Именно это действие чаще всего восстанавливает работу обмена.

Шаг 2. Настройка прав в групповых политиках (GPO)

Даже если пароль указан верно, операционная система может запрещать пользователю запуск процессов в «пакетном» режиме. Проверим настройки безопасности сервера.

  1. Запустим редактор локальной политики безопасности (secpol.msc) или обратимся к системному администратору для настройки доменных политик.
  2. Перейдем в раздел «Локальные политики» — «Назначение прав пользователя».
  3. Найдем параметр «Вход в качестве пакетного задания» (Log on as a batch job).
  4. Добавим в этот список пользователя, которого мы указали в настройках COM+ (например, USR1CV8).

Это позволит системе инициализировать процесс dllhost.exe (в котором работает COM-объект) без необходимости полноценного интерактивного входа пользователя в систему.

Шаг 3. Управление профилем пользователя и системные папки

Иногда ошибка возникает из-за того, что Windows «оптимизирует» ресурсы и выгружает реестр неактивного пользователя. Рассмотрим ситуацию, когда компонента «падает» через некоторое время после запуска.

Для предотвращения этой проблемы в настройках некоторых служб помогает включение флага «Загружать профиль пользователя» (Load User Profile). Если вы используете IIS для веб-сервисов, которые инициируют COM-соединение, этот флаг нужно установить в значение True в настройках пула приложений.

Также разберем один «мистический», но крайне эффективный способ, связанный с архитектурой Windows 64-bit. Иногда COM-объектам требуются папки рабочего стола для инициализации окружения, даже если графический интерфейс не используется. Создадим их вручную:

После создания папок убедимся, что у пользователя USR1CV8 есть полные права доступа к ним.

Шаг 4. Тип активации приложения COM+

Проанализируем еще одну важную настройку в свойствах приложения V83_ComConnector в консоли COM+.

  1. Зайдем на вкладку «Конструирование» (Activation).
  2. Здесь доступны два варианта: «Библиотечное приложение» (Library application) и «Серверное приложение» (Server application).

Для стабильного решения проблем с правами рекомендуется использовать «Серверное приложение». В этом режиме COM-объект запускается в отдельном процессе dllhost.exe, что позволяет системе четко изолировать права доступа и использовать именно то удостоверение, которое мы настроили на Шаге 1. Если приложение работает как «Библиотечное», оно пытается наследоваться от прав вызывающего процесса (например, процесса 1С), что часто приводит к конфликтам идентификации.

Шаг 5. Корректная регистрация компоненты comcntr.dll

Если после обновлений платформы 1С ошибка сохраняется, возможно, в системе зарегистрирована старая версия библиотеки или произошел конфликт в реестре. Выполним перерегистрацию:

  1. Запустим командную строку от имени администратора.
  2. Сначала отменим регистрацию текущей библиотеки: regsvr32 /u "C:\Program Files\1cv8\8.3.XX.XXXX\bin\comcntr.dll"
  3. Затем зарегистрируем её заново, используя путь к актуальной версии платформы: regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\comcntr.dll"

Посмотрим на результат выполнения: должно появиться сообщение DllRegisterServer в ... успешно. Если вы используете 64-битную платформу 1С, убедитесь, что регистрируете библиотеку именно из папки Program Files, а не Program Files (x86), если только ваша задача не требует обратного.

Особенности работы с Microsoft Excel через COM

Рассмотрим случай, когда ошибка 0x8000401A возникает при попытке 1С программно открыть Excel (например, при загрузке данных). Это часто связано с разрядностью: 1С может быть 64-битной, а установленный Microsoft Office — 32-битным. В этом случае настройки в dcomcnfg нужно проводить не для V83.COMConnector, а для компоненты Microsoft Excel Application.

Процедура аналогична: в свойствах Microsoft Excel Application на вкладке «Удостоверение» нужно указать конкретного пользователя с административными правами вместо «Интерактивного пользователя».

Резюме

Для окончательного решения проблемы «неправильной идентификации» мы рекомендуем придерживаться комплексного подхода: указать конкретного пользователя в свойствах COM+, разрешить этому пользователю вход в качестве пакетного задания и создать необходимые системные папки Desktop. Эти действия в 99% случаев устраняют ошибку и обеспечивают стабильную работу обменов в 1С.

← На главную