При работе в программе «1С:Управление торговлей», редакция 10.3 в связке с современными онлайн-кассами (например, АТОЛ 25Ф) пользователи часто сталкиваются с крайне неприятной ситуацией при оформлении розничных продаж. При попытке пробить чек напрямую из документа реализации на печать выводится признак способа расчета «ОПЛАТА КРЕДИТА» (или «Передача в кредит») вместо ожидаемого «НАЛИЧНЫЕ» или «ПОЛНЫЙ РАСЧЕТ». Покупатели выражают недоумение, видя слово «кредит» в чеке, а менеджеры тратят рабочее время на разъяснения.
В то же время, если попытаться пробить чек из связанного документа «Приходный кассовый ордер» (ПКО), кассовый аппарат выдает чек с единственной строкой «Оплата кредита» на общую сумму, полностью скрывая список номенклатурных позиций. Ниже мы подробно проанализируем, почему так происходит с точки зрения методологии платформы 1С и требований фискального законодательства (54-ФЗ), а также разберем по шагам готовые решения — как стандартные методические, так и программные (с изменением кода конфигурации). Для быстрого исправления этой ситуации без изменения кода конфигурации можно использовать обработку для печати кассовых чеков из ПКО с детализацией номенклатуры.
Для понимания логики программы нам необходимо обратиться к методологии учета и требованиям Федерального закона № 54-ФЗ «О применении контрольно-кассовой техники». Согласно закону, любая хозяйственная операция должна фиксироваться на кассе корректно:
Реализация товаров и услуг фиксирует исключительно факт отгрузки (передачи) товарно-материальных ценностей. Сам по себе он не является финансовым документом и не регистрирует поступление денежных средств в кассу организации.Приходный кассовый ордер, созданный на основании реализации, то по умолчанию система считает эту операцию погашением ранее возникшего долга (кредита). Поскольку платеж по кредиту теоретически может быть частичным (например, клиент оплачивает 5 000 рублей из 15 000 рублей общего долга), программа 1С не имеет возможности корректно распределить эту сумму по конкретным товарным позициям и их ставкам НДС. Из-за этого на печать выводится обобщенный чек с формулировкой «Оплата кредита» и общей суммой, без детализации списка номенклатуры.Рассмотрим, как обойти эти ограничения и вернуть чекам привычный вид.
Если мы хотим решить проблему исключительно силами пользователей и без привлечения программистов для изменения конфигурации, нам необходимо скорректировать цепочку документов и настройки признаков расчета. Разберем по шагам правильный алгоритм действий менеджера:
Реализация товаров и услуг и заполняем его списком товаров, ценами и количеством. Проводим документ.Приходный кассовый ордер (или Оплата от покупателя платежной картой, если расчет безналичный). При этом сумма оплаты автоматически заполняется из документа-основания.При таком подходе система понимает, что сделка закрывается в один этап (оплата происходит одновременно с передачей товара). В результате ККТ распечатает детальный чек, где будет выведен полный список товаров из табличной части реализации, а признаком способа расчета станет «Полный расчет» с типом оплаты «Наличные» (или «Электронные»). Если документов много, то для оптимизации рутинных операций подойдёт обработка для групповой печати чеков ККТ из приходных кассовых ордеров.
Описанный выше ручной метод имеет существенный недостаток: менеджеры часто забывают изменить реквизит «Признак способа расчета» в ПКО, что снова приводит к печати некорректных чеков. Чтобы автоматизировать этот процесс, выполним небольшую доработку в конфигураторе.
Проанализируем процедуру заполнения документа Приходный кассовый ордер при вводе на основании. Нам нужно сделать так, чтобы при создании ПКО на основании документа Реализация товаров и услуг признак способа расчета по умолчанию заполнялся как «Передача с полной оплатой».
Для этого выполним следующие действия в конфигураторе:
ПриходныйКассовыйОрдер и перейдем в его модуль объекта.ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка).
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// Заполняем реквизиты по умолчанию
ЭтотОбъект.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой;
КонецЕсли;
После применения этой доработки при создании ПКО на основании расходной накладной поле «Признак способа расчета» будет сразу принимать значение «Передача с полной оплатой». Менеджеру останется только нажать кнопку печати чека, и покупатель получит детальный чек со списком номенклатуры без упоминания кредитов.
Если бизнес-процессы вашей компании требуют, чтобы чеки пробивались исключительно из документа Реализация товаров и услуг (без обязательного создания ПКО в системе), нам потребуется скорректировать логику формирования XML-пакета, отправляемого на кассовый аппарат.
Когда мы нажимаем «Пробить чек» в реализации, система вызывает механизмы библиотеки подключаемого оборудования (БПО). Нам необходимо вмешаться в процесс формирования параметров оплаты и принудительно подставить признак полного расчета наличными, даже если платежный документ в базе отсутствует.
Выполним следующие шаги:
МенеджерОборудованияВызовСервера или специализированный модуль интеграции касс (например, МенеджерОборудованияКлиентСервер).ЗаполнитьОплатыДляТоварногоДокумента(Ссылка, ОбщиеПараметры, КурсОплаты) или аналогичную ей функцию формирования структуры чека.
// Проверяем, что документ-источник — это реализация товаров
Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// Если в документе реализации не привязаны платежные документы расчетов
Если Ссылка.ДокументыРасчетов.Количество() = 0 Тогда
// Принудительно устанавливаем признак способа расчета "Полный расчет"
ОбщиеПараметры.Вставить("ПризнакСпособаРасчета", Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой);
// Формируем массив оплат и принудительно указываем тип оплаты "Наличные"
ТаблицаОплат = Новый ТаблицаЗначений;
ТаблицаОплат.Колонки.Добавить("ТипОплаты");
ТаблицаОплат.Колонки.Добавить("Сумма");
НоваяСтрока = ТаблицаОплат.Добавить();
НоваяСтрока.ТипОплаты = Перечисления.ТипыОплатыККТ.Наличные; // Либо Электронные, по потребности
НоваяСтрока.Сумма = Ссылка.СуммаДокумента;
ОбщиеПараметры.Вставить("ТаблицаОплат", ТаблицаОплат);
КонецЕсли;
КонецЕсли;
Важное предупреждение: Применение программного переопределения (Решение №3) решает проблему визуального отображения информации в чеке и избавляет от вопросов покупателей. Однако с точки зрения ведения бухгалтерского и налогового учета в базе данных у вас будет числиться дебиторская задолженность по контрагенту, так как фактического поступления денег по кассе (документа ПКО) в системе зафиксировано не будет. Поэтому настоятельно рекомендуем использовать Решение №2 как наиболее сбалансированное и корректное с точки зрения методологии учета.