Почему не переносятся банковские счета контрагентов при переходе с УПП на ERP 2.5 и как это исправить?

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

Переход с конфигурации Управление производственным предприятием (УПП) на ERP Управление предприятием 2.5 — это сложный процесс, требующий глубокого понимания архитектурных различий обеих систем. Одной из часто встречающихся проблем является ситуация, когда при выгрузке справочника Контрагенты через типовые правила обмена данные о банковских счетах попросту «теряются», хотя все необходимые галочки в настройках установлены. Разберем подробно, почему это происходит и как настроить корректный перенос данных.

Использование универсальной обработки обмена вместо «Помощника перехода»

Первое, на что стоит обратить внимание, — это инструмент, который используется для выгрузки. Рассмотрим ситуацию: типовой «Помощник перехода», встроенный в конфигурацию, зачастую имеет жестко зашитую логику, которая оптимизирована под стандартные сценарии. Если ваша конфигурация УПП была доработана (а это встречается в 90% случаев), помощник может игнорировать кастомные поля или некорректно интерпретировать связи между объектами.

Проанализируем рекомендации опытных специалистов: для детальной отладки и гарантированного переноса данных следует использовать обработку УниверсальныйОбменВФорматеXML. В отличие от помощника, эта обработка позволяет:

  1. Видеть полную структуру правил выгрузки (ПВД) и правил конвертации объектов (ПКО).
  2. Выгружать данные выборочно, вплоть до одного конкретного объекта для теста.
  3. Получать детальные сообщения об ошибках непосредственно в процессе выгрузки и загрузки.
  4. Использовать внешние файлы правил, которые можно оперативно подправить в конфигурации Конвертация данных 2.1.

Важно помнить, что для работы с ERP 2.5 рекомендуется использовать версию обработки не ниже 2.1.8. Это связано с изменениями в платформенных механизмах работы с XML и требованиями к безопасности.

Проверка иерархии правил и подчиненных справочников

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

В списке правил выгрузки найдите объект Справочник.Контрагенты. Обратите внимание, что подчиненные справочники, такие как БанковскиеСчета (или БанковскиеСчетаКонтрагентов в зависимости от версии правил), могут находиться внутри иерархического списка. Даже если на уровне заголовка стоит галочка, убедитесь, что само правило для счетов активно и не содержит установленных фильтров по умолчанию.

Проверьте настройки ПКО (Правила конвертации объектов). Иногда в правилах для банковских счетов установлен флаг «Выгружать только ссылку». Если этот флаг активен, система передаст в файл обмена только уникальный идентификатор (GUID) счета, но не его реквизиты (номер счета, БИК, валюту). В результате в целевой базе объект не сможет быть создан, так как для записи нового счета не хватает обязательных данных.

Архитектурные различия: Партнеры и Контрагенты

Выясним одну из самых важных технических причин «пропажи» данных при загрузке в ERP 2.5. В УПП сущность Контрагент объединяет в себе и юридическое лицо, и управленческую сущность. В ERP эти понятия разделены:

  1. Партнеры — это управленческая сущность (холдинги, сетевые клиенты).
  2. Контрагенты — это регламентированная сущность (юридические лица с ИНН/КПП).

В ERP банковские счета привязываются именно к Контрагенту. Если в правилах обмена нарушена логика сопоставления или в настройках целевой базы ERP не включена опция «Независимо вести партнеров и контрагентов», загрузчик может просто «не найти» владельца для создаваемого банковского счета. Если владелец не определен или не прошел проверку на уникальность, подчиненный объект (счет) записан не будет.

Валидация данных и обязательные реквизиты

Проанализируем ситуацию с точки зрения контроля качества данных. ERP 2.5 предъявляет гораздо более жесткие требования к заполнению реквизитов, чем старая УПП. Рассмотрим основные моменты, из-за которых объект может не пройти загрузку:

Справочник «Банки» и классификатор: Перед тем как переносить счета, мы должны убедиться, что в целевой базе заполнен справочник Банки. В правилах обмена загрузка банков обычно идет перед счетами. Если БИК, указанный в счете контрагента из УПП, отсутствует в ERP и не может быть создан (например, из-за отсутствия связи с классификатором), создание банковского счета будет отклонено платформой из-за незаполненного обязательного поля Банк.

