Как оформить продажу по безналичному расчету в рознице в программе 1С:Торговля и склад 9.2?

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При работе в устаревшей, но все еще популярной конфигурации «1С:Торговля и склад 9.2» (на платформе 1С 7.7) пользователи часто сталкиваются с проблемой оформления розничных продаж по безналичному расчету (с использованием банковских карт/эквайринга). Исторически эта конфигурация создавалась в то время, когда оплата банковскими картами в розничных магазинах не была массовым явлением, поэтому типовые механизмы программы ориентированы преимущественно на наличный расчет.

В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем доступные пути ее решения и приведем конкретные рекомендации и примеры кода для доработки системы под современные требования учета и онлайн-касс (54-ФЗ).

Почему в типовой 1С 7.7 ТиС сложно оформить безналичную розницу?

В конфигурации «Торговля и склад 9.2» для оформления розничных продаж предусмотрены два основных пути:

  1. Документ «Чек ККМ». Данный документ предназначен для быстрой регистрации продаж на кассовом узле. Однако он не списывает партии товаров в момент проведения. Для окончательного списания остатков и закрытия смены требуется создать и провести документ «Отчет о розничных продажах».
  2. Документ «Реализация (розница)». Этот документ списывает товары и партии сразу в момент проведения. Его часто используют на оптово-розничных складах или в магазинах, где клиенту выписывают накладную непосредственно в офисе, после чего он идет оплачивать покупку на кассу.

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

---

Вариант решения №1: Использование стандартной цепочки с «Чек ККМ»

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

«Чек ККМ» (с признаком безналичной оплаты) -> «Закрытие смены» -> «Отчет о розничных продажах»

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

---

Вариант решения №2: Доработка документа «Реализация (розница)»

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

Разберем по шагам, как реализовать этот функционал:

Шаг 1. Добавление реквизита «ВидОплаты»

Для начала нам необходимо предоставить пользователю возможность выбирать, как именно будет оплачен товар. Для этого:

  1. Откроем конфигуратор и найдем документ РеализацияРозница.
  2. Добавим новый реквизит шапки документа:
    • Идентификатор: ВидОплаты
    • Тип: Перечисление.ВидыОплаты (или создадим новое перечисление с элементами Наличные и Безналичные).
  3. Вынесем этот реквизит на форму документа в виде поля выбора или переключателя.

Шаг 2. Доработка модуля формы и передачи параметров в ККТ

Самое важное — передать выбранный вид оплаты в обработку обслуживания ККТ, чтобы на чеке напечатался правильный тип платежа (электронные/безналичные), как того требует закон 54-ФЗ.

Для пробития чека в ТиС обычно используется вызов глобальной функции или обращение к драйверу ККМ. Проанализируем пример кода, который необходимо встроить в процедуру печати чека из документа Реализация (розница):


// Процедура печати фискального чека из документа
Процедура ПробитьФискальныйЧек()
    
    // Проверяем, заполнена ли табличная часть
    Если КоличествоСтрок() = 0 Тогда
        Предупреждение("Документ пустой! Нечего пробивать.");
        Возврат;
    КонецЕсли;

    // Инициализируем объект драйвера ККТ (на примере АТОЛ)
    Попытка
        Касса = СоздатьОбъект("AddIn.FPrnM45");
        Касса.УстройствоВключено = 1;
    Исключение
        Предупреждение("Ошибка подключения торгового оборудования! Проверьте связь с ККТ.");
        Возврат;
    КонецПопытки;

    // Входим в режим регистрации
    Касса.Режим = 1; 
    Касса.ВойтиВРежим();
    
    // Открываем чек продажи
    Касса.ТипЧека = 1; 
    Касса.ОткрытьЧек();

    // Переносим строки документа в чек ККТ
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Касса.НазваниеТовара = СокрЛП(Товар.Наименование);
        Касса.Цена = Цена;
        Касса.Количество = Количество;
        Касса.Отдел = 1;
        // Регистрируем позицию в ККТ
        Касса.Регистрация();
    КонецЦикла;

    // Передаем признак способа оплаты
    // В ККТ АТОЛ: ТипОплаты 1 - Наличные, ТипОплаты 2 - Безналичные (электронные)
    Если ВидОплаты = Перечисление.ВидыОплаты.Безналичные Тогда
        Касса.ТипОплаты = 2;
    Иначе
        Касса.ТипОплаты = 1;
    КонецЕсли;
    
    Касса.Сумма = Итог("Всего");
    Касса.Оплата();

    // Закрываем и фискализируем чек
    Касса.ЗакрытьЧек();
    
    // Отключаем устройство
    Касса.УстройствоВключено = 0;
    Сообщить("Чек успешно пробит!");

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

Важное примечание: Приведенный код является демонстрационным. В зависимости от используемой модели ККТ (Штрих-М, АТОЛ, Вики Принт) и версии установленного драйвера, индексы типов оплаты (параметр ТипОплаты) могут отличаться. Рекомендуем предварительно ознакомиться с документацией конкретного драйвера ККТ.

---

Технические нюансы интеграции с онлайн-кассами (ФФД 1.05 / 1.1 / 1.2)

При самостоятельной доработке печати чеков из 1С 7.7 крайне важно учитывать современные требования налогового законодательства. Простые обработки обслуживания прошлых лет не умеют передавать обязательные теги 54-ФЗ. Обратим внимание на следующие критические моменты:

Таким образом, организовать продажу по безналичному расчету в 1С:Торговля и склад 9.2 вполне реально. Вы можете пойти по пути стандартного ведения учета через Чек ККМ, либо кастомизировать документ Реализация (розница), дописав обработку передачи безналичного типа оплаты на ККТ.

← На главную