Как подключить онлайн-ККТ VikiPrint к 1С:Управление торговлей 10.3 и настроить печать чеков по RDP?

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

При подключении онлайн-касс семейства VikiPrint (например, VikiPrint 57Ф или 80Ф) к конфигурациям на обычных формах, таким как «1С:Управление торговлей 10.3», разработчики часто сталкиваются с несколькими сложностями. Устаревшая подсистема торгового оборудования может определять устройство как старый фискальный регистратор, штатные драйверы могут вызывать падение платформы 1cv8.exe при пробитии чека, а перенаправление COM-портов в терминальной сессии (RDP) работает нестабильно. Рассмотрим по шагам, как правильно интегрировать драйвер, настроить обработку обслуживания и обеспечить надежную печать чеков.

Пошаговая адаптация обработки обслуживания для VikiPrint

Если в вашей редакции «1С:Управление торговлей 10.3» нет встроенной поддержки нужного драйвера или устройство определяется некорректно, наилучшим решением будет адаптация типовой обработки обслуживания Библиотеки подключаемого оборудования (БПО).

Разберем последовательность действий:

  1. Получение драйвера. Загружаем официальный архив драйвера ККТ для БПО (стандарта 1С) с сайта производителя кассы. Внутри архива находится внешняя Native/COM-библиотека.
  2. Подготовка внешней обработки. Берем за основу типовую обработку обслуживания для ККТ с передачей данных от 1С (например, обработку для оборудования «Штрих-М» или универсальный шаблон БПО).
  3. Замена макета драйвера. Открываем обработку в конфигураторе и находим макет с именем ИнтеграционнаяКомпонента. Заменяем его двоичные данные файлом внешней компоненты из архива производителя.
  4. Изменение кода инициализации. Переходим в модуль обработки обслуживания, находим функцию создания объекта и прописываем программное подключение драйвера VikiPrint.

Посмотрим на пример реализации инициализации объекта внешней компоненты в функции СоздатьОбъектДрайвера():


Функция СоздатьОбъектДрайвера(ОбъектДрайвера)

    Попытка
        Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.VikiP");
        ОбъектДрайвера = Драйвер;
        Возврат Истина;
    Исключение
        ЗаписьЖурналаРегистрации("ПодключениеККТ", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;

КонецФункции

После внесенных изменений подключаем обработку через меню Сервис — Торговое оборудование — Подключение и настройка торгового оборудования в категорию «ККТ с передачей данных».

Причины вылета платформы 1С при печати чека и способы их устранения

Нередко после успешного подключения, открытия и закрытия смены попытка пробить фискальный чек приводит к аварийному завершению сеанса 1cv8.exe. Проанализируем основные причины этой проблемы:

  1. Несовпадение разрядности платформы и DLL. Если на сервере терминалов запущен 64-битный клиент «1С:Предприятие», а внешняя компонента ККТ скомпилирована под 32-битную архитектуру (x86), при вызове низкоуровневых методов печати возникает критический сбой. Для работы с кассовыми драйверами всегда используйте 32-битный клиент 1С.
  2. Ошибки форматов данных и скидок. При формировании чека старые обработки УТ 10.3 могут передавать суммы со скидками, где копейки по позициям не сходятся с итогом чека, либо передавать неподдерживаемые драйвером ставки НДС. При получении некорректной структуры данных драйвер выбрасывает необработанное исключение. Проверьте актуальность алгоритма расчета скидок и форматов ФФД в обработке.
  3. Зависание кэша внешних компонент. Если до этого в системе регистрировались другие версии драйвера VikiPrint, в локальном профиле пользователя могут оставаться конфликтующие библиотеки. Очистите каталог %APPDATA%\1C\1cv8\ExtCompT перед повторным тестированием.
  4. Отсутствие системных библиотек. Убедитесь, что на сервере или рабочей станции установлены пакеты Microsoft Visual C++ Redistributable обеих разрядностей (x86 и x64).

Особенности работы VikiPrint через RDP и настройка TCP/IP подключения

Кассовые аппараты VikiPrint используют разделение потоков данных: один поток отправляет фискальные документы в ОФД, второй — принимает команды от учетной системы. За эту логику отвечает фоновая служба производителя (например, ComProxy или VikiDriver).

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

  1. Сетевое подключение по TCP/IP (рекомендуемый способ):

    На локальном компьютере, к которому физически подключена касса по USB, запускается служба VikiDriver. Служба транслирует команды кассы в сеть по определенному TCP-порту (по умолчанию 50003). В параметрах торгового оборудования внутри 1С на сервере терминалов в качестве порта выбирается не виртуальный COM-порт, а указывается локальный IP-адрес рабочего места кассира и порт службы. Это полностью исключает сбои RDP-перенаправления.

  2. Корректировка таймаутов при использовании виртуальных COM-портов:

    Если печать организована через COM-порт, стандартного таймаута ожидания ответа (300–500 мс) в условиях сетевых задержек RDP оказывается недостаточно. В форме настройки параметров ККТ в 1С увеличьте значение таймаута до 3000–5000 мс, чтобы исключить разрывы связи во время фискализации чека.

← На главную