Почему при пробитии чека из ПКО в 1С:УТ 11 не печатаются товары и как это исправить?

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

При переходе на онлайн-кассы по требованиям 54-ФЗ пользователи конфигурации 1С:Управление торговлей 11 нередко сталкиваются с ситуацией: при оформлении чека через документ Чек ККМ в фискальный документ попадает весь список товаров, а при пробитии чека из документа Приходный кассовый ордер (ПКО) на фискальной ленте печатается только общая сумма без детализации по позициям.

Разберем требования законодательства, выясним причины такого поведения типовой конфигурации и рассмотрим варианты решения проблемы.

Требования 54-ФЗ к составу чека

Проанализируем нормы Федерального закона № 54-ФЗ (статья 4.7) и форматы фискальных документов (ФФД):

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

Причины отсутствия товарных позиций в чеке из ПКО

Выясним причину, почему в конкретной базе 1С товарные строки могут не попадать в чек при пробитии из документа Приходный кассовый ордер:

  1. Устаревший релиз конфигурации: в ранних сборках 1С:УТ 11.3 (например, 11.3.3.159) алгоритм формирования фискальных строк для кассовых ордеров не содержал выборки номенклатуры из документов-оснований и формировал одну строку на общую сумму взаиморасчетов. Механизм полноценного разбора табличных частей оснований был добавлен в последующих релизах (начиная с 11.3.3.178).
  2. Настройки детализации взаиморасчетов: если в договоре или соглашении с клиентом установлен порядок расчетов По договорам или По клиенту в целом, система не может сопоставить сумму документа с конкретной товарной спецификацией заказа и печатает авансовый платеж.
  3. Отсутствие связи с заказом или накладной: если в табличной части Расшифровка платежа не заполнен документ расчетов (документ-основание).
  4. Несовпадение суммы платежа и суммы заказа: при частичной оплате сложные алгоритмы распределения копеек и ставок НДС в старых версиях Библиотеки подключаемого оборудования (БПО) переводили документ в режим печати аванса.
  5. Статус документа-основания: если заказ клиента находится в статусе Не согласован или Отклонен, типовой запрос игнорирует его товарные позиции.

Как реализован разбор товарного состава в актуальных версиях

Посмотрим на пример типового кода общего модуля ДенежныеСредстваСервер (процедура формирования позиций чека), который появился в более свежих релизах конфигурации:


ДокументыОснования = РезультатЗапроса[2].Выгрузить().ВыгрузитьКолонку("Основание");

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросаОплаченныеПозицииНоменклатуры();
Запрос.УстановитьПараметр("МассивДокументов", ДокументыОснования);
Запрос.УстановитьПараметр("ДатаДокумента", ДанныеДокумента.Дата);
Запрос.УстановитьПараметр("ВалютаДокумента", ДанныеДокумента.Валюта);
Запрос.УстановитьПараметр("ОплатаОтКлиента", Истина);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
    "&ТекстЗапросаКоэффициентУпаковки1",
    Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
        "ТаблицаТовары.Упаковка",
        "ТаблицаТовары.Номенклатура"));

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    
    СтрокаПозицииЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека();
    ЗаполнитьЗначенияСвойств(СтрокаПозицииЧека, Выборка);
    
    СтавкаНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(Выборка.СтавкаНДС);
    
    Если Выборка.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
        ЗначениеСтавкиНДС = Неопределено;
    Иначе
        ЗначениеСтавкиНДС = СтавкаНДС * 100;
    КонецЕсли;
    
    СтрокаПозицииЧека.СтавкаНДС = ЗначениеСтавкиНДС;
    СтрокаПозицииЧека.НомерСекции = 1;
    
    // Добавление сформированной строки в фискальный пакет
    ТаблицаПозицийЧека.Добавить(СтрокаПозицииЧека);
КонецЦикла;

В этой схеме запрос обращается к табличным частям документов-оснований (ЗаказКлиента или РеализацияТоваровУслуг), считывает номенклатуру, цены, коэффициенты упаковок и ставки НДС, преобразуя каждую товарную позицию в отдельную фискальную строку с помощью метода МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека().

Способы решения проблемы

Рассмотрим по шагам варианты устранения проблемы в зависимости от текущей архитектуры базы данных:

  1. Обновление конфигурации (рекомендуемый способ):

    Обновим конфигурацию 1С:Управление торговлей 11 до актуального релиза (как минимум выше 11.3.3.178 или до актуальных веток 11.4 / 11.5). Вместе с конфигурацией обновится и БПО, что обеспечит корректную обработку всех типов расчетов, частичных оплат и признаков способа расчета по ФФД.

  2. Доработка через расширение конфигурации:

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

  3. Проверка настроек учета и заполнения документов:

    Убедимся, что выполняются следующие условия:

    • В договоре или соглашении с клиентом детализация расчетов задана По заказам или По накладным;
    • В ПКО выбран вид операции Поступление оплаты от клиента;
    • В табличной части Расшифровка платежа явно указан документ расчетов (заказ или реализация);
    • Документ-основание проведен и находится в актуальном согласованном статусе.
  4. Использование альтернативных сценариев оформления:

    Если прием наличных денег и передача товаров происходят одновременно на торговой точке, целесообразно использовать режим Рабочее место кассира (РМК) и документ Чек ККМ, где печать товарного состава гарантирована на уровне механизма чековой ленты.

← На главную