Как исправить задвоение назначения платежа при загрузке из 1С в Сбербанк Бизнес Онлайн?

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

Ситуация, когда при импорте платежных поручений из 1С в систему «Сбербанк Бизнес Онлайн» текст в поле «Назначение платежа» внезапно начинает повторяться дважды, является довольно распространенной технической проблемой. Чаще всего это происходит из-за обновлений на стороне банковского программного обеспечения, которое начинает некорректно интерпретировать стандартный файл обмена. Разберем подробно, почему это происходит и как исправить ситуацию различными способами.

Проанализируем причину возникновения ошибки

Для понимания сути проблемы рассмотрим структуру текстового файла (формата txt), который формирует 1С при выгрузке платежей. Согласно общепринятому стандарту обмена «1С:Предприятие – Клиент-Банк» (версии 1.02 и выше), информация о назначении платежа может передаваться двумя способами одновременно:

  1. Поле НазначениеПлатежа — это единая строка, которая может содержать до 210 символов.
  2. Поля НазначениеПлатежа1, НазначениеПлатежа2, НазначениеПлатежа3 и так далее — это та же самая информация, но разбитая на несколько строк (обычно по 35, 70 или 105 символов) для совместимости со старыми банковскими системами.

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

Способ 1: Ручная корректировка файла в Блокноте

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

  1. Выгрузим файл из 1С в обычный текстовый формат.
  2. Откроем полученный файл с помощью программы Блокнот (Notepad).
  3. Нажмем сочетание клавиш Ctrl+H (Замена) или воспользуемся поиском.
  4. Проанализируем структуру: если мы видим, что текст дублируется, нам необходимо удалить лишние строки. Как правило, достаточно удалить все строки, начинающиеся с НазначениеПлатежа1=, НазначениеПлатежа2= и так далее, оставив только основное поле НазначениеПлатежа=.
  5. Важный момент: при сохранении файла обязательно убедимся, что кодировка осталась Windows-1251 (ANSI). Если сохранить файл в UTF-8, банк не сможет распознать кириллицу, и вместо текста появятся «иероглифы».

Способ 2: Использование DirectBank (СберБизнес API)

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

Для настройки DirectBank в 1С проделаем следующее:

  1. Перейдем в раздел Банк и касса — Настройки обмена с банками.
  2. Создадим новую настройку, выбрав Сбербанк.
  3. Следуем инструкциям помощника подключения (потребуется логин и пароль от СберБизнес).

После активации этого механизма кнопка «Выгрузить» сменится на «Отправить в банк», и проблема с текстовыми полями исчезнет навсегда.

Способ 3: Автоматизированная очистка файла через PowerShell

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


$path = "C:\Exchange\export.txt"
$cleanPath = "C:\Exchange\export_clean.txt"
Get-Content $path | Where-Object { $_ -notmatch "НазначениеПлатежа[1-9]=" } | Set-Content $cleanPath -Encoding String

Данный скрипт считывает файл, находит все строки, содержащие нумерованные назначения платежа (от 1 до 9), исключает их и записывает «чистый» результат в новый файл. Обратите внимание, что параметр -Encoding String в PowerShell обычно соответствует системной кодировке ANSI, что и требуется для банка.

Способ 4: Изменение версии формата в настройках 1С

В некоторых конфигурациях 1С (например, УПП или Комплексная автоматизация) предусмотрена возможность выбора версии формата выгрузки. Попробуем изменить версию обмена:

  1. Зайдем в настройки параметров обмена с банком (в справочнике Банковские счета или через обработку выгрузки).
  2. Найдем поле Версия формата.
  3. Попробуем переключиться с версии 1.02 на 1.03 или наоборот. В разных версиях состав полей НазначениеПлатежа может отличаться, что иногда помогает «подстроиться» под текущие требования банковского фильтра.

Важное примечание: Как показывает практика, подобные проблемы на стороне Сбербанка часто носят временный характер и связаны с неудачными релизами их внутренних систем. Если вы столкнулись с этим массово, имеет смысл обратиться в техподдержку банка — часто они откатывают изменения в течение 1–2 рабочих дней после массовых жалоб клиентов.

← На главную