Как убрать «Оплату кредита» и вернуть «Наличные» и список товаров в чеках 1С:УТ 10.3?

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

При работе в программе «1С:Управление торговлей», редакция 10.3 в связке с современными онлайн-кассами (например, АТОЛ 25Ф) пользователи часто сталкиваются с крайне неприятной ситуацией при оформлении розничных продаж. При попытке пробить чек напрямую из документа реализации на печать выводится признак способа расчета «ОПЛАТА КРЕДИТА» (или «Передача в кредит») вместо ожидаемого «НАЛИЧНЫЕ» или «ПОЛНЫЙ РАСЧЕТ». Покупатели выражают недоумение, видя слово «кредит» в чеке, а менеджеры тратят рабочее время на разъяснения.

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

Выясним причину: почему 1С упорно пишет «Оплата кредита»?

Для понимания логики программы нам необходимо обратиться к методологии учета и требованиям Федерального закона № 54-ФЗ «О применении контрольно-кассовой техники». Согласно закону, любая хозяйственная операция должна фиксироваться на кассе корректно:

  1. Документ Реализация товаров и услуг фиксирует исключительно факт отгрузки (передачи) товарно-материальных ценностей. Сам по себе он не является финансовым документом и не регистрирует поступление денежных средств в кассу организации.
  2. Если мы пробиваем фискальный чек прямо из документа реализации, система видит отгрузку товара без подтвержденной оплаты (в структуре подчиненности нет проведенного платежного документа). С точки зрения закона, передача товара без одновременной оплаты является отпуском товара в долг. Именно поэтому касса печатает законный признак способа расчета — «Передача в кредит».
  3. Если же мы оформляем оплату через Приходный кассовый ордер, созданный на основании реализации, то по умолчанию система считает эту операцию погашением ранее возникшего долга (кредита). Поскольку платеж по кредиту теоретически может быть частичным (например, клиент оплачивает 5 000 рублей из 15 000 рублей общего долга), программа 1С не имеет возможности корректно распределить эту сумму по конкретным товарным позициям и их ставкам НДС. Из-за этого на печать выводится обобщенный чек с формулировкой «Оплата кредита» и общей суммой, без детализации списка номенклатуры.

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

Решение №1: Стандартный методический подход (Без изменения кода)

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

  1. Создаем документ Реализация товаров и услуг и заполняем его списком товаров, ценами и количеством. Проводим документ.
  2. На основании данной реализации создаем документ Приходный кассовый ордер (или Оплата от покупателя платежной картой, если расчет безналичный). При этом сумма оплаты автоматически заполняется из документа-основания.
  3. Важный шаг! В открывшейся форме ПКО находим реквизит «Признак способа расчета». По умолчанию там установлено значение «Оплата кредита». Нам необходимо вручную изменить его на значение «Передача с полной оплатой» (в некоторых версиях драйверов и конфигураций — «Полный расчет»).
  4. Проводим документ ПКО и нажимаем кнопку «Пробить чек» на форме ПКО (а не из реализации!).

При таком подходе система понимает, что сделка закрывается в один этап (оплата происходит одновременно с передачей товара). В результате ККТ распечатает детальный чек, где будет выведен полный список товаров из табличной части реализации, а признаком способа расчета станет «Полный расчет» с типом оплаты «Наличные» (или «Электронные»). Если документов много, то для оптимизации рутинных операций подойдёт обработка для групповой печати чеков ККТ из приходных кассовых ордеров.

Решение №2: Автоматическое заполнение признака в ПКО (Для программистов)

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

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

Для этого выполним следующие действия в конфигураторе:

  1. Откроем конфигурацию, найдем документ ПриходныйКассовыйОрдер и перейдем в его модуль объекта.
  2. Найдем предопределенную процедуру ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка).
  3. Внутри этой процедуры добавим условие проверки документа-основания. Пример кода для вставки:

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    // Заполняем реквизиты по умолчанию
    ЭтотОбъект.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой;
КонецЕсли;

После применения этой доработки при создании ПКО на основании расходной накладной поле «Признак способа расчета» будет сразу принимать значение «Передача с полной оплатой». Менеджеру останется только нажать кнопку печати чека, и покупатель получит детальный чек со списком номенклатуры без упоминания кредитов.

Решение №3: Изменение логики печати напрямую из Реализации (Для программистов)

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

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

Выполним следующие шаги:

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

// Проверяем, что документ-источник — это реализация товаров
Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    
    // Если в документе реализации не привязаны платежные документы расчетов
    Если Ссылка.ДокументыРасчетов.Количество() = 0 Тогда
        
        // Принудительно устанавливаем признак способа расчета "Полный расчет"
        ОбщиеПараметры.Вставить("ПризнакСпособаРасчета", Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой);
        
        // Формируем массив оплат и принудительно указываем тип оплаты "Наличные"
        ТаблицаОплат = Новый ТаблицаЗначений;
        ТаблицаОплат.Колонки.Добавить("ТипОплаты");
        ТаблицаОплат.Колонки.Добавить("Сумма");
        
        НоваяСтрока = ТаблицаОплат.Добавить();
        НоваяСтрока.ТипОплаты = Перечисления.ТипыОплатыККТ.Наличные; // Либо Электронные, по потребности
        НоваяСтрока.Сумма = Ссылка.СуммаДокумента;
        
        ОбщиеПараметры.Вставить("ТаблицаОплат", ТаблицаОплат);
        
    КонецЕсли;
    
КонецЕсли;

Важное предупреждение: Применение программного переопределения (Решение №3) решает проблему визуального отображения информации в чеке и избавляет от вопросов покупателей. Однако с точки зрения ведения бухгалтерского и налогового учета в базе данных у вас будет числиться дебиторская задолженность по контрагенту, так как фактического поступления денег по кассе (документа ПКО) в системе зафиксировано не будет. Поэтому настоятельно рекомендуем использовать Решение №2 как наиболее сбалансированное и корректное с точки зрения методологии учета.

← На главную