При внедрении или обновлении подсистемы «Подключаемое оборудование» (БПО) в конфигурациях 1С разработчики и системные администраторы часто сталкиваются с ситуацией, когда локальная касса успешно проходит тест в одной информационной базе, но выдает ошибку при переносе настроек в другую (например, при переходе из файловой базы в клиент-серверную). Наиболее распространенное сообщение при этом: «Тест не пройден. Ошибка подключения к удалённому серверу: не указан IP-порт». Разберем детально, почему возникает данная неполадка, как устроена адресация рабочих мест в 1С и как попутно устранить сопутствующие системные сбои при печати чеков.
Причины возникновения ошибки «не указан IP-порт»
Проанализируем механику работы подключаемого оборудования в типовых конфигурациях. При выполнении теста устройства система обращается к параметрам подключения, сохраненным для конкретного рабочего места. Эта логика базируется на следующих особенностях:
Привязка к справочнику «Рабочие места»: Настройки торгового оборудования в 1С не являются глобальными для всей информационной базы. Они жестко привязываются к текущему рабочему месту, идентификатор которого формируется на клиенте исходя из сетевого имени локального компьютера и уникального идентификатора клиента.
Сброс параметров на значения по умолчанию: Если в новой или клиент-серверной базе имя текущего компьютера не совпадает с тем, для которого настраивался экземпляр оборудования, система подставляет настройки драйвера по умолчанию.
Сетевой протокол по умолчанию: В стандартном профиле драйверов многих ККТ (в частности, АТОЛ) по умолчанию активирован сетевой протокол TCP/IP или режим удаленного подключения. Так как поля IP-адреса и порта остаются пустыми, драйвер при попытке инициализации выдает диагностическое сообщение о незаполненном IP-порте, даже если физически касса подключена кабелем к локальному USB/COM-разъему.
Пошаговое решение проблемы с рабочим местом и портом
Для восстановления корректной связи устройства с учетной системой выполним следующую последовательность действий:
Проверяем имя рабочего места: Перейдем в справочник рабочих мест через панель администрирования торгового оборудования. Выясним точное сетевое имя компьютера, на котором запущен сеанс 1С, и сопоставим его с именем, указанным в карточке рабочего места торгового оборудования. Они должны полностью совпадать.
Перепривязываем экземпляр ККТ: В форме списка подключаемого оборудования откроем карточку нужной кассы и убедимся, что в реквизите РабочееМесто выбрана именно текущая рабочая станция.
Явно настраиваем параметры связи: Откроем форму настройки параметров драйвера ККТ. Принудительно изменим канал связи: вместо протокола TCP/IP или удаленного сервера выберем локальный порт (RS-232 или виртуальный COM-порт, например, COM5).
Указываем скорость передачи: Зададим скорость обмена, соответствующую настройкам самого аппарата (для современных касс по умолчанию обычно используется 115200 бод), после чего нажмем кнопку сохранения параметров и повторно запустим тест устройства.
Конфликт портов и служба передачи данных (EthernetOverUsb)
Если после настройки рабочего места ошибка сменилась на сообщение о недоступности или занятости порта, проанализируем распределение интерфейсов кассы. При подключении кассового аппарата по USB операционная система регистрирует в диспетчере устройств два виртуальных COM-порта:
Первый COM-порт выделяется непосредственно для команд управления фискальным регистратором со стороны учетной программы (1С).
Второй COM-порт используется специализированной службой производителя (например, EoU — Ethernet over USB) для непрерывной передачи фискальных документов оператору фискальных данных (ОФД).
Если в настройках 1С указать номер порта, занятый службой передачи данных, либо если служба EoU настроена на тот же порт, возникнет аппаратный конфликт. Убедимся, что для управления кассой в параметрах драйвера выбран именно командный порт, а второй порт беспрепятственно передает пакеты в сторону ОФД.
Устранение ошибки «'none' is not a valid integer value»
Еще одна распространенная проблема при внедрении обновленных подсистем БПО и пробитии чеков без НДС — аварийное завершение операции с ошибкой «'none' is not a valid integer value». Выясним причину ее возникновения.
В старых версиях драйверов торгового оборудования ставки налога передавались строго целочисленными индексами (например, 1, 2, 3, 4). В современных версиях формата фискальных данных (ФФД) ставка «Без НДС» передается строковым маркером 'none'. Если логика конфигурации передает текст, а внешняя компонента ожидает числовое значение, парсер драйвера дает сбой.
Решить данную проблему можно двумя способами:
Настройка таблиц налогов в драйвере: В утилите драйвера ККТ и параметрах оборудования в 1С сопоставим числовые коды ставкам налога:
Код 0 — Без НДС
Код 1000 — НДС 10%
Код 1800 или 2000 — НДС 18% или 20%
Корректировка кода формирования фискального пакета: Если обновление драйвера недоступно, скорректируем обработку выгрузки данных чека. В общем модуле МенеджерОборудованияВызовСервера найдем процедуру подготовки XML-пакета фискального чека и заменим строковое значение на требуемый драйвером формат:
// Пример корректировки ставки налога при передаче в драйвер ККТ
Если НДС = "none" Или НДС = "БезНДС" Тогда
ПараметрыПозиции.Вставить("СтавкаНДС", 0);
ИначеЕсли НДС = "20" Или НДС = "20/120" Тогда
ПараметрыПозиции.Вставить("СтавкаНДС", 2000);
КонецЕсли;
Рекомендации по безопасному тестированию
При отладке взаимодействия с зарегистрированным кассовым аппаратом следует учитывать, что любой фискальный документ сразу фиксируется в фискальном накопителе (ФН) и передается в ОФД. Чтобы не искажать учетные данные предприятия, придерживаемся следующих правил:
Проверка канала связи без чеков: Доступность устройства, работу отрезчика и протяжку чековой ленты проверяем через тестовые функции драйвера и печать нефискального текстового документа. Для этого не требуется регистрировать кассовые чеки с суммами.
Компенсация тестовых сумм: Если возникла необходимость проверить полный цикл формирования чека, пробиваем минимальную сумму (например, 1 рубль), после чего сразу формируем документ «Возврат прихода» на ту же сумму и с тем же типом оплаты.
Полноценная отладка алгоритмов: Масштабную доработку логики расчета скидок и номенклатурного состава чека выполняем исключительно на эмуляторах касс либо на оборудовании с установленным массогабаритным макетом (МГМ) фискального накопителя.