Как решить ошибку обмена между УТ 11.1 и БП 3.0 КОРП: "Поле объекта не обнаружено (ОбменУправлениеТорговлейБухгалтерияПредприятия30)"

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

При переходе с конфигурации 1С:Бухгалтерия Предприятия 3.0 (БП 3.0) на её КОРП-версию (БП 3.0 КОРП) часто возникают сложности при настройке обмена данными с другими конфигурациями, особенно со старыми релизами, такими как 1С:Управление торговлей 11.1 (УТ 11.1). Одной из распространённых проблем является ошибка "Поле объекта не обнаружено (ОбменУправлениеТорговлейБухгалтерияПредприятия30)", которая проявляется при загрузке файла обмена из УТ в обновленную БП КОРП. Давайте вместе разберем причины этой ошибки и найдем эффективное решение.

В чем заключается суть проблемы?

Основная причина возникновения данной ошибки кроется в различиях именований планов обмена между старой БП 3.0 и новой БП 3.0 КОРП, а также в особенностях старых механизмов обмена УТ 11.1.

  1. Изменение имени плана обмена в БП КОРП: При стандартном обновлении базовой конфигурации 1С:Бухгалтерия Предприятия 3.0 до версии КОРП, система 1С автоматически создает новый план обмена с именем ОбменУправлениеТорговлейБухгалтерияПредприятияКОРП30, который предназначен для синхронизации с УТ. При этом, по умолчанию, старый план обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30, который использовался для обмена с обычной БП 3.0, может быть удален из конфигурации и из соответствующих регистров сведений.

  2. Жесткие ссылки в УТ 11.1: Конфигурация УТ 11.1, особенно её ранние и нетиповые релизы, могла содержать жестко прописанные ссылки на конкретное имя плана обмена – ОбменУправлениеТорговлейБухгалтерияПредприятия30. Эти ссылки могут находиться в различных частях конфигурации УТ, например, в запросах, модулях или настройках, которые формируют данные для выгрузки. Даже если вы обновите правила конвертации данных (КД2) для работы с ОбменУправлениеТорговлейБухгалтерияПредприятияКОРП30, УТ 11.1 всё равно будет включать в файл выгрузки метаданные, использующие старое имя плана обмена.

Таким образом, когда УТ 11.1 выгружает файл, содержащий ссылки на ОбменУправлениеТорговлейБухгалтерияПредприятия30, и мы пытаемся загрузить этот файл в БП КОРП, где такой план обмена уже отсутствует, система выдает ошибку "Поле объекта не обнаружено (ОбменУправлениеТорговлейБухгалтерияПредприятия30)".

Где искать проблемные ссылки в УТ 11.1?

В ходе анализа проблемы мы выяснили, что даже при обновлении правил обмена через Конвертацию Данных 2.0 (КД2) проблема сохраняется. Это указывает на то, что источник ошибки находится не только в правилах, но и в самой конфигурации УТ. Рассмотрим пример запроса, который был обнаружен в файле выгрузки из УТ и который содержит явную ссылку на старый план обмена:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
    | ОбменУправлениеТорговлейБухгалтерияПредприятия30.ДатаНачалаВыгрузкиДокументов
    |ИЗ
    | ПланОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30 КАК ОбменУправлениеТорговлейБухгалтерияПредприятия30
    |ГДЕ
    | ОбменУправлениеТорговлейБухгалтерияПредприятия30.Наименование = ""ПЛ""";
РезультатЗапроса = Запрос.Выполнить;

Подобные запросы могут быть в общих модулях, модулях менеджеров обмена, обработках или даже в каких-либо макетах. Их наличие приводит к тому, что УТ всегда пытается обратиться к плану обмена с именем ОбменУправлениеТорговлейБухгалтерияПредприятия30.

Решение проблемы: сохранение старого плана обмена в БП КОРП

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

  1. Шаг 1: Создание резервной копии

    Перед началом любых манипуляций с базами данных критически важно создать полные резервные копии обеих информационных баз – как УТ 11.1, так и БП 3.0 (перед обновлением) или БП 3.0 КОРП (если обновление уже произошло). Это позволит нам вернуться к исходному состоянию в случае непредвиденных проблем.

  2. Шаг 2: Обновление БП до КОРП-версии с сохранением старого плана обмена

    Если вы еще не обновили БП до КОРП-версии или планируете провести обновление заново, этот шаг является ключевым:

    1. Запустите процесс обновления конфигурации БП 3.0 до версии КОРП. Это можно сделать через режим "Обновление конфигурации базы данных" в конфигураторе.

    2. На одном из этапов обновления система предложит удалить устаревшие объекты. Вам будет представлен список объектов, подлежащих удалению.

    3. Внимательно просмотрите этот список и найдите в нем план обмена с именем ОбменУправлениеТорговлейБухгалтерияПредприятия30.

    4. Снимите флажок, отвечающий за удаление этого плана обмена. Это гарантирует, что объект метаданных ПланОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30 останется в вашей обновленной конфигурации БП КОРП.

    5. Продолжите и завершите процесс обновления.

    После успешного обновления, в конфигурации БП КОРП у вас должно быть два плана обмена, связанных с УТ: ОбменУправлениеТорговлейБухгалтерияПредприятия30 (старый, который мы сохранили) и ОбменУправлениеТорговлейБухгалтерияПредприятияКОРП30 (новый, созданный при обновлении).

  3. Шаг 3: Настройка правил обмена для сохраненного плана

    Теперь, когда у нас есть необходимый план обмена в БП КОРП, нам нужно "подложить" в него актуальные правила:

    1. Проверка регистра сведений "Правила обмена для синхронизации данных":

      Откройте базу БП КОРП и проверьте регистр сведений Правила обмена для синхронизации данных. После обновления, данные по старому плану обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 могли быть удалены или перенесены. Нам важно убедиться, что для этого плана обмена есть возможность загрузить или создать записи с правилами.

    2. Подготовка правил обмена в Конвертации Данных 2.0 (КД2):

      • Запустите Конвертацию Данных 2.0 (КД2).

      • Загрузите в неё правила обмена, которые вы использовали для синхронизации между УТ 11.1 и обычной БП 3.0. Эти правила, скорее всего, представляют собой файлы ExchangeRules.xml и CorrespondentExchangeRules.xml.

      • Выгрузите метаданные из вашей обновленной БП КОРП (из конфигуратора, меню "Файл" -> "Сохранить конфигурацию в файл..." или через специальные обработки выгрузки метаданных) и загрузите их в КД2 как конфигурацию-приемник. Это очень важный шаг, так как метаданные КОРП-версии могут отличаться от обычной БП.

      • После загрузки метаданных, внимательно просмотрите и обновите соответствия объектов и свойств в КД2, чтобы они корректно работали с новой структурой БП КОРП. Это может потребовать доработки правил, если есть значительные изменения в метаданных.

      • Сохраните обновленные правила конвертации в новые файлы ExchangeRules.xml и CorrespondentExchangeRules.xml.

    3. Загрузка обновленных правил в БП КОРП:

      В базе БП КОРП откройте помощник настройки синхронизации данных или соответствующую форму, где происходит загрузка правил обмена. Загрузите только что созданные обновленные правила обмена, но привяжите их к сохраненному старому плану обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30. Это можно сделать в разделе "Настройки и администрирование" -> "Синхронизация данных" -> "Настройки синхронизации данных", выбрав нужную настройку обмена и загрузив правила в соответствующий регистр.

  4. Шаг 4: Проведение обмена и тестирование

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

    1. В конфигурации УТ 11.1 произведите выгрузку данных. УТ будет продолжать формировать файл обмена, в котором присутствуют ссылки на ОбменУправлениеТорговлейБухгалтерияПредприятия30.

    2. В конфигурации БП КОРП произведите загрузку этого файла обмена.

    Теперь, благодаря тому, что план обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 присутствует в конфигурации БП КОРП и к нему привязаны актуальные правила обмена (с учетом метаданных КОРП-версии), обмен должен пройти успешно, и ошибка "Поле объекта не обнаружено" больше не появится.

Что делать, если БП КОРП уже обновили и старый план обмена удален?

Если вы столкнулись с проблемой уже после того, как БП КОРП была обновлена, и старый план обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 был удален, у вас есть несколько вариантов:

  1. Восстановление из резервной копии: Если у вас есть резервная копия БП до обновления, вы можете восстановить её, провести обновление заново, следуя Шагу 2.

  2. Внесение изменений в конфигурацию БП КОРП: В крайнем случае, можно рассмотреть вариант добавления плана обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 вручную в конфигурацию БП КОРП (через конфигуратор, "Общие" -> "Планы обмена" -> "Добавить"). Однако, этот путь более сложен и может потребовать значительной доработки, так как нужно будет обеспечить его корректное функционирование с существующими механизмами обмена и, возможно, обновить метаданные в УТ, если это возможно, что не всегда просто для УТ 11.1.

Дополнительные рекомендации

Решение с сохранением старого плана обмена является рабочим вариантом для ситуаций, когда старая УТ 11.1 не может быть легко модифицирована или обновлена. Оно позволяет создать "мостик" между устаревшим кодом УТ и современной конфигурацией БП КОРП.

← На главную