При доработке алгоритмов формирования чеков или изменении состава выводимой номенклатуры часто возникает необходимость проверить результат без подключения реального фискального регистратора (ККТ). Ситуация усложняется, если отладку нужно выполнять непосредственно на рабочей базе данных и требуется исключить риск сбоев в работе реальных кассиров. Рассмотрим подробно, как правильно организовать тестирование печати чеков в 1С, настроить эмулятор торгового оборудования и проанализировать передаваемые данные.
Чтобы тестовые настройки оборудования не нарушили работу пользователей на продуктивной базе, необходимо правильно разграничить профили кассового оборудования. В системах 1С привязка кассовой техники выполняется к конкретной записи справочника РабочиеМеста, которая идентифицируется ИНН, сетевым именем компьютера и параметрами текущего сеанса.
Разберем по шагам процесс безопасной настройки:
Рабочие места (через интерфейс настройки торгового оборудования).Таким образом, рабочие места реальных кассиров останутся затронуты только боевыми драйверами фискальных регистраторов, а все наши изменения будут работать изолированно.
Платформа 1С и Библиотека подключаемого оборудования (БПО) предоставляют встроенный механизм эмуляции фискальных регистраторов. При использовании эмулятора программа полностью проходит весь стандартный цикл подготовки данных для 54-ФЗ, но вместо физической отправки команды на ККТ выводит результат на экран.
В конфигурациях (например, УПП, УТ 10.3/11, Розница) подключение эмулятора выполняется через справочник торгового оборудования:
При вызове операции печати чека эмулятор визуализирует документ в отдельном окне. В нем прописаны все переданные строки: наименования номенклатуры, количество, цены, итоговые суммы, а также теги ФФД (признаки предмета и способа расчета, ставки НДС).
До момента вызова внешней компоненты драйвера 1С формирует структуру или таблицу значений со всеми реквизитами чека. Чтобы убедиться, что номенклатурные позиции собираются корректно, проанализируем процесс в режиме отладки.
Установим точку останова в общем модуле, отвечающем за интеграцию с торговым оборудованием (например, перед вызовом функций подготовки XML или параметров чека). Посмотрим на пример структуры, которая передается в процедуру печати:
// Пример проверки таблицы позиций чека перед отправкой в ККТ
ТаблицаПозиций = ПараметрыОперации.ТаблицаТоваров;
Для Каждого СтрокаТовара Из ТаблицаПозиций Цикл
Сообщить("Номенклатура: " + СтрокаТовара.Наименование
+ ", Количество: " + СтрокаТовара.Количество
+ ", Цена: " + СтрокаТовара.Цена
+ ", Сумма: " + СтрокаТовара.Сумма);
КонецЦикла;
С помощью табло отладчика можно проверить заполнена ли таблица товаров и правильно ли рассчитываются скидки и налоги до передачи пакета на кассовый аппарат.
В типовой конфигурации «Управление производственным предприятием» (УПП 1.3) печать чека из документа Приходный кассовый ордер имеет свои нюансы:
Реализация товаров и услуг или Заказ покупателя, типовой алгоритм забирает состав номенклатуры из первоисточника и формирует детализированный чек.При доработке вывода номенклатуры нужно четко проанализировать, откуда алгоритм должен получать товарный состав: из структуры связанного документа или из новой табличной части самого ПКО, если она была добавлена в процессе модификации.
Необходимо учитывать, что эмулятор проверяет только программную логику и полноту структуры XML/данных в 1С. Существуют нюансы, которые эмулятор проверить не может: