При подключении или настройке нового торгового оборудования, в частности фискальных регистраторов, пользователи и разработчики часто сталкиваются с системным сообщением: «Произошла исключительная ситуация (0x800706ba)». Эта ошибка расшифровывается как RPC_S_SERVER_UNAVAILABLE (Сервер RPC недоступен). В контексте 1С это означает, что программная среда попыталась обратиться к внешнему COM-объекту (драйверу кассы), но связь с этим объектом была внезапно разорвана или не установлена вовсе.
Рассмотрим детально причины возникновения этой проблемы и разберем по шагам методы её решения, основываясь на системном анализе и опыте разработчиков.
Технология RPC (Remote Procedure Call — удаленный вызов процедур) используется Windows для взаимодействия между различными процессами. Когда 1С работает с фискальным регистратором, она не управляет «железом» напрямую. Вместо этого 1С вызывает методы драйвера, который часто зарегистрирован в системе как COM-объект или работает через отдельную службу. Если этот внешний процесс (драйвер) «падает» или блокируется системой, 1С получает ошибку о недоступности RPC-сервера.
Выясним одну из самых частых причин в современных реалиях. Если вы используете 64-битный клиент 1С, а драйвер оборудования (COM-компонента) является 32-битным, прямой вызов методов невозможен. Windows пытается запустить «прослойку» (DCOM-обертку), которая часто завершается с ошибкой 0x800706ba.
Что нужно сделать:
Посмотрим на ситуацию со стороны кода конфигурации. Как отмечается в обсуждении, ошибка может возникать в момент проверки заполнения параметров оборудования. Разберем пример ситуации, когда 1С пытается обратиться к свойствам структуры, которых физически нет в данной версии драйвера или модели ККТ.
Рассмотрим пример кода, который может приводить к аварийному завершению работы COM-объекта:
// В общей форме при проверке параметров происходит обращение
Если ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаПодвалЧека) Тогда
// Код обработки подвала
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаШапкаЧека) Тогда
// Код обработки шапки
КонецЕсли;
Если объект ПараметрыОборудования не содержит полей ТаблицаПодвалЧека или ТаблицаШапкаЧека, обращение к ним напрямую может вызвать исключение в драйвере. Проанализируем стек вызовов: для этого нужно встать в отладчике перед точкой падения и проверить состав структуры через «Вычислить выражение».
Для исправления кода рекомендуется использовать метод Свойство(), чтобы избежать прямого обращения к отсутствующим полям:
// Безопасная проверка наличия свойств
Если Параметры.ПараметрыОборудования.Свойство("ТаблицаПодвалЧека")
И ЗначениеЗаполнено(Параметры.ПараметрыОборудования.ТаблицаПодвалЧека) Тогда
// Обработка
КонецЕсли;
Если код корректен, а разрядность совпадает, проблема может крыться в правах доступа Windows. Выясним, как настроить системные компоненты:
Win + R, введем dcomcnfg и нажмем Enter.AddIn.FPrnM45 или аналогичный).Многие современные фискальные регистраторы (особенно WikiPrint или новые модели Атол) работают через вспомогательные службы, такие как EoU (Ethernet over USB) или специальные прокси-службы. Если служба остановлена, 1С не сможет инициализировать RPC-соединение с оборудованием.
Порядок действий:
Если 1С запущена на сервере через удаленный рабочий стол, а касса подключена к локальному ПК, ошибка 0x800706ba часто свидетельствует о разрыве канала проброса портов. Проанализируем настройки подключения:
Подводя итог, при возникновении ошибки 0x800706ba в 1С, мы рекомендуем придерживаться следующего алгоритма:
Использование комплексного подхода — от проверки разрядности до анализа каждой строки кода в отладчике — позволит быстро локализовать и устранить причину недоступности RPC-сервера.