При доработке нетиповых или устаревших конфигураций (например, на базе 1С:УПП) под требования 54-ФЗ часто возникает необходимость проверить корректность работы кассового модуля. Разберем ключевые вопросы, с которыми сталкиваются разработчики: портит ли тестовая печать фискальный накопитель, как правильно передавать ставки НДС из документов и как настроить передачу чеков в ОФД через локальный прокси-сервер.
Проанализируем, что происходит с кассовым аппаратом и фискальным накопителем (ФН) при попытке пробить тестовые чеки до официальной регистрации кассы в ФНС.
Если фискальный накопитель установлен в кассу, но процедура фискализации (регистрации) еще не была пройдена, кассовый аппарат функционирует в нефискальном (учебном) режиме. В этом состоянии:
Таким образом, выполнять тестовые пробития документов до регистрации кассы абсолютно безопасно. Однако для полноценной сквозной проверки передачи данных в тестовый ОФД или проверки маркировки рекомендуется использовать массогабаритный макет (МГМ) накопителя.
В старых конфигурациях в табличных частях розничных документов (таких как ЧекККМ) часто отсутствуют явные реквизиты для ставки и суммы НДС, которые стали строго обязательными по форматам фискальных документов (ФФД 1.05, 1.2).
При формировании XML-пакета для передачи в драйвер торгового оборудования обработка обслуживания должна заполнять теги ставки налога (тег 1199) и суммы налога (тег 1200). Выясним, как решается эта задача:
СтавкаНДС соответствующей позиции справочника Номенклатура. Если для организации применяется специальный налоговый режим (например, УСН), обработка переопределяет ставку на значение «Без НДС».РеализацияТоваровУслуг, ПриходныйКассовыйОрдер или ПлатежноеПоручениеВходящее с установкой соответствующих признаков способа расчета (предоплата, аванс, полный расчет, кредит).Посмотрим на пример алгоритма подготовки данных товарной позиции для формирования XML-пакета кассового чека:
Для Каждого Стр Из ТаблицаТоваров Цикл
ТоварнаяПозиция = Новый Структура;
ТоварнаяПозиция.Вставить("Наименование", Стр.Номенклатура.Наименование);
ТоварнаяПозиция.Вставить("Количество", Стр.Количество);
ТоварнаяПозиция.Вставить("Цена", Стр.Цена);
ТоварнаяПозиция.Вставить("Сумма", Стр.Сумма);
// Определение ставки и расчет суммы НДС
СтавкаНДС = Стр.Номенклатура.СтавкаНДС;
ТоварнаяПозиция.Вставить("СтавкаНДС", СтавкаНДС);
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
ТоварнаяПозиция.Вставить("СуммаНДС", Окр(Стр.Сумма * 20 / 120, 2));
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
ТоварнаяПозиция.Вставить("СуммаНДС", Окр(Стр.Сумма * 10 / 110, 2));
Иначе
ТоварнаяПозиция.Вставить("СуммаНДС", 0);
КонецЕсли;
МассивПозиций.Добавить(ТоварнаяПозиция);
КонецЦикла;
Рассмотрим правила взаимодействия учетной системы и кассового аппарата при управлении сменами и возвратами:
При подключении ККТ по интерфейсу USB для передачи чеков в ОФД используется системная служба EthOverUsb (EoU) или встроенный транспорт драйвера. Служба транслирует сырой TCP-трафик от кассы на IP-адрес и порт сервера ОФД.
Если рабочее место кассира или сервер не имеют прямого выхода в интернет и работают через корпоративный прокси-сервер, стандартные HTTP-прокси не смогут передать бинарный кассовый поток. Разберем по шагам схему решения:
settings.ini (для службы EoU) либо в утилите настройки драйвера ККТ указываем адрес локального прокси-сервера и назначенный локальный порт для проброса.