При работе с 1С:Управление торговлей 11.4 многие пользователи сталкиваются с тем, что кассовый чек, сформированный на основании документа Реализация товаров и услуг, содержит некорректные признаки способа и предмета расчета. Вместо ожидаемого Полный расчет система подставляет Передача в кредит или Оплата кредита, что вызывает вопросы у налоговой службы и сложности при учете по нескольким системам налогообложения (УСН и ЕНВД).
Основная причина заключается в логике типового кода 1С, который при формировании XML-пакета данных для ККТ анализирует наличие оплаты. Если документ Реализация товаров и услуг проведен без предварительно оформленного прихода денежных средств (даже при условии предоплаты в соглашении), система автоматически классифицирует операцию как отгрузку с отсрочкой платежа.
Для пользователей версий ПРОФ и КОРП наиболее эффективным способом решения является использование расширения конфигурации. Это позволяет «перехватить» процедуру формирования данных для кассы и принудительно подменить признаки расчета, не снимая основную конфигурацию с поддержки.
Для реализации этого метода необходимо внести изменения в общий модуль МенеджерОборудованияВызовСервера. Рассмотрим шаги по внедрению логики исправления:
Найдем место, где происходит запись атрибутов SignMethodCalculation и SignCalculationObject, и добавим условие для принудительной установки корректных значений:
Если ТекущаяПозиция.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакСпособаРасчета) Тогда
ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакСпособаРасчета(ТекущаяПозиция.ПризнакСпособаРасчета);
Если ПризнакСпособаРасчета = 7 Тогда // Заменяем признак Кредита на Полный расчет
ПризнакСпособаРасчета = 4;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("SignMethodCalculation", XMLСтрока(ПризнакСпособаРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакПредметаРасчета) Тогда
ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакаПредметаРасчета(ТекущаяПозиция.ПризнакПредметаРасчета);
Если ПризнакПредметаРасчета = 10 Тогда // Заменяем некорректный признак предмета на Товар/Услугу
ПризнакПредметаРасчета = 1;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("SignCalculationObject", XMLСтрока(ПризнакПредметаРасчета));
КонецЕсли;
Используя этот подход, вы добиваетесь корректного отражения Полного расчета в чеке, при этом не создавая дублирующие операции в фискальном накопителе.
Если вы не хотите вносить изменения в код программы, можно воспользоваться методом последовательного оформления документов, который минимизирует риски неправильного признака расчета:
Заказ клиента.Заказа клиента оформите документ Приходный кассовый ордер (в нем будет зафиксирован Аванс).Реализация товаров и услуг.Реализации система выполнит Зачет аванса, что в совокупности с первым чеком дает корректную картину для налоговой.Важно: При такой схеме крайне важно следить за тем, чтобы все документы в цепочке были датированы одним числом. Это обеспечивает правильную последовательность записей в регистрах и упрощает сверку данных в конце смены.
Помимо логики 1С, убедитесь в следующем:
ДТО 10.x), так как они корректнее работают с последними форматами фискальных данных (ФФД 1.05 и 1.2).Товар или Услуга). Именно на их основе 1С подставляет значения для SignCalculationObject.УСН и ЕНВД обязательно убедитесь, что в настройках склада или учетной политики организации верно указаны соответствующие системы налогообложения. Неверная привязка склада может приводить к тому, что 1С принудительно направляет все продажи по одной системе налогообложения.Если после выполнения всех настроек проблема сохраняется, рекомендуем выполнить обновление конфигурации до последней актуальной версии, так как разработчики 1С регулярно вносят исправления в механизмы взаимодействия с Менеджером оборудования.