При работе с онлайн-кассами (по 54-ФЗ) в конфигурациях на платформе 1С 7.7 нередко возникают вопросы, связанные с корректной передачей признака системы налогообложения (СНО) в фискальный накопитель. Рассмотрим, почему при смене законодательства или режимов работы возникают ошибки и как настроить систему для корректной печати чеков.
В современных онлайн-кассах передача данных осуществляется через специализированные драйверы (например, драйверы АТОЛ). Важно понимать, что система налогообложения в чеке — это не просто «секция» или «отдел» (ПУП), как это было в старых кассовых аппаратах до введения 54-ФЗ. СНО — это отдельный реквизит (тег 1055), который должен явно передаваться из программы в ККТ в момент формирования фискального документа.
Если в коде вашей обработки обслуживания (файл .ert) отсутствует явная передача этого тега, касса будет использовать систему налогообложения, установленную в её собственных настройках «по умолчанию». Именно это часто сбивает с толку: одна операция печатается с корректной СНО, а другая — с устаревшей, хотя в коде документа вроде бы внесены изменения.
Прежде всего, проанализируем настройки самой кассы. Согласно требованиям 54-ФЗ, все системы налогообложения, которые вы используете, должны быть зафиксированы в фискальном накопителе при регистрации или перерегистрации ККТ. Если вы перешли с ЕНВД на ОСН, убедитесь, что касса была перерегистрирована с соответствующим изменением реквизитов. Если в ФН не заложена конкретная СНО, при попытке пробить чек с этим признаком вы получите ошибку или аннулирование операции.
Если вы не готовы или не имеете возможности менять логику работы во всех обработках 1С 7.7, вы можете задать СНО по умолчанию в утилите драйвера ККТ. Разберем, как это сделать:
ОСН) и сохраните настройки в устройство.После этого, если ваша 1С 7.7 при формировании чека не передает параметр СНО явно, касса будет автоматически подставлять то значение, которое мы только что сохранили в настройках драйвера.
Чтобы быть уверенными в корректности данных, рекомендуется доработать код вашей обработки обслуживания (файлы с расширением .ert). Рассмотрим, где искать логику формирования чека. Обычно в коде обработки обслуживания есть процедура, отвечающая за передачу данных в драйвер, например, ПечатьЧека или СформироватьЧек.
Проанализируем примерный фрагмент кода, который отвечает за настройку параметров перед фискализацией:
// Пример установки СНО перед печатью чека
ОбъектДрайвера.СНО = 1; // Устанавливаем признак ОСН (значение зависит от модели ККТ)
ОбъектДрайвера.ОткрытьЧек();
// ... дальнейшая передача позиций товара
Если ваша обработка использует старый метод работы с ПУП (параметром устройства печати или номером секции), настоятельно рекомендуем найти место, где происходит обращение к методам драйвера, и добавить туда явную установку свойства СНО. Помните, что использование ПУП вместо СНО — это устаревший подход, который может приводить к непредсказуемым результатам в новых прошивках ККТ.
Мы выяснили, что в конфигурации автора темы существовала жесткая привязка к номеру секции в старых процедурах печати. Проблема заключалась в следующем:
Приходного кассового ордера использовалась логика, которая корректно передавала или наследовала ОСН.Чека ККМ обработка была настроена на секцию, которая в самой кассе была «привязана» к ЕНВД.ПУП на 1, касса продолжала печатать ЕНВД, так как «по умолчанию» в её внутренних настройках драйвера все еще стоял этот режим.Таким образом, решение заключается в комплексном подходе: приведите настройки драйвера «по умолчанию» в соответствие с вашим текущим режимом работы и, по возможности, доработайте обработку 1С 7.7 для передачи тега СНО непосредственно из документа, чтобы программа стала независимой от внутренних настроек ККТ.