Как настроить работу онлайн-касс через драйвер Штрих-М и решить проблемы со связью с ОФД в 1С?

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

Переход на онлайн-кассы (54-ФЗ) принес множество технических нюансов, связанных с сетевыми технологиями. Одной из самых популярных марок ККТ на рынке являются аппараты семейства Штрих-М (включая популярные модели Ритейл-01Ф, Штрих-ON-LINE, РР-Электро и др.). При их интеграции с платформой 1С специалисты часто сталкиваются со специфическими ошибками: зависанием чеков в очереди ОФД (статус информационного обмена 5h), потерей связи с аппаратом по TCP-сокету (тайм-аут соединения -8: Connect timed out), а также с тем, что на бумажном чеке номенклатура печатается, а в личном кабинете ОФД наименования товаров отсутствуют.

В этой статье мы подробно разберем, как правильно настроить подключение ККТ Штрих-М по сетевому протоколу RNDIS, как обеспечить стабильную отправку данных в ОФД, как исправить логику работы 1С со старыми драйверами для корректной выгрузки номенклатуры и как устранить сопутствующие системные ошибки.

---

Анализ причин возникновения ошибок «Статус инф. обмена: 5h» и «-8: Connect timed out»

Давайте разберем физический смысл этих состояний в тесте драйвера ККТ Штрих-М.

Статус информационного обмена 5h означает, что транспортное соединение с интернетом касса установила успешно, но в данный момент она находится в режиме ожидания ответного сообщения (квитанции) от сервера ОФД. Сами чеки сформированы в фискальном накопителе (ФН), они находятся в очереди на отправку, но ОФД не подтверждает их получение. Причиной этого чаще всего является либо блокировка пакетов брандмауэром/прокси-сервером, либо нестабильная работа службы общего доступа к интернету на хост-компьютере.

Ошибка -8: Connect timed out свидетельствует о том, что компьютер (или терминальный сервер) вообще не может достучаться до TCP-сервера кассы по указанному IP-адресу и сетевому порту (по умолчанию используется порт 7778). Это происходит, когда сетевой адаптер RNDIS «засыпает», отключается операционной системой для экономии энергии или блокируется антивирусным ПО.

---

Шаг 1: Настройка стабильной связи по RNDIS с помощью Сетевого моста

По умолчанию производитель предлагает использовать службу общего доступа к интернету Windows (ICS — Internet Connection Sharing). Это самый простой, но в то же время самый нестабильный метод: служба ICS регулярно зависает после перезагрузки компьютера или отключения кассы. Проанализируем более надежное решение — создание Сетевого моста.

Выполним настройку по шагам:

  1. Подключите кассу к компьютеру по USB-кабелю.
  2. В таблицах кассы через «Тест драйвера» включите режим RNDIS. Для этого перейдите в Таблицу 21 («Сетевые интерфейсы») и для нужного канала установите значение 1. Перезагрузите кассу.
  3. В операционной системе Windows откройте «Центр управления сетями и общим доступом» -> «Изменение параметров адаптера». У вас должно появиться новое сетевое подключение (обычно оно подписывается как Remote NDIS based Internet Sharing Device).
  4. Вместо того чтобы ставить галочку «Разрешить общий доступ» в свойствах вашего основного интернет-подключения, мы объединим их в мост.
  5. В ККТ пропишите свободный статический IP-адрес вашей локальной сети, маску подсети и основной шлюз (IP-адрес вашего роутера). Например, если ваша локальная сеть имеет адресацию 192.168.1.X, назначьте кассе IP-адрес 192.168.1.150.
  6. В таблицах сетевых настроек ККТ (Таблица 16, «Сетевой адрес») обязательно укажите DNS-сервер. Рекомендуется использовать надежный публичный DNS, например 8.8.8.8 или 77.88.8.8. Без корректного DNS касса не сможет преобразовать доменное имя сервера ОФД в IP-адрес.
  7. В списке сетевых подключений Windows выделите одновременно ваше основное подключение к интернету и подключение RNDIS, нажмите правой кнопкой мыши и выберите «Настройка моста» (Bridge Connections).
  8. В результате будет создан виртуальный Сетевой мост. Касса теперь физически находится в вашей локальной подсети, получает беспрепятственный доступ к интернету напрямую через роутер и будет стабильно видна по назначенному IP-адресу 192.168.1.150 с любого компьютера в сети.

