При работе в конфигурации 1С:Управление торговлей 10.3 с онлайн-кассами (в частности, фискальными регистраторами «Штрих-М»), подключенными по интерфейсу RNDIS, пользователи часто сталкиваются с неприятным поведением: при открытии кассовых форм (списка кассовых смен, документов «Чек ККМ», «Приходный кассовый ордер» и др.) касса перестает отвечать на внешние запросы, зависает, а тест драйвера и тест из других окон 1С выдают ошибки связи. При закрытии формы кассового документа связь мгновенно восстанавливается.
Разберем причины такого поведения оборудования и по шагам рассмотрим способы устранения блокировок.
Проанализируем логику взаимодействия типовой конфигурации с торговым оборудованием:
ПриОткрытии форм документов и журналов вызывается процедура подключения торгового оборудования. Драйвер ККТ инициирует TCP-соединение (по умолчанию порт 7778) и удерживает открытый сокет всё время, пока открыта форма. Микропрограмма касс «Штрих-М» и стек RNDIS не рассчитаны на одновременную работу нескольких сессий, поэтому любая параллельная попытка опросить ККТ блокируется.Наиболее надежное решение проблемы — исключить постоянный захват кассы при простое формы и перенести инициализацию оборудования непосредственно в момент выполнения кассовой операции (пробития чека, снятия X- или Z-отчета).
Рассмотрим, как модифицировать типовой механизм:
ЧекККМ или форму списка кассовых смен).ПриОткрытии и освободим ресурсы в обработчике закрытия формы.Исключение ... КонецПопытки.Посмотрим на пример проверки поддержки видов торгового оборудования в общем модуле работы с ТО:
Функция ПоддерживаетсяВидТО(Вид) Экспорт
Результат = Ложь;
Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода
Или Вид = Перечисления.ВидыТорговогоОборудования.СчитывательМагнитныхКарт
Или Вид = Перечисления.ВидыТорговогоОборудования.ДисплейПокупателя
Или Вид = Перечисления.ВидыТорговогоОборудования.ЭлектронныеВесы
Или Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор
Или Вид = Перечисления.ВидыТорговогоОборудования.ТерминалСбораДанных
Или Вид = Перечисления.ВидыТорговогоОборудования.СчитывательRFIDМеток
Или Вид = Перечисления.ВидыТорговогоОборудования.ЭквайринговаяСистема
Или Вид = Перечисления.ВидыТорговогоОборудования.ККТ Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
Если касса перестала отвечать после аварийного завершения операции, выполним диагностику при полностью закрытой 1С:
Режим и Подрежим.Для стабильной работы подключения RNDIS проанализируем параметры сети:
192.168.137.1 с маской 255.255.255.0).192.168.137.111) и не возникает конфликта IP-адресов с локальной сетью предприятия.1000–1500 мс. Это предотвратит длительное зависание интерфейса программы при возникновении сетевых задержек.