Как настроить онлайн-кассу АТОЛ в 1С:Управление торговлей 10.3 при работе по RDP и исправить ошибки драйвера

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

Подключение фискального регистратора или онлайн-кассы (ККТ с передачей данных) к конфигурации «1С:Управление торговлей», редакция 10.3, в терминальном режиме (RDP) часто сопровождается неожиданными программными сбоями. Типичная ситуация: локально на рабочем месте кассира устройство проходит все тесты, но при попытке открыть параметры оборудования или параметры фискализации в 1С система завершает операцию аварийно с ошибками обращения к несуществующим полям формы или объектным типам.

Разберем по шагам, почему возникают ошибки инициализации драйвера, как правильно организовать сетевое взаимодействие с кассовым аппаратом без нестабильного проброса COM-портов и как наладить снятие отчетов без гашения (X-отчетов).

Анализ причин возникновения ошибок в 1С

При нажатии кнопки «Параметры» в окне торгового оборудования в конфигурациях на обычных формах часто появляется ошибка следующего вида:


{ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер.Форма(401)}: Поле объекта не обнаружено (ПерейтиНаСайтПроизводителя)
Элементы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);

А при попытке открыть параметры фискализации возникает сопутствующее исключение:


{ОбщаяФорма.ПараметрыФискализации.Форма(29)}: Значение не является значением объектного типа (ПолучитьПараметрыККТ)
Результат = ОбработкаОбслуживания.ПолучитьПараметрыККТ(ОбъектДрайвера);

Выясним причину такого поведения. Данный сбой является следствием недоработки кода типовой библиотеки подключаемого оборудования (БПО) при переносе функционала из управляемых форм в обычные:

  1. Кодовая ветка с обращением к элементу ПерейтиНаСайтПроизводителя выполняется только тогда, когда внешняя компонента или COM-объект драйвера ККТ не обнаружены в системе либо не смогли загрузиться (условие ОсновнойДрайверУстановлен = Ложь).
  2. На обычной форме этот элемент интерфейса отсутствует или назван иначе, а обращение к коллекции Элементы вместо ЭлементыФормы вызывает фатальную ошибку платформы.
  3. Поскольку драйвер не загрузился, переменная ОбъектДрайвера не инициализируется и принимает значение Неопределено, что влечет за собой ошибку при вызове метода ПолучитьПараметрыККТ().

Таким образом, простое комментирование строки лишь убирает аварийное падение интерфейса, но сигнализирует о главной проблеме: на стороне сеанса 1С (на сервере терминалов) драйвер ККТ не установлен или не зарегистрирован.

Установка и регистрация драйвера на сервере терминалов

Для конфигурации «Управление торговлей 10.3» и обработки обслуживания АТОЛ классической ветки требуется наличие установленного пакета ДТО (Драйвер торгового оборудования) или KKT версии 8 (например, релизы 8.14.x):

  1. Устанавливаем драйвер непосредственно на сервере терминалов, где запускается сеанс 1С. При выборочной установке на сервере достаточно отметить: Драйвер ККМ, Утилиты для оборудования, Службу лицензирования и базовые модули интеграции.
  2. Учитываем разрядность платформы. Клиент 1С:Предприятие для обычных форм практически всегда является 32-разрядным (x86). Даже если операционная система сервера 64-битная, компонента драйвера ККТ должна быть 32-битной, иначе 32-битный процесс 1С не сможет загрузить библиотеку.
  3. Регистрируем COM-компоненту. Если при первом запуске у пользователя терминала нет административных прав, автоматическая регистрация завершится неудачей. Запустите 1С один раз от имени администратора либо зарегистрируйте библиотеку вручную через командную строку Windows: regsvr32 "C:\Program Files (x86)\ATOL\Drivers8\Bin\FprnM1C.dll"

Организация удаленного доступа к кассе через службу FDSVC

Проброс виртуальных COM-портов через стандартный протокол RDP часто приводит к зависаниям оборудования, разрывам связи и потере чеков при малейших сетевых колебаниях. Рекомендуется использовать штатный сетевой механизм удаленного доступа АТОЛ через службу FDSVC (Frontol and Drivers service).

