54-ФЗ: Как пробить чек при безналичной оплате от физического лица на расчетный счет в 1С:УПП 1.3?

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

Приветствуем вас! В практике ведения учета часто возникает ситуация, когда физическое лицо оплачивает товар или услугу напрямую со своего личного банковского счета на расчетный счет вашей организации. Бухгалтер видит это поступление при импорте выписки из клиент-банка в документе Платежное поручение входящее.

Согласно действующему законодательству (54-ФЗ), этот перевод является безналичным расчетом с физическим лицом, и организация обязана сформировать кассовый чек с признаком способа оплаты "БЕЗНАЛИЧНЫМИ" (тег 1081) и направить его покупателю на электронную почту или телефон. Однако при попытке сделать это в устаревшей конфигурации 1С:Управление производственным предприятием (УПП) ред. 1.3 пользователи сталкиваются с техническим тупиком: стандартные механизмы программы не приспособлены для фискализации обычных банковских выписок.

В этой статье мы подробно разберем, почему стандартные документы УПП 1.3 не подходят для этой задачи, проанализируем законодательные рамки и рассмотрим четыре практических варианта решения проблемы — от простых настроек без программирования до прямой интеграции кассы по HTTP-протоколу.

---

Почему стандартные документы в 1С:УПП 1.3 не работают?

Давайте проанализируем имеющийся инструментарий в программе и выясним, почему типовой функционал не решает нашу задачу:

  1. Документ Чек ККМ. Этот документ создавался исключительно для розничных продаж на кассовых узлах. В старых версиях УПП вид оплаты по умолчанию зашит как "Наличные". Даже при доработке интерфейса чек, пробитый из этого документа, уйдет на фискализацию с признаком наличного расчета, что будет грубым нарушением правил ФНС при безналичном переводе.
  2. Документ Оплата от покупателя платежной картой. Этот документ жестко завязан на механизмы эквайринга. Для его проведения требуется выбрать договор эквайринга, указать банк-эквайер и процент комиссии. В нашем же случае никакого договора интернет-эквайринга нет, деньги поступили напрямую на расчетный счет через платежное поручение.

Из-за этих ограничений ИТ-специалистам и бухгалтерам приходится искать обходные пути. Давайте детально разберем каждый из них.

---

Решение №1. Виртуальный эквайринг с нулевой комиссией (вариант без программирования)

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

  1. Создайте в справочнике Контрагенты виртуальный банк-эквайер (например, "Физические лица (безнал)").
  2. Оформите договор с этим контрагентом с видом договора "Прочее".
  3. В настройках эквайринга создайте схему оплаты, где укажите процент комиссии банка, равный 0%.
  4. При поступлении оплаты от физического лица на расчетный счет вводите документ Оплата от покупателя платежной картой, привязав его к нашему виртуальному договору эквайринга.
  5. Из этого документа вы сможете стандартно пробить чек на ККМ — в нем корректно зафиксируется безналичный тип оплаты (электронно).

Преимущества: Быстрый запуск, не требуются доработки конфигурации, чеки корректно уходят в ОФД с признаком безналичной оплаты.

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

---

Решение №2. Автоматизация процесса через внешнюю обработку

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

Рассмотрим примерную схему работы такой обработки:

  1. Программа перебирает документы Платежное поручение входящее за день.
  2. Выбираются только те платежные поручения, где плательщиком выступает физическое лицо.
  3. Для фиксации факта печати чека можно использовать поле "Комментарий" документа или механизм дополнительных свойств, записывая туда отметку "[Чек Пробит]".
  4. При запуске печати обработка программно обращается к подключенной ККТ через библиотеку подключаемого оборудования (БПО) и фискализирует сумму платежа с типом оплаты "Электронно".

Посмотрим на пример логики перебора документов на встроенном языке 1С:


Выборка = Документы.ПлатежноеПоручениеВходящее.Выбрать(НачалоПериода, КонецПериода);
Пока Выборка.Следующий() Цикл
    // Проверяем, является ли контрагент физическим лицом
    Если Выборка.Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
        // Проверяем, не был ли чек пробит ранее
        Если Найти(Выборка.Комментарий, "[Чек Пробит]") = 0 Тогда
            
            // Здесь вызывается процедура фискализации через БПО
            РезультатПечати = ПробитьЧекБезналичными(Выборка.Ссылка);
            
            Если РезультатПечати Тогда
                ОбъектППВ = Выборка.ПолучитьОбъект();
                ОбъектППВ.Комментарий = ОбъектППВ.Комментарий + " [Чек Пробит] " + ТекущаяДата();
                ОбъектППВ.Записать(РежимЗаписиДокумента.Запись);
            КонецЕсли;
            
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