Валютный учет: В ERP поле Валюта в банковском счете является обязательным. В УПП иногда допускалось наличие счетов с пустой валютой или валютой, которая не соответствует международному классификатору ISO. Если при переносе обработчик не сможет сопоставить валюту (например, руб. вместо RUB), объект БанковскийСчет не пройдет валидацию при записи.

Корректность номеров: При загрузке в ERP могут срабатывать проверки на количество знаков в расчетном счете (должно быть 20 символов). Если в УПП данные вносились с ошибками (лишние пробелы, неполные номера), типовые механизмы записи в ERP могут заблокировать создание такого объекта.

Техническая отладка через Журнал регистрации

Если выгрузка прошла без ошибок, а в ERP счета так и не появились, нам необходимо заглянуть «под капот» процесса загрузки. Часто ошибки записи объектов не выводятся в интерактивное окно сообщений пользователю, чтобы не прерывать массовый процесс обмена.

Рассмотрим алгоритм поиска причины:

  1. Запустите загрузку данных в ERP через УниверсальныйОбменВФорматеXML.
  2. Сразу после завершения (или в процессе) откройте Журнал регистрации (Администрирование — Обслуживание — Журнал регистрации).
  3. Установите отбор по событию «Данные.Ошибка записи».

Скорее всего, вы увидите записи вида: «Объект: Банковский счет ... не прошел проверку. Поле 'Банк' не заполнено» или «Поле 'Валюта' не заполнено». Это даст вам точный ответ на вопрос, почему данные не сохранились в базе.

Пример анализа XML-файла выгрузки

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


<Объект Ссылка="7c8d9e..." Тип="СправочникСсылка.БанковскиеСчетаКонтрагентов">
    <Свойство Имя="НомерСчета" Тип="Строка">
        <Значение>40702810000000001234</Значение>
    </Свойство>
    <Свойство Имя="Владелец" Тип="СправочникСсылка.Контрагенты">
        <Ссылка>
            <Свойство Имя="ИНН" Тип="Строка">
                <Значение>7701234567</Значение>
            </Свойство>
        </Ссылка>
    </Свойство>
    <Свойство Имя="Банк" Тип="СправочникСсылка.Банки">
        <Ссылка>
            <Свойство Имя="БИК" Тип="Строка">
                <Значение>044525225</Значение>
            </Свойство>
        </Ссылка>
    </Свойство>
</Объект>

Если в вашем XML-файле узел <Значение> для расчетного счета или БИКа пуст, значит, проблему нужно искать в коде правил обмена (ПКС — Правила конвертации свойств) в УПП. Возможно, там прописано условие, которое обнуляет данные при определенных обстоятельствах, или из-за доработок конфигурации стандартный путь к данным (например, через свойство Ссылка) перестал работать.

Рекомендации по доработке правил

Если конфигурация УПП сильно изменена, стандартные запросы в ПВД (Правилах выгрузки данных) могут работать некорректно. В этом случае мы можем прибегнуть к написанию небольшого обработчика в правилах обмена (событие «Перед выгрузкой» для ПКО банковских счетов).

Например, чтобы принудительно найти и выгрузить валюту, можно использовать подобную логику (псевдокод для Конвертации данных):


Если ЗначениеЗаполнено(Источник.ВалютаДенежныхСредств) Тогда
    Значение = Источник.ВалютаДенежныхСредств;
Иначе
    // Если валюта не задана, подставляем рубли по умолчанию для корректной записи в ERP
    Значение = Справочники.Валюты.НайтиПоКоду("643");
КонецЕсли;

Подводя итог, можно сказать, что решение проблемы всегда кроется в детальном анализе цепочки: Данные источника -> Правила выгрузки -> Содержимое XML -> Валидация в приемнике. Использование универсальных инструментов обмена значительно ускоряет этот процесс по сравнению с использованием закрытых «помощников».

← На главную