Почему при пробитии чека из документа Реализация товаров и услуг печатается оплата в кредит?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Налоговый учет Торговля и дистрибуция
← На главную

Понимание проблемы формирования чеков в УТ 11.4

При работе с 1С:Управление торговлей 11.4 многие пользователи сталкиваются с тем, что кассовый чек, сформированный на основании документа Реализация товаров и услуг, содержит некорректные признаки способа и предмета расчета. Вместо ожидаемого Полный расчет система подставляет Передача в кредит или Оплата кредита, что вызывает вопросы у налоговой службы и сложности при учете по нескольким системам налогообложения (УСН и ЕНВД).

Основная причина заключается в логике типового кода 1С, который при формировании XML-пакета данных для ККТ анализирует наличие оплаты. Если документ Реализация товаров и услуг проведен без предварительно оформленного прихода денежных средств (даже при условии предоплаты в соглашении), система автоматически классифицирует операцию как отгрузку с отсрочкой платежа.

Решение 1: Программная корректировка через расширение конфигурации

Для пользователей версий ПРОФ и КОРП наиболее эффективным способом решения является использование расширения конфигурации. Это позволяет «перехватить» процедуру формирования данных для кассы и принудительно подменить признаки расчета, не снимая основную конфигурацию с поддержки.

Для реализации этого метода необходимо внести изменения в общий модуль МенеджерОборудованияВызовСервера. Рассмотрим шаги по внедрению логики исправления:

Найдем место, где происходит запись атрибутов SignMethodCalculation и SignCalculationObject, и добавим условие для принудительной установки корректных значений:


Если ТекущаяПозиция.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакСпособаРасчета) Тогда
    ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакСпособаРасчета(ТекущаяПозиция.ПризнакСпособаРасчета);
    Если ПризнакСпособаРасчета = 7 Тогда // Заменяем признак Кредита на Полный расчет
        ПризнакСпособаРасчета = 4;
    КонецЕсли;
    ЗаписьXML.ЗаписатьАтрибут("SignMethodCalculation", XMLСтрока(ПризнакСпособаРасчета));
КонецЕсли;

Если ТекущаяПозиция.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакПредметаРасчета) Тогда
    ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакаПредметаРасчета(ТекущаяПозиция.ПризнакПредметаРасчета);
    Если ПризнакПредметаРасчета = 10 Тогда // Заменяем некорректный признак предмета на Товар/Услугу
        ПризнакПредметаРасчета = 1;
    КонецЕсли;
    ЗаписьXML.ЗаписатьАтрибут("SignCalculationObject", XMLСтрока(ПризнакПредметаРасчета));
КонецЕсли;

Используя этот подход, вы добиваетесь корректного отражения Полного расчета в чеке, при этом не создавая дублирующие операции в фискальном накопителе.

Решение 2: Методологический обход с использованием цепочки документов

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

  1. Создайте документ Заказ клиента.
  2. На основании Заказа клиента оформите документ Приходный кассовый ордер (в нем будет зафиксирован Аванс).
  3. После этого оформите документ Реализация товаров и услуг.
  4. При пробитии чека из Реализации система выполнит Зачет аванса, что в совокупности с первым чеком дает корректную картину для налоговой.

Важно: При такой схеме крайне важно следить за тем, чтобы все документы в цепочке были датированы одним числом. Это обеспечивает правильную последовательность записей в регистрах и упрощает сверку данных в конце смены.

Рекомендации по настройке ККТ

Помимо логики 1С, убедитесь в следующем:

Если после выполнения всех настроек проблема сохраняется, рекомендуем выполнить обновление конфигурации до последней актуальной версии, так как разработчики 1С регулярно вносят исправления в механизмы взаимодействия с Менеджером оборудования.

← На главную