Как настроить автоматическое заполнение договора в поступлении безналичных ДС в 1С:УТ 11.4?

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

При ежедневной загрузке банковских выписок в 1С:Управление торговлей 11.4 много времени уходит на ручное указание основания платежа — договора, заказа или счета. Возникает закономерный вопрос: можно ли автоматизировать этот процесс, чтобы программа сама подставляла нужный договор в документ Поступление безналичных денежных средств? Стандартный функционал здесь ограничен, но давайте разберем несколько подходов, которые помогут решить эту задачу — от простых настроек до небольших доработок конфигурации.

Основная сложность заключается в том, что банк, передающий информацию о платеже, ничего не знает о том, как ведутся взаиморасчеты в вашей системе 1С. Единственный источник информации, который связывает платеж с конкретной сделкой — это текстовое поле "Назначение платежа". Именно его и заполняет ваш контрагент. Следовательно, большинство решений будет основано на анализе этого текста.

Решение 1: Анализ (парсинг) назначения платежа

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

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

  2. Использование регулярных выражений. Это более мощный и точный инструмент. Регулярные выражения позволяют задать шаблон для поиска. Например, можно создать шаблон, который будет искать конструкцию вида "дог. № [любые цифры] от [дата в формате ДД.ММ.ГГГГ]". Такой подход значительно снижает вероятность ошибки и позволяет обрабатывать более сложные варианты написания.

  3. Создание словаря синонимов. Чтобы сделать алгоритм еще умнее, можно заложить в него обработку различных вариантов написания ключевых слов. Например, программа должна понимать, что "дог.", "договор", "контракт", "счет-договор" — это одно и то же.

  4. Приоритезация оснований. Часто контрагент в назначении указывает сразу несколько документов: "Оплата по счету №123 от 01.01.2024 по договору №45-А от 15.12.2023". В 1С:УТ расчеты могут вестись не только по договорам, но и по заказам или накладным. Можно настроить алгоритм так, чтобы он искал основания в порядке приоритета:

    • Сначала ищем в строке номер заказа клиента. Если нашли — подставляем его.
    • Если заказ не найден, ищем номер счета на оплату.
    • И только если ничего из вышеперечисленного не найдено, ищем номер договора.

    Такая логика позволяет более точно определить объект расчетов.

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

Решение 2: Использование логики "единственного договора"

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

При загрузке платежа от известного контрагента система проверяет, сколько у него действующих договоров. Возможны следующие варианты алгоритма:

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

Решение 3: Организационные меры и шаблоны назначения платежа

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

Например, вы можете попросить их всегда указывать данные в виде специальных тегов:

//Договор:123-А от 01.01.2024//Счет:45//

Или в любом другом, удобном для вас формате. Наличие таких четких и неизменных тегов в строке назначения платежа максимально упрощает и удешевляет доработку по разбору этой строки. Программисту не придется гадать и использовать сложные алгоритмы — достаточно будет найти тег и извлечь его значение.

Решение 4: Альтернативные и штатные механизмы 1С

Помимо прямого заполнения договора, существуют и другие способы, которые помогают упорядочить расчеты.

Таким образом, хотя 1С:УТ 11.4 не предлагает готового "волшебного" решения, существует множество способов добиться автоматического заполнения договора. Рекомендуем начать с самых простых (логика единственного договора) и организационных мер, а для более сложных случаев привлекать программиста для настройки интеллектуального анализа назначения платежа.

← На главную