Как исправить ошибку 1010 при прямом обмене (DirectBank) с банком ВТБ в 1С:Бухгалтерия

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

При работе с технологией DirectBank пользователи часто сталкиваются с ситуацией, когда отлаженный механизм обмена с банком ВТБ внезапно перестает работать. Характерным признаком проблемы является сообщение об ошибке с кодом 1010 и техническим описанием: The element 'PayRequest' in namespace 'http://directbank.1c.ru/XMLSchema' has incomplete content. List of possible elements expected: 'PaymentCondition'. В данной статье мы подробно разберем, почему возникает эта ошибка, как она связана с обновлением систем банка и какие шаги необходимо предпринять для восстановления обмена.

Анализ причины ошибки: почему схема XML стала невалидной

Для начала проанализируем текст ошибки. Сообщение указывает на то, что банковский сервер ожидает в структуре XML-пакета элемент PaymentCondition (Условие оплаты), но программа 1С его не передает. Это типичная ситуация несоответствия версий форматов. В конце 2021 года банк ВТБ начал масштабный переход на новую платформу «ВТБ Бизнес». В рамках этого перехода были изменены требования к структуре передаваемых данных. Элемент PaymentCondition, который ранее мог быть необязательным или отсутствовать в старых версиях протокола, стал критически важным для валидации документа на стороне банковского шлюза.

Разберем основные факторы, приводящие к сбою:

  1. Смена платформы банка: Переход на «ВТБ Бизнес» требует смены протоколов. Для других финансовых организаций, например, Сбербанка, также существует автоматическая загрузка выписки в 1С:Бухгалтерию (есть готовая автоматическая загрузка банковских выписок по расписанию).
  2. Устаревшая версия формата: В настройках интеграции 1С может быть жестко задана старая версия формата обмена (например, 2.0), в то время как банк требует версию 2.3.1 и выше.
  3. Отсутствие криптографических компонентов: Новая платформа банка использует специфические алгоритмы шифрования, требующие наличия внешней компоненты VPNKey-TLS.

Решение 1: Обновление версии формата и правил обмена

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

Выполним следующие шаги:

  1. Перейдем в раздел Банк и касса — Настройки обмена с банками (Настройки загрузки выписки помогут правильно определить договор и вид операции, см. загрузка банковских выписок из Excel в 1С).
  2. Откроем текущую настройку обмена с банком ВТБ.
  3. Внутри карточки настройки необходимо найти поле, отвечающее за версию формата. Часто оно скрыто в дополнительных параметрах или в выпадающем списке выбора правил.
  4. Проанализируем доступные варианты. Если установлена минимальная версия, попробуем поднять её до актуальной (на момент инцидентов это версия 2.3.1 или выше).
  5. Если ручное изменение недоступно, воспользуемся кнопкой «Обновить настройки обмена». Программа сделает запрос к серверу банка и попытается получить актуальный XML-файл настроек.

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

Решение 2: Установка внешней компоненты VPNKey-TLS

Одной из наиболее неочевидных проблем является требование банка использовать специализированную компоненту VPNKey-TLS для организации защищенного канала связи. Разберем, как это работает. В отличие от стандартных методов TLS, реализованных в операционной системе Windows, ВТБ применяет решение от компании «Фактор-ТС».

Если у организации закончилась подписка ИТС, 1С не сможет автоматически скачать эту компоненту с портала. В этом случае мы должны действовать следующим образом:

  1. Не ищите компоненту на сторонних форумах, так как там часто отсутствуют файлы манифеста, без которых 1С не сможет зарегистрировать библиотеку.
  2. Зайдите в личный кабинет клиента на стороне банка ВТБ. В разделе «Программное обеспечение» или «Интеграция с 1С» банк предоставляет официальный инсталлятор.
  3. Запустите установку от имени администратора. Инсталлятор пропишет необходимые DLL в системе и зарегистрирует COM-объекты.
  4. После установки перезапустите 1С и повторите попытку настройки обмена. Программа должна автоматически подхватить установленную компоненту.

Решение 3: Проверка протоколов TLS и версии платформы

Иногда корень проблемы кроется не в самой конфигурации, а в технологической платформе 1С. Банк ВТБ постепенно отказывается от поддержки устаревших протоколов TLS 1.0 и 1.1. Для корректной работы с TLS 1.2 и выше нам потребуется современная версия платформы.

Проанализируем технические требования:

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


Процедура ОбработатьРезультатВыполненияОперации(Результат, Параметры)
    Если Результат.Ошибка Тогда
        ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Получена ошибка из банка (%1). Код ошибки %2. Внутренняя ошибка: %3'"),
            Результат.ДатаОшибки,
            Результат.КодОшибки,
            Результат.ОписаниеОшибки);
        ВызватьИсключение ТекстОшибки;
    КонецЕсли;
КонецПроцедуры

Как мы видим, 1С просто транслирует текст, пришедший от банковского сервера. Если вы видите ошибку 1010 (поможет мониторинг ошибок в журнале регистрации), значит, соединение с банком успешно установлено (криптография работает), но данные, которые подготовила 1С, не проходят проверку на стороне банка. Это лишний раз подтверждает необходимость обновления именно настроек (версии правил) внутри программы.

Пошаговый алгоритм восстановления обмена

  1. Полное пересоздание настройки: Если обновление существующей настройки не помогает, попробуйте пометить старую настройку на удаление и создать новую «с нуля». При создании выберите вариант «ВТБ Бизнес» (не выбирайте старые пункты, если они остались в списке).
  2. Логирование: Включите Журнал регистрации в 1С и посмотрите полный текст XML-пакета.
  3. Связь с банком: Если после обновления формата до последней версии ошибка сохраняется, обратитесь в техподдержку ВТБ с конкретным вопросом: "Для какого типа документа на новой платформе стал обязательным тег PaymentCondition?". Иногда банк требует заполнения специфических реквизитов в платежном поручении (например, код срочности), которые 1С не заполняет по умолчанию.
  4. Версия конфигурации: Убедитесь, что ваша 1C:Бухгалтерия 3.0 обновлена до актуального релиза. Исправления схем DirectBank под требования ВТБ выходили в оперативных обновлениях в конце 2021 — начале 2022 года.

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

← На главную