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