Рассмотрим порядок настройки по шагам:

  1. Настройка на компьютере кассира (где физически подключена касса): Устанавливаем полный комплект драйверов с USB-драйверами и службой Ethernet over USB (EoU). Убеждаемся, что касса видна в локальном тесте драйвера, а служба EoU передает данные в ОФД через выделенный порт. Запускаем службу Frontol and Drivers service и проверяем, что в брандмауэре Windows открыт входящий TCP-порт 6220.
  2. Проверка режима лицензии: Открываем утилиту «Управление драйверами» от имени администратора и проверяем режим работы драйвера ККМ — должен быть выбран пункт «Бесплатная версия» (для работы с ККТ АТОЛ лицензия не требуется).
  3. Настройка связи на сервере терминалов: Запускаем утилиту «Тест драйвера ККМ» на сервере. Заходим в меню «Настройка свойств». В поле «Компьютер» вместо локального значения указываем IP-адрес или сетевое имя клиентского компьютера кассира и порт 6220. Нажимаем кнопку поиска или выбора портов — в списке отобразятся реальные COM-порты удаленной машины кассира. Выбираем основной порт управления ККТ и нажимаем «Проверка связи». При успешном ответе сервер готов к отправке чеков.
  4. Перенос параметров в 1С: Открываем в 1С форму настройки торгового оборудования. После успешной регистрации драйвера и устранения ошибки интерфейса переходим в параметры устройства и указываем те же параметры удаленного подключения (IP-адрес компьютера кассира, порт 6220 и номер COM-порта).

Исправление интерфейсной ошибки в кодовой базе

Чтобы исключить падение конфигурации при возникновении проблем с компонентой в дальнейшем, рекомендуется внести исправление в конфигураторе. Найдем процедуру в объекте ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер:


// Исходный ошибочный фрагмент:
// Элементы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);

// Корректный вариант с проверкой наличия элемента:
Если ЭлементыФормы.Найти("ПерейтиНаСайтПроизводителя") <> Неопределено Тогда
    ЭлементыФормы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);
КонецЕсли;

Такая проверка предотвратит аварийное завершение работы сеанса, если драйвер по какой-то причине будет временно недоступен.

Решение проблемы со снятием X-отчета (отчета без гашения)

После успешной фискализации и тестирования связи пользователи часто сталкиваются с ошибкой: при попытке снять отчет без гашения через меню 1С появляется сообщение «Не подключено ни одного оборудования».

Проанализируем причину. В конфигурации «Управление торговлей 10.3» до появления онлайн-касс использовался вид оборудования Фискальный регистратор. Типовая процедура формирования X-отчета проверяла устройства только этого типа. Онлайн-аппараты регистрируются с новым типом — ККТ с передачей данных. Старая процедура печати просто пропускает новое устройство при поиске доступного оборудования.

Для решения проблемы можно воспользоваться одним из следующих способов:

  1. Обновление конфигурации: обновить базу до актуальных релизов УТ 10.3, где встроенные обработки обслуживания кассовых операций уже поддерживают вызовы для типа ККТ с передачей данных.
  2. Печать через утилиту драйвера: на время отладки запускать снятие промежуточных отчетов непосредственно из утилиты «Тест драйвера ККМ» во вкладке отчетов (команда «Печать отчета без гашения»).
  3. Доработка типового кода: в общем модуле или обработке обслуживания торгового оборудования расширить условие проверки доступных фискальных устройств, добавив обработку типа ККТ с передачей данных, и вызывать метод драйвера для формирования отчета:
    
    // Вызов печати X-отчета через объект драйвера ККТ
    ОбъектДрайвера.ТипОтчета = 2; // 2 - Отчет без гашения (X-отчет)
    Результат = ОбъектДрайвера.НапечататьОтчет();
    

Соблюдение правильной архитектуры удаленного подключения через службу FDSVC и предварительная установка 32-битных библиотек драйвера на сервере терминалов обеспечивают стабильную печать фискальных чеков без сбоев интерфейса и разрывов связи.

← На главную