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