Подключение фискального регистратора или онлайн-кассы (ККТ с передачей данных) к конфигурации «1С:Управление торговлей», редакция 10.3, в терминальном режиме (RDP) часто сопровождается неожиданными программными сбоями. Типичная ситуация: локально на рабочем месте кассира устройство проходит все тесты, но при попытке открыть параметры оборудования или параметры фискализации в 1С система завершает операцию аварийно с ошибками обращения к несуществующим полям формы или объектным типам.
Разберем по шагам, почему возникают ошибки инициализации драйвера, как правильно организовать сетевое взаимодействие с кассовым аппаратом без нестабильного проброса COM-портов и как наладить снятие отчетов без гашения (X-отчетов).
При нажатии кнопки «Параметры» в окне торгового оборудования в конфигурациях на обычных формах часто появляется ошибка следующего вида:
{ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер.Форма(401)}: Поле объекта не обнаружено (ПерейтиНаСайтПроизводителя)
Элементы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);
А при попытке открыть параметры фискализации возникает сопутствующее исключение:
{ОбщаяФорма.ПараметрыФискализации.Форма(29)}: Значение не является значением объектного типа (ПолучитьПараметрыККТ)
Результат = ОбработкаОбслуживания.ПолучитьПараметрыККТ(ОбъектДрайвера);
Выясним причину такого поведения. Данный сбой является следствием недоработки кода типовой библиотеки подключаемого оборудования (БПО) при переносе функционала из управляемых форм в обычные:
ПерейтиНаСайтПроизводителя выполняется только тогда, когда внешняя компонента или COM-объект драйвера ККТ не обнаружены в системе либо не смогли загрузиться (условие ОсновнойДрайверУстановлен = Ложь).Элементы вместо ЭлементыФормы вызывает фатальную ошибку платформы.ОбъектДрайвера не инициализируется и принимает значение Неопределено, что влечет за собой ошибку при вызове метода ПолучитьПараметрыККТ().Таким образом, простое комментирование строки лишь убирает аварийное падение интерфейса, но сигнализирует о главной проблеме: на стороне сеанса 1С (на сервере терминалов) драйвер ККТ не установлен или не зарегистрирован.
Для конфигурации «Управление торговлей 10.3» и обработки обслуживания АТОЛ классической ветки требуется наличие установленного пакета ДТО (Драйвер торгового оборудования) или KKT версии 8 (например, релизы 8.14.x):
x86). Даже если операционная система сервера 64-битная, компонента драйвера ККТ должна быть 32-битной, иначе 32-битный процесс 1С не сможет загрузить библиотеку.
regsvr32 "C:\Program Files (x86)\ATOL\Drivers8\Bin\FprnM1C.dll"
Проброс виртуальных COM-портов через стандартный протокол RDP часто приводит к зависаниям оборудования, разрывам связи и потере чеков при малейших сетевых колебаниях. Рекомендуется использовать штатный сетевой механизм удаленного доступа АТОЛ через службу FDSVC (Frontol and Drivers service).
Рассмотрим порядок настройки по шагам:
Frontol and Drivers service и проверяем, что в брандмауэре Windows открыт входящий TCP-порт 6220.6220. Нажимаем кнопку поиска или выбора портов — в списке отобразятся реальные COM-порты удаленной машины кассира. Выбираем основной порт управления ККТ и нажимаем «Проверка связи». При успешном ответе сервер готов к отправке чеков.6220 и номер COM-порта).Чтобы исключить падение конфигурации при возникновении проблем с компонентой в дальнейшем, рекомендуется внести исправление в конфигураторе. Найдем процедуру в объекте ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер:
// Исходный ошибочный фрагмент:
// Элементы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);
// Корректный вариант с проверкой наличия элемента:
Если ЭлементыФормы.Найти("ПерейтиНаСайтПроизводителя") <> Неопределено Тогда
ЭлементыФормы.ПерейтиНаСайтПроизводителя.Видимость = НЕ ПустаяСтрока(АдресЗагрузкиДрайвера);
КонецЕсли;
Такая проверка предотвратит аварийное завершение работы сеанса, если драйвер по какой-то причине будет временно недоступен.
После успешной фискализации и тестирования связи пользователи часто сталкиваются с ошибкой: при попытке снять отчет без гашения через меню 1С появляется сообщение «Не подключено ни одного оборудования».
Проанализируем причину. В конфигурации «Управление торговлей 10.3» до появления онлайн-касс использовался вид оборудования Фискальный регистратор. Типовая процедура формирования X-отчета проверяла устройства только этого типа. Онлайн-аппараты регистрируются с новым типом — ККТ с передачей данных. Старая процедура печати просто пропускает новое устройство при поиске доступного оборудования.
Для решения проблемы можно воспользоваться одним из следующих способов:
ККТ с передачей данных.ККТ с передачей данных, и вызывать метод драйвера для формирования отчета:
// Вызов печати X-отчета через объект драйвера ККТ
ОбъектДрайвера.ТипОтчета = 2; // 2 - Отчет без гашения (X-отчет)
Результат = ОбъектДрайвера.НапечататьОтчет();
Соблюдение правильной архитектуры удаленного подключения через службу FDSVC и предварительная установка 32-битных библиотек драйвера на сервере терминалов обеспечивают стабильную печать фискальных чеков без сбоев интерфейса и разрывов связи.