Интеграция эквайринговых терминалов с 1С часто преподносит сюрпризы, особенно когда речь идет о связке терминала VeriFone Vx820, протокола INPAS UNIPOS и фискального регистратора Штрих-М. Распространенная ситуация: банк утверждает, что в терминале настроена печать двух слипов, но 1С упорно выводит только один, а сверка итогов и вовсе пропадает «в никуда». Разберем по шагам, как решить эти проблемы, проанализируем настройки драйверов и выясним, где именно в системе 1С скрываются рычаги управления печатью.
Прежде всего, проанализируем, как данные проходят путь от карты покупателя до бумаги в ККТ. В интегрированном решении 1С не управляет терминалом напрямую. Она обращается к компоненте драйвера (обычно это DualConnector.dll), которая отправляет команду на пин-пад. Терминал проводит транзакцию и возвращает в 1С текстовый массив (слип-чек). Затем 1С передает этот текст на фискальный регистратор как нефискальный документ. Проблема «одного слипа» чаще всего заключается в том, что драйвер передает в 1С только один экземпляр текста, либо 1С игнорирует признак копии.
Если банковские специалисты уверяют, что в «профиле терминала» стоит 2 экземпляра, но печатается один, нам необходимо проверить локальные конфигурационные файлы ПО INPAS на компьютере. В отличие от Сбербанка, где используется pinpad.ini, у INPAS настройки часто хранятся в XML-файлах или реестре.
Рассмотрим алгоритм действий:
C:\Program Files\INPAS\UNIPOS или C:\OposEx).unipos.xml или pos.xml.SlipCount. Если он установлен в значение 1, заменим его на 2:
<Parameter Name="SlipCount" Value="2" />
HKEY_CURRENT_USER\Software\INPAS\UNIPOS. Ищем ключ PrintSlipMode или CopyCount.Важно понимать: если драйвер настроен на передачу одного блока текста, 1С не сможет «размножить» его без доработки кода. Если же драйвер присылает один длинный текст, содержащий два слипа подряд, убедимся, что Штрих-М не обрезает его по лимиту строк. В «Тесте драйвера Штрих-М» проверим таблицу 1, поле «Максимальное количество строк в нефискальном документе».
Ситуация, когда на экране терминала «Сверка итогов» прошла успешно, но чек из ККТ не вышел, означает, что команда ЗакрытьСмену (или CloseShift) отработала, но текстовый ответ от драйвера либо пуст, либо не был передан в очередь печати 1С.
Выясним причину через настройку параметра PrintReportOnECR. В тех же конфигурационных XML-файлах (unipos.xml) необходимо найти и установить флаг:
<Parameter Name="PrintReportOnECR" Value="1" />
Этот параметр сообщает драйверу, что отчет о сверке нужно не просто отобразить на терминале, но и передать управляющей программе (1С) для вывода на печать. Без этого флага драйвер считает задачу выполненной сразу после получения подтверждения от хоста банка, не возвращая текст отчета в 1С.
Многих бухгалтеров раздражает надпись «Нефискальный документ» на слипе эквайринга. Разберемся, почему она появляется. Поскольку слип печатается не через команду фискального чека, драйвер ККТ помечает такой документ как не имеющий юридической силы для налоговой. Это зашито в логику работы Штрих-М.
Чтобы минимизировать лишние данные, проделаем следующее:
Это уберет автоматическую вставку реквизитов организации (ИНН, адрес) в заголовок слипа, если они уже приходят из банковского шаблона, и сделает чек компактнее.
Если стандартные настройки драйвера не помогают, проанализируем ситуацию на уровне кода 1С. В типовой конфигурации «Бухгалтерия предприятия 3.0» за работу с эквайрингом отвечает подсистема «Библиотека подключаемого оборудования» (БСП). Нам интересен общий модуль МенеджерОборудованияВызовСервера или обработка обслуживания, которая входит в состав драйвера.
Посмотрим на пример логики, которую можно реализовать через расширение, чтобы принудительно распечатать второй экземпляр, если драйвер возвращает только один:
// Фрагмент кода в обработке выполнения операции по карте
РезультатОперации = ОбъектДрайвера.ВыполнитьОперацию(ДанныеОперации);
Если РезультатОперации.Результат Тогда
ТекстСлипа = РезультатОперации.ТекстСлипа;
// Если нам нужно 2 копии, а пришла одна
Для Итератор = 1 По 2 Цикл
МенеджерОборудованияКлиент.ПечатьТекста(ВыбранноеУстройство, ТекстСлипа);
// Добавим команду отрезки, если ККТ поддерживает
МенеджерОборудованияКлиент.ОтрезатьЧек(ВыбранноеУстройство);
КонецЦикла;
КонецЕсли;
Однако помните, что прямое вмешательство в код БСП — это крайняя мера. Первым делом всегда следует добиваться корректной работы от самого драйвера INPAS. Выясним, какую именно версию библиотеки использует ваша 1С. В справочнике «Драйверы оборудования» посмотрите версию установленного компонента INPAS UNIPOS. Иногда откат на версию 1.1.x решает проблемы, возникшие в «упрощенных» версиях 2.x.
Проанализировав ситуацию, мы видим, что «молчание» кассы при сверке итогов и печать одной копии слипа — это не баг 1С, а особенности настройки транспортного уровня банковского ПО. Не полагайтесь на слова техподдержки банка о том, что «у нас всё настроено корректно». Всегда проверяйте локальные XML-конфигурации и настройки таблиц фискального регистратора. Только комплексная проверка цепочки «Параметры драйвера -> Таблицы ККТ -> Код 1С» гарантирует стабильную работу эквайринга.