При работе с торговыми операциями в 1С:Управление торговлей 11 пользователи часто сталкиваются с ситуацией, когда при печати чека из документа Приходный кассовый ордер (ПКО) вместо детального перечня товаров с их реальным количеством печатается одна строка. В этой строке количество всегда равно «1», а в качестве наименования может быть указано «Платеж» или «Оплата по заказу». Это вызывает вопросы у покупателей и может не соответствовать требованиям налоговой инспекции по детализации чеков.
В данной статье мы подробно разберем, почему система ведет себя именно так, проанализируем внутреннюю логику 1С и предложим несколько вариантов решения этой проблемы.
Для начала проанализируем ситуацию с точки зрения разделения документов в системе 1С на «финансовые» и «товарные». Документ Приходный кассовый ордер является чисто финансовым. Его главная задача — зафиксировать поступление денежных средств в кассу предприятия. На момент создания ПКО на основании заказа клиента товар еще может быть не отгружен.
Рассмотрим стандартную цепочку: Заказ клиента — ПКО — Реализация товаров и услуг. В этом случае, когда мы пробиваем чек из ПКО, 1С классифицирует эту операцию как «Предоплата». Согласно алгоритмам в старых релизах УТ 11.4 (как в случае автора темы), система часто сворачивает все позиции заказа в один объект расчета с типом Платеж. Для такого объекта количество по определению равно 1, а цена равна общей сумме платежа.
Это сделано разработчиками для исключения ошибок округления. Когда оплата частичная, крайне сложно корректно распределить копейки по всем строкам номенклатуры так, чтобы итоговая сумма сошлась с точностью до знака. Поэтому система «схлопывает» товарный состав.
Наиболее простое и логически верное решение, которое было найдено в ходе обсуждения на форуме — это изменение момента пробития чека. Если товар отгружается клиенту в тот же момент, когда принимаются деньги, или если вам критично видеть номенклатуру в чеке, следует использовать документ Реализация товаров и услуг (РТУ).
Разберем этот процесс по шагам:
Заказ клиента.Реализация товаров и услуг.При печати чека из реализации 1С передает в ККТ признак способа расчета Полный расчет. В этом случае в XML-пакет, отправляемый на драйвер ККТ, попадает полный перечень номенклатуры с правильными значениями в полях Количество, Цена и Сумма. В итоге вы получите чек, где каждая позиция будет расписана отдельно.
В более современных релизах (начиная с УТ 11.4.13 и выше) фирма 1С доработала механизм печати чеков на аванс и предоплату. Рассмотрим, как можно настроить систему, чтобы даже в ПКО выводились товары.
Проанализируем настройки договора или настроек кассы ККМ. В некоторых конфигурациях появилась опция «Разбивать строку предоплаты по номенклатуре». Если этот флаг установлен, то при формировании чека из ПКО система попытается программно распределить сумму оплаты по всем позициям заказа-основания. В этом случае в кассовый аппарат будет передан массив товаров, а не одна строка «Платеж».
Выясним причину, по которой настройки драйвера могут влиять на результат. В параметрах кассы в 1С есть настройка «Способ форматно-логического контроля». Рассмотрим два основных варианта:
Посмотрим на пример того, как система формирует данные для драйвера. Если в коде стоит жесткое ограничение на тип предмета расчета, исправить это можно только через расширение или правку модуля МенеджерОборудованияВызовСервера.
Если вы решили доработать печать чека программно, проанализируем функцию формирования XML-пакета. В типовых конфигурациях за это отвечает механизм ОборудованиеЧекиПереформироватьДанныеДляПечати. Система проверяет тип документа и заполняет таблицу ТоварныйСостав.
Для ПКО код часто выглядит упрощенно:
// Пример упрощенной логики в старых релизах
СтрокаЧека = ТоварныйСостав.Добавить();
СтрокаЧека.Наименование = "Оплата от покупателя";
СтрокаЧека.Количество = 1;
СтрокаЧека.Цена = СуммаДокумента;
СтрокаЧека.Сумма = СуммаДокумента;
СтрокаЧека.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособовРасчетаПрограммы.Предоплата;
Чтобы изменить это поведение, необходимо перехватить формирование этой таблицы и заполнить её данными из табличной части Товары документа-основания (Заказа). Однако стоит помнить о законе 54-ФЗ: если вы пробиваете чек с полным перечнем товаров из ПКО (как предоплату), то при последующей отгрузке (Реализации) вам по закону необходимо будет пробить второй чек с признаком Полный расчет и указанием способа оплаты Зачетом аванса.
Рассмотрим подробнее выводы:
1. Для розничных продаж: Если оплата и отгрузка происходят одновременно, используйте Чек ККМ. Там всегда печатается правильное количество и номенклатура.
2. Для оптовых продаж с немедленной отгрузкой: Пробивайте чек из документа Реализация товаров и услуг. Это решит проблему с количеством «1» без внесения изменений в код.
3. Для авансов: Если вам принципиально видеть товары в чеке на аванс, обновите конфигурацию до версии 11.5 или используйте расширение, которое переопределяет формирование XML-пакета для ККТ, заполняя ТоварныйСостав на основе Заказа.
Выяснив причину и проанализировав структуру документов, мы видим, что поведение системы — это не ошибка, а реализация определенной финансовой логики. Переход к печати из Реализации является самым быстрым и корректным способом решения задачи для большинства торговых организаций.