Как настроить корректную загрузку эквайринговых операций и расчет комиссии в 1С:Управление торговлей 11?

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

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

Выясним причину: почему не срабатывает поиск «по образцу»?

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

Проанализируем ситуацию, почему этот поиск часто дает сбой при эквайринге:

  1. Уникальный идентификатор платежа (УИП): Если банк включает в назначение платежа уникальный номер реестра или дату (например, «Оплата по договору эквайринга №123 от 10.10.2023»), строка назначения каждый раз становится уникальной. Система поиска по образцу не может найти точное совпадение, так как маска постоянно меняется.
  2. Наличие УИП (Код): Проверим, передает ли банк УИП. В текстовом файле выписки (формат 1С) это поле обычно называется Код или КодНазначенияПлатежа. Если 1С видит заполненный УникальныйИдентификаторПлатежа, она в первую очередь пытается найти конкретный документ-основание (Заказ клиента или Счет на оплату). Если поиск по коду не удается, система сбрасывает настройки на значения «по умолчанию», игнорируя созданные ранее образцы.
  3. Разные отправители: Банки-эквайеры могут перечислять средства через разные расчетные центры. Если ИНН или КПП отправителя в выписке меняются, образец, настроенный для одного подразделения банка, не будет применен к другому.

Разберем различия в логике УТ 11 и БП 8

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

Решение 1: Использование стандартного функционала «Отчет банка по эквайрингу»

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

  1. Вместо того чтобы пытаться выудить комиссию из банковской выписки, необходимо настроить загрузку электронных реестров, которые предоставляет банк. Эти реестры загружаются в документ Отчет банка по эквайрингу.
  2. В документе Поступление безналичных денежных средств указываем вид операции Поступление оплаты по эквайрингу.
  3. В поле Сумма указываем фактически пришедшую сумму, а в расшифровке платежа подбираем соответствующие отчеты банка.

Если же ваша цель — видеть комиссию сразу в выписке, как в БП, перейдем к более сложным методам.

Решение 2: Программная доработка парсера (Расширение)

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

Нам необходимо перехватить момент создания документа Поступление безналичных денежных средств и проанализировать текст назначения платежа. Посмотрим на пример кода, который может быть использован в расширении для модуля ОбменСБанкамиСлужебный или аналогичного (в зависимости от версии УТ):


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

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

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

Решение 3: Расчет комиссии по формуле

Чтобы реализовать автоматическое заполнение «Суммы услуг» (комиссии), как это реализовано в БП, можно добавить в расширение логику расчета. Рассмотрим, как это реализовать:

  1. Создадим в справочнике ЭквайринговыеТерминалы или в договоре контрагента дополнительный реквизит (через дополнительные сведения), где будем хранить процент комиссии.
  2. В момент загрузки выписки программа будет считывать этот процент.
  3. Проанализируем математическую модель: если в выписке пришла сумма 970 рублей, а комиссия составляет 3%, значит полная сумма была 1000 рублей.

Пример программного расчета:


ПроцентКомиссии = ТекущийОбъект.ЭквайринговыйТерминал.ПроцентКомиссии; // Условный путь к реквизиту
Если ПроцентКомиссии > 0 Тогда
    ОбщаяСумма = ТекущийОбъект.СуммаДокумента / (1 - ПроцентКомиссии / 100);
    ТекущийОбъект.СуммаУслуг = ОбщаяСумма - ТекущийОбъект.СуммаДокумента;
КонецЕсли;

Рекомендации по автоматизации процесса

Подведем итоги и проанализируем, какой путь выбрать именно вам:

  1. Если вы не хотите менять конфигурацию: Используйте стандартный механизм обучения системы. Очистите НазначениеПлатежа в образце от всех уникальных номеров и дат, оставив только статичный текст «Перечисление средств по договору эквайринга». Иногда требуется 3-5 ручных корректировок подряд, чтобы система запомнила выбор.
  2. Если у вас большой поток операций: Рекомендуем написать внешнюю обработку (как предложил один из участников форума), которая будет запускаться после стандартной загрузки и «причесывать» документы: менять вид операции, подставлять правильные статьи ДДС и рассчитывать комиссию по заранее заданным правилам в регистре сведений.
  3. Если важна точность до копейки: Не пытайтесь рассчитывать комиссию процентом в выписке. Настройте импорт Отчетов банка по эквайрингу. Это единственный способ в УТ 11 обеспечить полное соответствие управленческого и бухгалтерского баланса.

Таким образом, проблема с распознаванием эквайринговых операций в УТ 11 решается либо строгим соблюдением методологии (использование отчетов банка), либо небольшим программным «тюнингом» механизма загрузки. Надеемся, этот разбор помог вам определиться со стратегией автоматизации вашего учета! Для автоматического формирования отчетов по эквайрингу на основании поступлений можно использовать обработку создания отчетов банка по эквайрингу.

← На главную