---

Решение №3. Прямая интеграция с драйвером ККТ через Web-сервер (JSON-задания)

Поскольку конфигурация УПП 1.3 признана устаревшей и фирма "1С" постепенно прекращает ее поддержку, обновление встроенной Библиотеки подключаемого оборудования (БПО) под новые требования ФФД (например, ФФД 1.2) и новые драйверы ККТ может стать настоящей головной болью для программиста.

Современные драйверы ККТ (например, Атол ДТО 10) имеют встроенный веб-сервер, который может принимать фискальные задания в формате JSON по обычному протоколу HTTP. Это позволяет полностью отказаться от устаревшей БПО внутри 1С и отправлять данные на кассу напрямую.

Давайте проанализируем пример кода, который формирует JSON-задание на продажу (тип оплаты "электронно") и отправляет его на локальный веб-сервер кассы:


// Пример отправки JSON-задания на веб-сервер драйвера Атол 10 из 1С
Запрос = Новый HTTPЗапрос("/atolsrv/devices/1/tasks");
Запрос.Заголовки.Вставить("Content-Type", "application/json");

// Формируем структуру JSON-запроса
ТелоЗапроса = "{
|  ""uuid"": """ + Строка(Новый УникальныйИдентификатор) + """,
|  ""request"": [
|    {
|      ""type"": ""sell"",
|      ""taxationType"": ""osn"",
|      ""operator"": {
|         ""name"": ""Кассир-Операционист""
|      },
|      ""items"": [
|        {
|          ""type"": ""position"",
|          ""name"": ""Оплата по безналичному расчету"",
|          ""price"": " + Формат(СуммаДокумента, "ЧГ=0") + ",
|          ""quantity"": 1,
|          ""amount"": " + Формат(СуммаДокумента, "ЧГ=0") + ",
|          ""paymentMethod"": ""fullPayment"",
|          ""paymentObject"": ""payment"",
|          ""tax"": {
|             ""type"": ""vat20""
|          }
|        }
|      ],
|      ""payments"": [
|        {
|          ""type"": ""electronically"",
|          ""sum"": " + Формат(СуммаДокумента, "ЧГ=0") + "
|        }
|      ]
|    }
|  ]
|}";

Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8);

// Подключаемся к локальной службе веб-сервера Атол (порт по умолчанию 16732)
Соединение = Новый HTTPСоединение("localhost", 16732);
Попытка
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    Если Ответ.КодСостояния = 200 Тогда
        ЗаписьЖурналаРегистрации("ККМ", УровеньЖурналаРегистрации.Информация, , , "Чек успешно отправлен в очередь ККТ.");
    Иначе
        ЗаписьЖурналаРегистрации("ККМ", УровеньЖурналаРегистрации.Ошибка, , , "Ошибка отправки: " + Ответ.ПолучитьТелоКакСтроку());
    КонецЕсли;
Исключение
    Предупреждение("Не удалось связаться с веб-сервером ККТ!");
КонецПопытки;

Преимущества: Полная независимость от обновлений БПО в 1С. Вы можете обновлять драйверы ККТ на рабочих местах, не опасаясь, что старая конфигурация УПП перестанет их понимать.

---

Решение №4. Вынос фискализации в "1С:Бухгалтерию 3.0" через синхронизацию

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

Начиная с версии БП 3.0.63, фирма "1С" реализовала штатную возможность пробития кассовых чеков непосредственно из документа Поступление на расчетный счет. Механизм работает следующим образом:

  1. Документы банковской выписки загружаются в УПП или напрямую в БП 3.0.
  2. Бухгалтер в БП 3.0 открывает документ Поступление на расчетный счет, полученный от физического лица.
  3. В верхней панели документа нажимает кнопку "Напечатать чек".
  4. Программа автоматически отправляет на подключенную кассу чек с типом оплаты "Безналично" и отправляет электронную копию покупателю через ОФД.

Более того, в современных релизах БП 3.0 реализовано пакетное пробитие чеков, которое позволяет автоматизировать фискализацию сотен входящих платежей в конце рабочего дня буквально в несколько кликов.

---

Резюме и рекомендации

Выбор конкретного решения зависит от ИТ-ландшафта вашей компании и планов по развитию систем автоматизации:

← На главную