При оформлении продаж в конфигурации «1С:Управление торговлей 10.3» с использованием фискального регистратора «Атол 30Ф» пользователи часто сталкиваются с ситуацией, когда в напечатанном чеке отсутствует детализированный список товаров. Вместо построчной номенклатуры ККТ выводит общую сумму платежа с формулировкой вроде «Предоплата» или «Оплата кредита». При этом сам документ («Реализация товаров и услуг» или заказ) содержит полный перечень позиций. Рассмотрим подробно, почему так происходит, разберем законодательные требования и предложим практические варианты решения этой проблемы.
Первое, что необходимо проанализировать — это хронологическая последовательность документов и логика расчетов с точки зрения Федеральной налоговой службы (ФНС). В описываемой ситуации документ РеализацияТоваровУслуг оформлен, например, 19 августа, а входящий платеж (например, ПлатежноеПоручениеВходящее или ПриходныйКассовыйОрдер) зарегистрирован 20 августа. То есть фактически товар сначала был отгружен и передан покупателю, а оплата за него поступила лишь на следующий день.
В такой схеме бухгалтер совершает методологическую ошибку, требуя указать признак способа расчета «Предоплата полная». Согласно закону 54-ФЗ и форматам фискальных данных (ФФД 1.05 и выше), предоплата возможна только до фактического отпуска товара. Если товар уже передан покупателю, последующий прием денежных средств классифицируется как «Оплата кредита» (погашение задолженности).
Почему в этом случае на чеке не печатается список товаров? Это абсолютно корректное поведение кассового аппарата по закону:
Проанализируем техническую сторону работы типовой конфигурации. Чтобы в 1С:УТ 10.3 подробные сведения о номенклатуре (наименования, цены, количество, ставки НДС) корректно передавались в ККТ из платежных документов (ПКО или платежных поручений), должны строго соблюдаться определенные правила:
ЗаказПокупателя или РеализацияТоваровУслуг).Разберем по шагам варианты обхода этого ограничения, если бухгалтерия все же настаивает на выводе списка товаров в чеке при оплате.
Рассмотрим, как обойти логику программы без изменения программного кода. Если привязать оплату не напрямую к реализации, а к предварительному заказу, система позволит сформировать чек со списком номенклатуры:
ЗаказПокупателя, в котором подробно заполняем всю номенклатуру, цены и ставки НДС.РеализацияТоваровУслуг.ПлатежноеПоручениеВходящее или ПриходныйКассовыйОрдер) в поле «Основание» (или в табличной части «Расшифровка платежа») указываем именно ЗаказПокупателя, а не реализацию.Важное предупреждение: Данный метод является административным обходом и может искажать реальную картину расчетов в учете, если отгрузка фактически уже состоялась до момента оплаты. Используйте его на свой страх и риск после согласования с финансовой службой.
Наиболее чистый с точки зрения методологии 54-ФЗ способ — организация бизнес-процесса таким образом, чтобы чек пробивался непосредственно из документа РеализацияТоваровУслуг в день отгрузки. В этом случае:
Для программистов рассмотрим техническое решение проблемы. Если типовой функционал УТ 10.3 не удовлетворяет требованиям бизнеса, необходимо внести изменения в код программы, отвечающий за формирование XML-пакета для ККТ. При необходимости можно воспользоваться готовым решением для автоматического вывода номенклатуры при печати чека из ПКО или РКО.
В конфигурации «1С:Управление торговлей 10.3» за интеграцию с торговым оборудованием отвечает общий модуль, связанный с менеджером оборудования (например, МенеджерОборудованияВызовСервера или специализированные обработки обслуживания драйверов).
Проанализируем пример логики, которую необходимо скорректировать. Нам нужно принудительно передавать массив строк номенклатуры в XML-пакет чека, даже если признак способа расчета определяется как кредит или постоплата. Для этого в процедуре подготовки данных для ККТ (например, ЗаполнитьОплатыДляТоварногоДокумента) разработчик может переопределить структуру параметров:
// Пример принудительного заполнения структуры товарных позиций для ККТ
Если ЭтоПлатежныйДокумент И ЗначениеЗаполнено(ДокументОснование) Тогда
// Получаем табличную часть товаров из документа-основания (Реализации)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура.Наименование КАК Наименование,
| Товары.Количество КАК Количество,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
|ГДЕ
| Товары.Ссылка = &СсылкаНаРеализацию";
Запрос.УстановитьПараметр("СсылкаНаРеализацию", ДокументОснование);
ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
// Принудительно заполняем XML-структуру для драйвера Атол 10
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
НоваяСтрока = ЧекДанные.Строки.Добавить();
НоваяСтрока.Наименование = СтрокаТовара.Наименование;
НоваяСтрока.Количество = СтрокаТовара.Количество;
НоваяСтрока.Цена = СтрокаТовара.Цена;
НоваяСтрока.Сумма = СтрокаТовара.Сумма;
НоваяСтрока.СтавкаНДС = СтрокаТовара.СтавкаНДС;
// Принудительно выставляем признак способа расчета
НоваяСтрока.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой;
КонецЦикла;
КонецЕсли;
При использовании программной доработки критически важно проконсультироваться с обслуживающим ККТ специалистом или аудитором, чтобы убедиться, что формируемые чеки не приведут к штрафным санкциям со стороны налоговых органов из-за задвоения налоговой базы.