Почему при печати чека из документа «Реализация товаров и услуг» в 1С:УТ 10.3 пишется «Передача в кредит» и как это исправить?

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

При переходе на онлайн-кассы формата ФФД 1.05 и выше многие пользователи старых, но крайне популярных конфигураций (таких как «1С:Управление торговлей 10.3») столкнулись с неожиданным поведением системы при печати чеков. Типичный сценарий: менеджер оформляет привычный документ Реализация товаров и услуг (РТУ), нажимает кнопку «Пробить чек», а на фискальном документе ККТ печатается текст «Передача в кредит» вместо ожидаемой наличной или безналичной оплаты.

Попытки обойти эту проблему путем пробития чеков из связанных документов Приходный кассовый ордер (ПКО) часто приводят к другой системной ошибке при закрытии кассовой смены: «За кассовую смену не продано ни одного товара по выбранной кассе ККМ». При этом физически чеки уходят в ОФД, суммы сходятся, но программа упорно сообщает об отсутствии продаж.

В этой статье мы подробно разберем методологические причины такого поведения системы, проанализируем разницу между оптовой и розничной схемами работы в 1С и изучим три практических способа решения этой проблемы: от изменения бизнес-процессов до корректировки программного кода.

---

Почему возникает признак «Передача в кредит»? Разбор методологии 54-ФЗ

Давайте выясним причину, по которой программа относит обычную продажу к кредитным операциям. С точки зрения требований 54-ФЗ и реализованной в 1С логики, каждый фискальный чек должен содержать Признак способа расчета (тег 1214). Этот тег определяет, в какой момент происходит передача товара и в какой момент поступают деньги за него.

В конфигурации «1С:Управление торговлей 10.3» документ Реализация товаров и услуг является исключительно документом отгрузки (перехода права собственности на товар). Сам по себе он не делает движений по денежным регистрам. Для системы РТУ означает факт: «Мы отдали товар клиенту».

Когда мы пытаемся пробить чек напрямую из РТУ, программные механизмы анализируют связанные платежные документы. Если в системе под эту отгрузку еще не зафиксировано поступление денег (нет проведенного ПКО или входящего платежного поручения, привязанного к данной сделке), программа делает единственно верный с точки зрения закона вывод:

«Товар отгружен, но оплаты по нему еще нет. Значит, товар передан покупателю в долг (в кредит).»

В результате касса формирует чек с признаком способа расчета «Передача в кредит» (или «Частичный расчет и кредит»). По закону в дальнейшем при получении денег за этот товар вы обязаны будете пробить второй чек — уже из платежного документа (ПКО или Эквайринг) с признаком способа расчета «Оплата кредита» (погашение задолженности).

---

Почему возникает сообщение об отсутствии продаж при закрытии смены?

Теперь проанализируем ситуацию, когда пользователи пытаются решить проблему «в лоб»: оформляют РТУ, на его основании вводят ПКО и выбивают чек непосредственно из ПКО. В этом случае на чеке действительно выводится корректный признак оплаты, однако при закрытии кассовой смены на ККТ программа выдает предупреждение: «За кассовую смену не продано ни одного товара по выбранной кассе ККМ».

Выясним, почему это происходит. В архитектуре 1С:УТ 10.3 четко разделены два контура учета:

  1. Оптовый контур. Использует цепочку документов: Заказ покупателя -> Реализация товаров и услуг + Приходный кассовый ордер. Взаиморасчеты ведутся в разрезе договоров и сделок на счете 62 (или соответствующем регистре взаиморасчетов).
  2. Розничный контур. Использует специализированный документ Чек ККМ. При закрытии смены все оформленные за день чеки ККМ архивируются и сворачиваются в один общий документ Отчет о розничных продажах.

Процедура «Закрытие кассовой смены» в 1С:УТ 10.3 предназначена исключительно для розничного контура. Она ищет в базе документы Чек ККМ, проведенные по выбранной кассе за день. Если вы оформляли продажи по оптовой схеме (через РТУ и ПКО), в базе данных документов Чек ККМ попросту нет. Именно поэтому система выдает предупреждение об отсутствии розничных продаж.

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

---

Вариант решения №1. Переход на розничную схему (документ «Чек ККМ»)

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

Разберем процесс по шагам:

  1. Откроем интерфейс кассира или воспользуемся списком документов Чек ККМ.
  2. Создадим новый документ Чек ККМ. Заполним табличную часть списком продаваемых товаров.
  3. В поле оплаты выберем вид платежа: наличные или безналичные.
  4. Нажмем кнопку «Пробить».

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

---

Вариант решения №2. Правильный зачет предоплаты при оптовой схеме

Бывают ситуации, когда вам необходимо вести учет по конкретным контрагентам (юридическим или физическим лицам) с оформлением накладных Торг-12 или УПД. В этом случае без документа РТУ не обойтись. Рассмотрим, как правильно отразить операцию без нарушения закона и появления «кредитных» чеков, используя зачет аванса.

Если оплата от покупателя поступает до момента фактической отгрузки товара:

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

Такой подход полностью соответствует требованиям ФНС по оформлению двухэтапных сделок.

---

Вариант решения №3. Техническая доработка для печати «Полного расчета» напрямую из РТУ

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

Рассмотрим два технических пути реализации этой задачи.

Способ А. Использование внешней печатной формы (без изменения конфигурации)

Это наиболее безопасный и рекомендуемый метод, так как база данных остается на полной поддержке. Мы можем зарегистрировать в системе внешнюю обработку (печатную форму) для документа Реализация товаров и услуг. При нажатии кнопки печати эта обработка перехватит данные табличной части РТУ и принудительно отправит на ККТ команду пробития чека с нужными параметрами.

В коде такой обработки при формировании XML-пакета для драйвера ККТ принудительно устанавливаются следующие свойства:

Способ Б. Корректировка кода конфигурации (для программистов)

Если ваша конфигурация «1С:Управление торговлей 10.3» уже снята с поддержки или дорабатывается, мы можем внести изменения непосредственно в модуль интеграции с торговым оборудованием. Разберем по шагам, где именно вносить изменения.

В большинстве релизов УТ 10.3 подготовка данных для ККТ происходит в общем модуле МенеджерОборудованияВызовСервера или в модуле объекта документа РТУ в процедурах, связанных с чеками (например, ПодготовитьДанныеДляЧека).

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

Посмотрим на пример реализации такой логики в коде:


// В процедуру формирования параметров чека из документа РеализацияТоваровУслуг
Процедура ПереопределитьПараметрыЧекаДляРТУ(ДокументСсылка, ОбщиеПараметры) Экспорт

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

КонецПроцедуры

Важное предупреждение: Применяя техническое решение с принудительной подменой параметров чека на «Полный расчет», помните о бухгалтерском учете! Касса пробьет чек на наличные, и эти данные уйдут в налоговую. Однако в самой 1С счет 50 (Касса) и взаиморасчеты с контрагентом по документу РТУ автоматически не закроются. Бухгалтеру в конце дня все равно потребуется ввести в системе документ Приходный кассовый ордер на общую сумму таких продаж за день (уже без пробития чеков на кассе), чтобы закрыть дебиторскую задолженность покупателей и свести баланс кассы.

---

Резюме

Мы подробно разобрали проблему появления признака «Передача в кредит» при интеграции ККТ с «1С:Управление торговлей 10.3». Подведем итоги:

← На главную