---

Шаг 2: Настройка доступа к ККТ через терминальный сервер (RDP)

Довольно часто база 1С развернута на удаленном сервере терминалов, а ККТ подключена к локальному компьютеру кассира. Рассмотрим, как пробросить кассу, работающую по сетевому протоколу RNDIS, внутрь RDP-сессии.

Разберем алгоритм настройки:

  1. На локальном компьютере кассира (клиенте) настройте подключение RNDIS. Предположим, что локальный IP-адрес сетевого адаптера RNDIS на ПК равен 192.168.137.1, а IP-адрес самой кассы — 192.168.137.111. Порт TCP-сервера по умолчанию — 7778.
  2. Включите общий доступ к интернету на основном сетевом адаптере локального компьютера, выбрав в качестве домашнего подключения адаптер RNDIS.
  3. Перейдите во вкладку «Доступ» основного сетевого адаптера, нажмите кнопку «Настроить» (Параметры) и добавьте новую службу перенаправления портов:
    • Имя службы: любое удобное (например, Kassa_RNDIS).
    • IP-адрес устройства в локальной сети: 192.168.137.111 (адрес кассы).
    • Номер внешнего порта: 7778.
    • Номер внутреннего порта: 7778.
  4. В брандмауэре Windows на локальном компьютере добавьте разрешающее правило для входящих подключений по TCP-порту 7778.
  5. Теперь в терминальной сессии RDP при настройке подключения в «Тесте драйвера» или в 1С укажите:
    • Тип подключения: TCP-сокет.
    • Адрес (IP): укажите локальный IP-адрес компьютера кассира в вашей офисной сети (например, 192.168.1.23).
    • Порт: 7778.

Важное примечание для стабильности работы: если связь с ККТ в терминале периодически пропадает, помогает простой перезапуск общего доступа на локальной машине. Чтобы автоматизировать этот процесс, мы можем использовать скрипт на языке PowerShell, который принудительно перезапускает общий доступ к интернету (ICS):


# Регистрируем библиотеку управления сетями
regsvr32 hnetcfg.dll /s

# Создаем объект диспетчера сетевого доступа
$m = New-Object -ComObject HNetCfg.HNetShare

# Ищем наше основное подключение к интернету по его имени
$c = $m.EnumEveryConnection |? { $m.NetConnectionProps.Invoke($_).Name -eq "Подключение по локальной сети" }

# Получаем конфигурацию общего доступа
$config = $m.INetSharingConfigurationForINetConnection.Invoke($c)

# Принудительно выключаем и повторно включаем общий доступ
$config.DisableSharing()
Start-Sleep -Seconds 2
$config.EnableSharing(0)

---

Шаг 3: Почему в ОФД не передается наименование товара и как это исправить

Одной из самых частых проблем при переходе на онлайн-кассы со старых конфигураций 1С (например, старых релизов УТ 10.3, КА 1.1, УПП или самописных решений) является то, что чек пробивается, сумма сходится, на чековой ленте все названия товаров напечатаны корректно, но на сайте ОФД в чеке отображаются только цены и суммы, а строки номенклатуры пустые.

Проанализируем причину этой проблемы. В старых конфигурациях 1С использовался механизм работы с фискальными регистраторами как с «принтерами чеков». В старой обработке обслуживания ShtrihMFiscalPrinters_v2.epf для вывода строк номенклатуры применялся метод драйвера PrintString (Напечатать нефискальную строку). Этот метод просто отправляет текстовый поток на печатающую головку кассы. Но по требованиям ФФД 1.05 и ФФД 1.2 наименование товара является обязательным реквизитом чека (тег 1030) и должно записываться непосредственно в память фискального накопителя в структуре фискального документа.

