При переходе на онлайн-кассы формата ФФД 1.05 и выше многие пользователи старых, но крайне популярных конфигураций (таких как «1С:Управление торговлей 10.3») столкнулись с неожиданным поведением системы при печати чеков. Типичный сценарий: менеджер оформляет привычный документ Реализация товаров и услуг (РТУ), нажимает кнопку «Пробить чек», а на фискальном документе ККТ печатается текст «Передача в кредит» вместо ожидаемой наличной или безналичной оплаты.
Попытки обойти эту проблему путем пробития чеков из связанных документов Приходный кассовый ордер (ПКО) часто приводят к другой системной ошибке при закрытии кассовой смены: «За кассовую смену не продано ни одного товара по выбранной кассе ККМ». При этом физически чеки уходят в ОФД, суммы сходятся, но программа упорно сообщает об отсутствии продаж.
В этой статье мы подробно разберем методологические причины такого поведения системы, проанализируем разницу между оптовой и розничной схемами работы в 1С и изучим три практических способа решения этой проблемы: от изменения бизнес-процессов до корректировки программного кода.
---
Давайте выясним причину, по которой программа относит обычную продажу к кредитным операциям. С точки зрения требований 54-ФЗ и реализованной в 1С логики, каждый фискальный чек должен содержать Признак способа расчета (тег 1214). Этот тег определяет, в какой момент происходит передача товара и в какой момент поступают деньги за него.
В конфигурации «1С:Управление торговлей 10.3» документ Реализация товаров и услуг является исключительно документом отгрузки (перехода права собственности на товар). Сам по себе он не делает движений по денежным регистрам. Для системы РТУ означает факт: «Мы отдали товар клиенту».
Когда мы пытаемся пробить чек напрямую из РТУ, программные механизмы анализируют связанные платежные документы. Если в системе под эту отгрузку еще не зафиксировано поступление денег (нет проведенного ПКО или входящего платежного поручения, привязанного к данной сделке), программа делает единственно верный с точки зрения закона вывод:
«Товар отгружен, но оплаты по нему еще нет. Значит, товар передан покупателю в долг (в кредит).»
В результате касса формирует чек с признаком способа расчета «Передача в кредит» (или «Частичный расчет и кредит»). По закону в дальнейшем при получении денег за этот товар вы обязаны будете пробить второй чек — уже из платежного документа (ПКО или Эквайринг) с признаком способа расчета «Оплата кредита» (погашение задолженности).
---
Теперь проанализируем ситуацию, когда пользователи пытаются решить проблему «в лоб»: оформляют РТУ, на его основании вводят ПКО и выбивают чек непосредственно из ПКО. В этом случае на чеке действительно выводится корректный признак оплаты, однако при закрытии кассовой смены на ККТ программа выдает предупреждение: «За кассовую смену не продано ни одного товара по выбранной кассе ККМ».
Выясним, почему это происходит. В архитектуре 1С:УТ 10.3 четко разделены два контура учета:
Заказ покупателя -> Реализация товаров и услуг + Приходный кассовый ордер. Взаиморасчеты ведутся в разрезе договоров и сделок на счете 62 (или соответствующем регистре взаиморасчетов).Чек ККМ. При закрытии смены все оформленные за день чеки ККМ архивируются и сворачиваются в один общий документ Отчет о розничных продажах.Процедура «Закрытие кассовой смены» в 1С:УТ 10.3 предназначена исключительно для розничного контура. Она ищет в базе документы Чек ККМ, проведенные по выбранной кассе за день. Если вы оформляли продажи по оптовой схеме (через РТУ и ПКО), в базе данных документов Чек ККМ попросту нет. Именно поэтому система выдает предупреждение об отсутствии розничных продаж.
Важный нюанс: Пугаться этого сообщения не стоит. На физическом уровне фискальный регистратор (например, Атол 30Ф) и личный кабинет ОФД зафиксировали все ваши пробитые из ПКО чеки. Z-отчет на кассе снимется корректно, суммы совпадут. Но в самой учетной системе 1С данные продажи не отразятся в розничной отчетности, они пройдут по регистрам оптовых продаж.
---
Если специфика вашего бизнеса предполагает продажу «здесь и сейчас» (когда клиент пришел, выбрал товар, сразу оплатил наличными или картой и сразу забрал покупку), то использование документов Реализация товаров и услуг методологически неверно. Рассмотрим, как правильно организовать этот процесс с использованием стандартного функционала.
Разберем процесс по шагам:
Чек ККМ.Чек ККМ. Заполним табличную часть списком продаваемых товаров.В этом случае на ККТ мгновенно распечатается чек с признаком способа расчета «Полный расчет» и корректным типом оплаты. В конце рабочего дня запустим процедуру закрытия кассовой смены. Программа автоматически соберет все чеки за день, сформирует документ Отчет о розничных продажах, спишет товары со склада и оприходует выручку в кассу. Предупреждение об отсутствии продаж больше не появится.
---
Бывают ситуации, когда вам необходимо вести учет по конкретным контрагентам (юридическим или физическим лицам) с оформлением накладных Торг-12 или УПД. В этом случае без документа РТУ не обойтись. Рассмотрим, как правильно отразить операцию без нарушения закона и появления «кредитных» чеков, используя зачет аванса.
Если оплата от покупателя поступает до момента фактической отгрузки товара:
Приходный кассовый ордер (или Оплата от покупателя по платежной карте).Реализация товаров и услуг. В шапке или на вкладке «Предоплата» (в зависимости от настроек договора) обязательно укажем наш платежный документ в таблице документов расчетов. Это критически важно для зачета аванса!Такой подход полностью соответствует требованиям ФНС по оформлению двухэтапных сделок.
---
Многие компании привыкли работать по упрощенной схеме: менеджер оформляет РТУ, клиент сразу же отдает наличные деньги, и менеджер хочет в один клик распечатать чек «Полный расчет / Оплата наличными» прямо из реализации, не создавая предварительно ПКО и не связывая документы вручную. Стандартными средствами УТ 10.3 сделать это невозможно, но задачу легко решить с помощью программирования.
Рассмотрим два технических пути реализации этой задачи.
Это наиболее безопасный и рекомендуемый метод, так как база данных остается на полной поддержке. Мы можем зарегистрировать в системе внешнюю обработку (печатную форму) для документа Реализация товаров и услуг. При нажатии кнопки печати эта обработка перехватит данные табличной части РТУ и принудительно отправит на ККТ команду пробития чека с нужными параметрами.
В коде такой обработки при формировании XML-пакета для драйвера ККТ принудительно устанавливаются следующие свойства:
Если ваша конфигурация «1С:Управление торговлей 10.3» уже снята с поддержки или дорабатывается, мы можем внести изменения непосредственно в модуль интеграции с торговым оборудованием. Разберем по шагам, где именно вносить изменения.
В большинстве релизов УТ 10.3 подготовка данных для ККТ происходит в общем модуле МенеджерОборудованияВызовСервера или в модуле объекта документа РТУ в процедурах, связанных с чеками (например, ПодготовитьДанныеДляЧека).
Давайте проанализируем примерный алгоритм доработки кода. Нам необходимо найти процедуру, которая заполняет таблицу оплат для фискализатора. Обычно она называется ЗаполнитьОплатыДляТоварногоДокумента или имеет схожую структуру. Наша задача — принудительно подставить тип оплаты «Наличные» и признак «Полный расчет», если таблица документов расчетов пуста.
Посмотрим на пример реализации такой логики в коде:
// В процедуру формирования параметров чека из документа РеализацияТоваровУслуг
Процедура ПереопределитьПараметрыЧекаДляРТУ(ДокументСсылка, ОбщиеПараметры) Экспорт
// Проверяем, что документ является Реализацией товаров и услуг
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// Проверяем, заполнены ли связанные платежные документы
ТаблицаДокументовРасчетов = ДокументСсылка.ДокументыРасчетовСКонтрагентом;
Если ТаблицаДокументовРасчетов.Количество() = 0 Тогда
// 1. Принудительно устанавливаем признак способа расчета "Полный расчет"
// В терминах ФФД это "ПередачаСПолнойОплатой" (значение перечисления или числовой код 4)
ОбщиеПараметры.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой;
// 2. Формируем таблицу оплат, как будто клиент заплатил наличными всю сумму накладной
ТаблицаОплат = Новый ТаблицаЗначений;
ТаблицаОплат.Колонки.Добавить("ТипОплаты", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыОплатыККТ"));
TableОплат.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
НоваяСтрока = ТаблицаОплат.Добавить();
НоваяСтрока.ТипОплаты = Перечисления.ТипыОплатыККТ.Наличные;
НоваяСтрока.Сумма = ДокументСсылка.СуммаДокумента;
// Передаем сформированную таблицу в структуру параметров чека
ОбщиеПараметры.Вставить("ТаблицаОплат", ТаблицаОплат);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важное предупреждение: Применяя техническое решение с принудительной подменой параметров чека на «Полный расчет», помните о бухгалтерском учете! Касса пробьет чек на наличные, и эти данные уйдут в налоговую. Однако в самой 1С счет 50 (Касса) и взаиморасчеты с контрагентом по документу РТУ автоматически не закроются. Бухгалтеру в конце дня все равно потребуется ввести в системе документ Приходный кассовый ордер на общую сумму таких продаж за день (уже без пробития чеков на кассе), чтобы закрыть дебиторскую задолженность покупателей и свести баланс кассы.
---
Мы подробно разобрали проблему появления признака «Передача в кредит» при интеграции ККТ с «1С:Управление торговлей 10.3». Подведем итоги:
Чек ККМ, научите менеджеров правильно связывать РТУ с предоплатами по ПКО или внедрите доработку кода/внешнюю печатную форму для автоматической подстановки параметров оплаты в драйвер кассы.