При ведении розничной и оптовой торговли часто возникает ситуация, когда клиенты оплачивают товары разными безналичными способами. Одни рассчитываются картой через POS-терминал на кассе (эквайринг), другие — переводят денежные средства напрямую на расчетный счет организации через банк (например, по квитанции или через мобильное приложение). В программе 1С:Управление торговлей (редакция 11) обе эти операции регистрируются как безналичные оплаты. При пробитии чеков на кассовом аппарате (ККТ) в обоих случаях выводится тип оплаты "БЕЗНАЛИЧНЫМИ".
В результате при снятии Z-отчета (отчета о закрытии смены) и в личном кабинете ОФД все эти суммы суммируются в один общий итог. Бухгалтеру становится крайне сложно сверять фактически поступившие на расчетный счет деньги со сменными отчетами ККТ. Выясним, почему возникает эта проблема, и разберем пошагово, как настроить раздельный учет этих оплат на ККТ и в программе 1С.
Проанализируем требования нормативной базы. Согласно Федеральному закону № 54-ФЗ и действующим форматам фискальных документов (ФФД 1.05, 1.1, 1.2), кассовый аппарат поддерживает строго ограниченное количество фискальных признаков способов оплаты. В ОФД и ФНС передается только 5 базовых типов оплаты:
С точки зрения законодательства, и оплата банковской картой через POS-терминал, и оплата по QR-коду через СБП, и платежное поручение от физического лица на расчетный счет — все это относится исключительно к тегу 1081 "Безналичными". Именно поэтому разделить их на уровне ОФД или стандартных типов оплаты ККТ невозможно. Любое переименование типов оплат в таблицах ККТ не даст результата для фискального отчета: драйвер кассы все равно передаст эти транзакции под одним безналичным тегом.
Тем не менее, решить задачу локального разделения итогов для бухгалтерии возможно. Для этого мы применим механизм секций (отделов) ККТ. Мы настроим ККТ таким образом, чтобы при закрытии смены распечатывался дополнительный отчет по отделам, а в 1С доработаем передачу номера отдела в зависимости от типа первичного документа.
---
Рассмотрим порядок настройки кассового аппарата на примере популярного фискального регистратора ШТРИХ-М-01Ф. Нам необходимо запрограммировать названия отделов и включить печать отчета по отделам при закрытии смены.
Розница / Эквайринг;Оплата на Р/С (для чеков из документов поступления безналичных ДС).Печать отчета по отделам или аналогичное). Установим значение этого параметра в положение "Включено".После выполнения этих настроек ККТ при закрытии смены (Z-отчете) или при снятии X-отчета будет автоматически выводить на чековую ленту подробную «портянку» с итогами продаж отдельно по Отделу 1 и Отделу 2. Теперь перейдем к доработке программы 1С, чтобы она научилась правильно распределять продажи по этим отделам.
---
По умолчанию 1С отправляет все чеки на одну дефолтную секцию (как правило, это Секция 1 или 0). Нам нужно сделать так, чтобы при пробитии чека из документа "Поступление безналичных ДС" программа отправляла данные на Секцию 2, а при розничной продаже через "Чек ККМ" или "Эквайринговую операцию" — на Секцию 1.
Для реализации этого механизма воспользуемся расширением конфигурации. Нам потребуется скорректировать формирование структуры XML-пакета чека CheckPackage, которая передается драйверу ККТ через библиотеку подключаемого оборудования (БПО).
Рассмотрим пример программного кода, который можно внедрить в процедуру формирования позиций фискального чека:
&Вместо("СформироватьПакетЧека")
Функция Мой_СформироватьПакетЧека(ДокументСсылка, ПараметрыОтправки)
// Вызываем стандартный механизм формирования пакета
ПакетЧека = ПродолжитьВызов(ДокументСсылка, ПараметрыОтправки);
// Определяем номер отдела (секции) на основе типа документа-основания
НомерОтдела = 1; // По умолчанию отправляем на розничную секцию
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПоступлениеБезналичныхДенежныхСредств") Тогда
НомерОтдела = 2; // Перевод напрямую на расчетный счет
КонецЕсли;
// Модифицируем XML-структуру пакета, прописывая Department в позиции
Если ПакетЧека.Свойство("Positions") Тогда
Для Каждого Позиция Из ПакетЧека.Positions Цикл
Позиция.Вставить("Department", НомерОтдела);
КонецЦикла;
КонецЕсли;
Возврат ПакетЧека;
КонецФункции
Проанализируем логику работы этого кода. При вызове команды печати чека система определяет тип документа-основания ДокументСсылка. Если инициатором печати выступает документ ПоступлениеБезналичныхДенежныхСредств, переменной НомерОтдела присваивается значение 2. Затем код обходит коллекцию товарных позиций Positions в структуре чека и принудительно устанавливает атрибуту Department значение нашей целевой секции.
На уровне XML-пакета, передаваемого в драйвер кассы, строка позиции товара примет следующий вид:
<Position Name="Оплата за товар" Price="15000.00" Quantity="1" Department="2" ... />
---
После проведения настроек оборудования и применения расширения в 1С проведем тестовые операции, чтобы убедиться в правильности разделения потоков денежных средств:
При закрытии смены (Z-отчете) кассир получит бумажную ленту, на которой будут четко разграничены эти два финансовых потока. Бухгалтер сможет легко сопоставить общую сумму по Отделу 2 с банковской выпиской по расчетному счету за день, а сумму по Отделу 1 — с отчетом банка-эквайера по терминальным транзакциям.
Использование механизма секций (отделов) ККТ в сочетании с несложной доработкой 1С является оптимальным решением, которое полностью соответствует требованиям 54-ФЗ и одновременно закрывает все потребности внутреннего управленческого и бухгалтерского учета предприятия.