Как исправить ошибку 0x800706ba «Сервер RPC недоступен» при настройке фискального регистратора в 1С?

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

При подключении или настройке нового торгового оборудования, в частности фискальных регистраторов, пользователи и разработчики часто сталкиваются с системным сообщением: «Произошла исключительная ситуация (0x800706ba)». Эта ошибка расшифровывается как RPC_S_SERVER_UNAVAILABLE (Сервер RPC недоступен). В контексте 1С это означает, что программная среда попыталась обратиться к внешнему COM-объекту (драйверу кассы), но связь с этим объектом была внезапно разорвана или не установлена вовсе.

Рассмотрим детально причины возникновения этой проблемы и разберем по шагам методы её решения, основываясь на системном анализе и опыте разработчиков.

1. Проанализируем природу ошибки 0x800706ba

Технология RPC (Remote Procedure Call — удаленный вызов процедур) используется Windows для взаимодействия между различными процессами. Когда 1С работает с фискальным регистратором, она не управляет «железом» напрямую. Вместо этого 1С вызывает методы драйвера, который часто зарегистрирован в системе как COM-объект или работает через отдельную службу. Если этот внешний процесс (драйвер) «падает» или блокируется системой, 1С получает ошибку о недоступности RPC-сервера.

2. Проверка разрядности платформы 1С и драйвера

Выясним одну из самых частых причин в современных реалиях. Если вы используете 64-битный клиент 1С, а драйвер оборудования (COM-компонента) является 32-битным, прямой вызов методов невозможен. Windows пытается запустить «прослойку» (DCOM-обертку), которая часто завершается с ошибкой 0x800706ba.

Что нужно сделать:

  1. Проверим версию установленной платформы 1С (Справка — О программе).
  2. Убедимся, что установленный драйвер (Атол, Штрих-М, Википринт) соответствует этой разрядности.
  3. Если драйвер только 32-битный, попробуем запустить 32-битный толстый или тонкий клиент 1С и проверить подключение в нем.

3. Диагностика через отладчик 1С

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

Рассмотрим пример кода, который может приводить к аварийному завершению работы COM-объекта:


// В общей форме при проверке параметров происходит обращение
Если ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаПодвалЧека) Тогда
    // Код обработки подвала
КонецЕсли;

Если ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаШапкаЧека) Тогда
    // Код обработки шапки
КонецЕсли;

Если объект ПараметрыОборудования не содержит полей ТаблицаПодвалЧека или ТаблицаШапкаЧека, обращение к ним напрямую может вызвать исключение в драйвере. Проанализируем стек вызовов: для этого нужно встать в отладчике перед точкой падения и проверить состав структуры через «Вычислить выражение».

Для исправления кода рекомендуется использовать метод Свойство(), чтобы избежать прямого обращения к отсутствующим полям:


// Безопасная проверка наличия свойств
Если Параметры.ПараметрыОборудования.Свойство("ТаблицаПодвалЧека") 
   И ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаПодвалЧека) Тогда
    // Обработка
КонецЕсли;

4. Настройка служб компонентов (DCOM)

Если код корректен, а разрядность совпадает, проблема может крыться в правах доступа Windows. Выясним, как настроить системные компоненты:

  1. Нажмем Win + R, введем dcomcnfg и нажмем Enter.
  2. Перейдем в раздел: Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
  3. Найдем в списке драйвер вашего регистратора (например, AddIn.FPrnM45 или аналогичный).
  4. В свойствах на вкладке «Безопасность» проверим разрешения на запуск и активацию. Рекомендуется временно добавить группу «Все» для проверки.
  5. На вкладке «Удостоверение» выберем «Текущий пользователь» или «Интерактивный пользователь».

5. Проверка работоспособности службы драйвера

Многие современные фискальные регистраторы (особенно WikiPrint или новые модели Атол) работают через вспомогательные службы, такие как EoU (Ethernet over USB) или специальные прокси-службы. Если служба остановлена, 1С не сможет инициализировать RPC-соединение с оборудованием.

Порядок действий:

  1. Откроем «Службы» (services.msc).
  2. Найдем службы, относящиеся к производителю ККТ.
  3. Убедимся, что они имеют статус «Выполняется» и тип запуска «Автоматически».
  4. Перезапустим службу и попробуем повторить тест связи в 1С.

6. Специфика работы в терминальном режиме (RDP)

Если 1С запущена на сервере через удаленный рабочий стол, а касса подключена к локальному ПК, ошибка 0x800706ba часто свидетельствует о разрыве канала проброса портов. Проанализируем настройки подключения:

7. Итоговые рекомендации

Подводя итог, при возникновении ошибки 0x800706ba в 1С, мы рекомендуем придерживаться следующего алгоритма:

  1. Проверить журнал регистрации 1С: если там указано конкретное свойство (как в Сообщении 3 нашего разбора), которое 1С не может прочитать, — необходимо вносить правки в программный код обработки обслуживания.
  2. Обновить драйвер: часто производители исправляют ошибки падения COM-объектов в новых релизах.
  3. Запустить 1С от имени Администратора: это поможет исключить проблемы с правами доступа к COM-интерфейсам.
  4. Проверить работу через Тест драйвера: если штатная утилита от производителя кассы тоже выдает ошибку связи, значит проблема не в 1С, а на уровне ОС или кабельного подключения.

Использование комплексного подхода — от проверки разрядности до анализа каждой строки кода в отладчике — позволит быстро локализовать и устранить причину недоступности RPC-сервера.

← На главную