Чтобы решить эту проблему, нам необходимо перестроить логику взаимодействия 1С с драйвером ККТ:

  1. Выясним версию используемого драйвера ККТ. Нам потребуется версия не ниже 4.13.X (например, стабильная версия 4.13.0.562 или более поздняя).
  2. В справочнике «Подключаемое оборудование» 1С измените тип оборудования для кассы. Она должна быть подключена не как старый «Фискальный регистратор», а как «ККТ с передачей данных».
  3. Обновите обработку обслуживания ККТ в 1С. Современные конфигурации используют XML-пакеты для передачи структуры чека. При формировании чека 1С должна вызывать метод драйвера ЗаписатьФискальнуюОперацию или НапечататьЧек, передавая туда XML-структуру со всеми товарными позициями, ставками НДС и признаками способа расчета.
  4. Если вы используете сильно измененную самописную конфигурацию, вам придется дописать код интеграции. Вместо построчного вызова методов печати строк необходимо формировать массив (таблицу) номенклатуры и передавать ее в драйвер единым пакетом, используя методы работы с фискальными свойствами позиций (свойства ItemName, Price, Quantity, Tax1 и метод Sale).

---

Шаг 4: Устранение ошибки открытия смены «FFFFFFF8h: Неверное имя кассира»

При попытке открыть смену или пробить чек из 1С система может выдать критическую ошибку FFFFFFF8h с сообщением о неверном имени кассира. Код ошибки FFFFFFF8h — это стандартный код возврата драйвера Штрих-М при некорректном заполнении обязательных параметров транзакции.

Согласно требованиям законодательства, в фискальном документе должны быть обязательно заполнены ФИО кассира (тег 1021) и ИНН кассира (тег 1203). Если в 1С у текущего пользователя не заполнено физическое лицо, либо в карточке физического лица не указан ИНН, 1С передает драйверу пустые значения или системный идентификатор вместо ФИО.

Для исправления этой ошибки выполните следующие действия в 1С:

  1. Перейдите в список пользователей вашей информационной базы.
  2. Откройте карточку текущего пользователя, под которым работает кассир, и найдите поле сопоставления с физическим лицом.
  3. Убедитесь, что физическое лицо выбрано. Перейдите в карточку этого физического лица и проверьте корректность заполнения ФИО (не должно быть лишних спецсимволов, сокращений, длина строки не должна превышать 64 символа) и обязательно укажите действующий ИНН.
  4. В некоторых старых конфигурациях 1С имя кассира берется из настроек торгового оборудования в самой 1С или жестко прописано в таблицах ККТ. В этом случае откройте «Тест драйвера», перейдите в «Таблицы» -> Таблица 2 («Администраторы и кассиры») и заполните имена сотрудников и их ИНН непосредственно в памяти аппарата.

---

Шаг 5: Настройка детальной печати НДС в каждой строке чека

Иногда требования бухгалтерского учета или пожелания покупателей заставляют выводить ставку и сумму НДС отдельно по каждой строке товара в чеке, а не общей суммой в конце чека. Для регулирования этого поведения в кассах Штрих-М предусмотрены внутренние настройки таблиц ККТ.

Разберем, как включить детальную печать налогов:

  1. Запустите утилиту «Тест драйвера ФР» и установите связь с вашей кассой.
  2. Перейдите в раздел «Настройки» -> «Таблицы».
  3. Откройте Таблицу 17 («Региональные настройки»).
  4. Найдите строку с наименованием «Печать налога в операции» (в старых прошивках этого параметра могло не быть, поэтому убедитесь, что на кассе установлена актуальная прошивка).
  5. Установите значение этого параметра равным 1 (включено).
  6. Запишите изменения в таблицу и закройте утилиту. Теперь при пробитии чека под каждой позицией товара будет печататься информация о примененной ставке налога и конкретной сумме НДС для данной позиции.

Мы подробно разобрали ключевые аспекты настройки касс Штрих-М через драйвер и интеграцию с платформой 1С. Применение Сетевого моста вместо стандартного общего доступа к интернету, перевод ККТ в режим работы с передачей данных в настройках 1С и корректное заполнение ИНН и ФИО сотрудников позволят вам построить стабильную, отказоустойчивую систему фискализации продаж.

← На главную