Как правильно подключить онлайн-кассу по 54-ФЗ к 1С 7.7 и передавать данные в ОФД

Программист 1С v7.7 Налоговый учет Торговля и дистрибуция
← На главную

Интеграция учетных систем на платформе 1С:Предприятие 7.7 с контрольно-кассовой техникой (ККТ) нового образца по требованиям 54-ФЗ вызывает множество вопросов. Разберем детально архитектуру взаимодействия учетной системы, фискального регистратора и оператора фискальных данных (ОФД), выясним состав обязательных реквизитов фискального документа и проанализируем частые ошибки при формировании чеков продажи и возврата.

Архитектура взаимодействия: кто отправляет данные в ОФД

Рассмотрим типовое заблуждение о том, что отправкой данных в ОФД управляет сама платформа 1С. В соответствии с 54-ФЗ программа 1С отвечает исключительно за передачу товарного состава и параметров платежа в кассовый аппарат через установленный драйвер. Непосредственное шифрование и отправку данных выполняет фискальный накопитель (ФН) внутри кассы.

Разберем по шагам цепочку пробития чека:

  1. Кассир оформляет расчет в 1С и инициирует печать фискального документа.
  2. Учетная система формирует пакет данных и передает его в драйвер ККТ.
  3. Фискальный накопитель принимает данные, рассчитывает фискальный признак документа (ФПД) и выполняет фискализацию записи в своей энергонезависимой памяти.
  4. ККТ распечатывает чек на бумажной ленте (или формирует электронный документ) и параллельно отправляет зашифрованный пакет в ОФД по доступному каналу связи (Ethernet, Wi-Fi, GSM или через службу драйвера EoU/EoT).
  5. Сервер ОФД проверяет фискальный признак, регистрирует документ и возвращает кассе подтверждение получения.
  6. ОФД передает сведения о расчете в Федеральную налоговую службу (ФНС).

Обязательный состав реквизитов фискального чека

Проанализируем требования к составу данных, которые конфигурация 1С 7.7 обязана передавать в драйвер ККТ для формирования корректного чека по форматам фискальных данных (ФФД):

  1. Реквизиты расчета и организации: применяемая система налогообложения (СНО), признак расчета (приход, возврат прихода, расход, возврат расхода), наименование и ИНН организации/ИП, адрес и место расчетов.
  2. Сведения о кассире: должность и фамилия с инициалами лица, оформившего расчет, а также ИНН кассира.
  3. Товарные позиции: наименование каждого товара, работы или услуги, цена за единицу с учетом скидок, количество, ставка НДС, итоговая сумма по позиции.
  4. Итоги и типы оплат: общая сумма расчета, суммы по видам оплаты (наличные, безналичные/электронные, предоплата, постоплата), итоговые суммы НДС по каждой применяемой ставке.

Особенности работы с ККТ в среде 1С 7.7

При реализации обмена с ККТ из 1С 7.7 важно учитывать технические ограничения платформы:

1. Разрядность компонентов: платформа 1С 7.7 является строго 32-битным приложением (x86). Все используемые внешние компоненты и COM-объекты драйверов ККТ должны быть 32-разрядными.

2. Кодировка данных: 1С 7.7 оперирует строками в кодировке Windows-1251 (ANSI). Если драйвер ККТ принимает команды в виде XML или JSON-пакетов в кодировке UTF-8, строковые параметры необходимо конвертировать перед отправкой.

3. Контроль округлений: ККТ жестко контролирует математическое равенство сумм строк и итога документа. Если сумма позиций (цена × количество) отличается от общего итога чека хотя бы на одну копейку из-за округлений скидок, касса отклонит регистрацию.

Причины блокировок ККТ и отказов в печати

Выясним условия, при которых кассовый аппарат может аппаратно заблокировать формирование чеков:

  1. Превышение длительности смены: если с момента открытия смены прошло более 24 часов, ФН блокирует оформление фискальных документов до снятия Z-отчета (закрытия смены).
  2. Отсутствие связи с ОФД более 30 дней: при наличии неотправленных документов в памяти ФН и отсутствии связи с сервером ОФД дольше 30 календарных дней касса блокирует регистрацию новых чеков.
  3. Несовпадение СНО: попытка пробить чек с кодом системы налогообложения, которая не была активирована при регистрации (перерегистрации) кассы в ФНС.
  4. Рассинхронизация времени: дата и время чека не могут быть меньше даты и времени последнего успешно закрытого фискального документа в ФН.

Диагностика и устранение ошибок при оформлении чека «Возврат прихода»

Рассмотрим распространенную проблему: чек продажи (приход) пробивается без ошибок, но при попытке оформить «Возврат прихода» через стандартный метод СформироватьЧек() касса аннулирует операцию с ошибкой вида Неверная команда регистрации аннулирования или Error in Tender(lCash).

Проанализируем фрагмент аппаратного лога драйвера:


2017-06-11 00:11:30 : *PaymentCheck: Tender(lCash)
2017-06-11 00:11:30 : {Tender enter
2017-06-11 00:11:30 : : *Tender: nAmount = 1544
2017-06-11 00:11:30 : : *Tender: nType = 8
2017-06-11 00:11:33 : : : *Tender (MoneyOut): Неправильная команда
2017-06-11 00:11:33 : : }Tender ret 10
2017-06-11 00:11:33 : *PaymentCheck: Error in Tender(lCash)
2017-06-11 00:11:33 : *OdinS_CancelCheck: Enter

Разберем основные причины такого поведения и способы их решения:

  1. Некорректная версия драйвера ККТ: ошибка трансляции команд оплаты возврата (MoneyOut / Tender) часто связана с недоработками конкретного релиза интеграционной внешней компоненты. Решением является обновление драйвера производителя ККТ до актуальной стабильной версии.
  2. Контроль остатка наличных в денежном ящике: многие модели фискальных регистраторов блокируют возврат наличными, если сумма возврата превышает сумму текущей выручки и внесений в кассу за смену. В таком случае необходимо выполнить операцию внесения денежных средств в кассу либо отключить аппаратный контроль наличности в параметрах драйвера.
  3. Неверное сопоставление типов оплаты: при смене признака документа с продажи на возврат в структуре XML необходимо удостовериться, что идентификаторы типов оплаты (наличные, электронные) соответствуют спецификации конкретного драйвера.
← На главную