Почему платежное поручение выгружается в банк с префиксом из 1С:Комплексная автоматизация 2.4 и как это исправить?

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

Мы сталкиваемся с распространенной проблемой при выгрузке платежных поручений из программы 1С:Комплексная автоматизация 2.4 (версия 4.13.123) в клиент-банк. Пользователи замечают, что при выборе типа операции "оплата поставщику" номер документа получает префикс, например, "П" (образуя номер вида "0000-П0001"). Банковское программное обеспечение расценивает такой номер как некорректный и выдает ошибку при попытке загрузки. Разберем эту ситуацию подробно и найдем решение.

Понимание механизма префиксов в 1С

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

  1. Префикс организации: Используется для разделения документооборота разных юридических лиц, если учет ведется в одной информационной базе. Обычно состоит из двух символов и задается в карточке каждой организации. При печати или выгрузке документов такие префиксы, как правило, автоматически удаляются, поскольку наименование организации уже присутствует в других полях.
  2. Префикс информационной базы (ИБ): Применяется при настройке синхронизации данных между различными конфигурациями 1С или при использовании распределенных информационных баз (РИБ). Его основная задача — предотвратить дублирование номеров документов и кодов справочников, которые могли быть созданы в разных базах. Важно помнить, что изменение или удаление префикса ИБ может привести к тому, что нумерация всех документов начнется с нуля.
  3. Дополнительные пользовательские префиксы: В некоторых случаях в системе могут использоваться специфические префиксы для особых видов документов, например, для отдельной нумерации счетов-фактур на аванс. В рассматриваемом нами случае, пользователь столкнулся с префиксом "П" в номере платежного поручения, что является нестандартным поведением для типовой конфигурации при выгрузке в банк.

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

Анализ проблемы: почему префикс появляется в выгрузке?

Основная сложность заключается в том, что банк-клиент, как правило, имеет строгие требования к формату номера платежного документа. Любые лишние символы, такие как префиксы, приводят к ошибкам при импорте. В нашем случае, пользователь столкнулся с тем, что в файле выгрузки формата Клиент-Банк (например, 1CClientBankExchange.xml или .txt) номер платежного поручения содержится вместе с префиксом, что неприемлемо для банка. Рассмотрим пример такой некорректной выгрузки:


СекцияДокумент=Платежное поручение
Номер=0000-П00001
Дата=...

При нормальной работе типового механизма обмена, номер должен выглядеть значительно проще, без лишних символов, например:


СекцияДокумент=Платежное поручение
Номер=133
Дата=19.02.2021

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

Диагностика и поиск решения

Для решения данной проблемы, нам нужно последовательно проверить несколько аспектов конфигурации и обмена данными. Проведем детальную диагностику по шагам.

  1. Проверка содержимого файла выгрузки:

    Первым шагом всегда является проверка самого файла, который формируется для клиент-банка. Необходимо убедиться, что префикс действительно присутствует в поле "Номер". Как правило, это можно сделать, открыв файл выгрузки в любом текстовом редакторе (например, Блокнот или Notepad++). Автор темы в сообщении 4 подтвердил, что именно такой номер с префиксом и выгружается: Номер=0000-П00001. Если бы в файле не было префиксов, как в сообщении 2, то проблема, скорее всего, была бы на стороне банка или в самой конфигурации 1С до формирования файла.

  2. Анализ типовой функции обработки номеров:

    В конфигурациях на платформе 1С:Предприятие 8, особенно тех, что используют Библиотеку Стандартных Подсистем (БСП), для корректной обработки номеров документов при их выводе на печать или выгрузке используется функция ПрефиксацияОбъектовКлиентСервер.НомерНаПечать. Эта функция предназначена для того, чтобы "очистить" номер документа от всех служебных префиксов (префикс организации, префикс ИБ, лидирующие нули), оставляя только значимую часть номера. Она может иметь параметры, позволяющие указать, какие префиксы следует удалять.

    Мы рекомендуем проанализировать, как эта функция используется в модуле менеджера обработки "КлиентБанк". Вы можете выполнить поиск по наименованию этой функции в конфигураторе, чтобы определить места ее вызова. Если она не используется, или используется некорректно (например, с неверными параметрами), это может быть причиной проблемы.

    Пример возможного использования функции для получения номера без префиксов (упрощенно):

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

    Если бы функция НомерНаПечать работала корректно, она должна была бы вернуть "1" из "0000-П0001" или "133" из "0000-133". Если вызов этой функции возвращает номер с префиксом, это означает, что либо функция модифицирована, либо она неверно применяется.

  3. Проверка настроек префиксов информационной базы:

    В некоторых случаях проблемы с выгрузкой префиксов могут быть связаны с флажком "Печатать префиксы" в регистре сведений "Префиксы информационных баз". Убедитесь, что этот флажок снят, если он присутствует и активирован. Хотя это чаще относится к печати, иногда такие настройки могут влиять и на формирование номера для выгрузки. Также проверьте, задан ли вообще префикс базы (сообщение 5), хотя использование базы без префикса само по себе ошибкой не является (сообщение 6), но при его наличии некорректные настройки могут привести к проблемам.

  4. Анализ сторонних доработок и расширений:

    Как показал опыт автора темы (сообщение 9), одной из наиболее частых причин подобных отклонений от типового поведения являются сторонние доработки или расширения конфигурации. Эти изменения могут переопределять стандартные процедуры формирования номеров или функции выгрузки в клиент-банк, внося свои коррективы. В результате, типовая логика удаления префиксов может быть нарушена. Например, расширение может "перехватывать" вызов функции ПрефиксацияОбъектовКлиентСервер.НомерНаПечать или модифицировать сам процесс выгрузки, вставляя префикс.

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

    1. Откройте список расширений в режиме Предприятия (обычно через меню "Администрирование" -> "Печатные формы, отчеты и обработки" -> "Расширения").
    2. Последовательно отключайте расширения (снимайте флажок "Активно") и после каждого отключения перезапускайте программу 1С и пробуйте выполнить выгрузку платежного поручения.
    3. Если после отключения одного из расширений проблема исчезла, значит, вы нашли виновника. Далее следует либо адаптировать расширение, скорректировав его код, либо полностью отказаться от него, если его функционал не критичен или может быть реализован иным способом.

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

  5. Актуальность конфигурации и настройки обмена:

    Убедитесь, что ваша конфигурация 1С:Комплексная автоматизация 2.4 обновлена до актуального релиза. Иногда ошибки в работе механизмов обмена могут быть исправлены в новых версиях. Также проверьте настройки обмена с банком в разделе "Банк и Касса" — "Платежные поручения" — "Настройки обмена с банком". Убедитесь, что правильно выбрана программа банка (например, "Сбербанк Бизнес Онлайн") и кодировка файла (часто это "Windows-1251" или "UTF-8"). Некорректные настройки могут привести к неверному формированию файла обмена.

  6. Ограничения на количество символов в клиент-банке:

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

  7. Проверка функциональности "Согласование платежей":

    В некоторых последних релизах 1С (например, начиная с версии 3.0.158) была добавлена функциональность согласования платежей. Если эта функция активирована, то в банк могут отправляться только те платежные поручения, которые прошли процедуру согласования. Хотя это напрямую не связано с префиксами в номере, это может быть одной из причин, по которой платежи не уходят. Если согласование не требуется, эту настройку можно деактивировать в разделе "Главное" – "Функциональность" – "Банк и Касса". Убедитесь, что неактивированная функция согласования не препятствует выгрузке документов.

Заключение

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

← На главную