Как восстановить обмен между ЗУП 3.1 и УПП 1.3 после обновления и почему не загружаются подразделения?

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

При обновлении конфигурации Зарплата и Управление Персоналом 3.1 (особенно на релизы выше 3.1.10) многие технические специалисты сталкиваются с внезапным отказом отлаженного обмена с Управлением производственным предприятием 1.3. Основные симптомы проблемы: данные выгружаются, но при загрузке в УПП справочники (Подразделения, Физические лица) игнорируются, а привычные функции обработки XML начинают возвращать НЕОПРЕДЕЛЕНО. В этой статье мы подробно разберем, почему это происходит и как настроить стабильную синхронизацию.

Проблема функции одАтрибут и изменения в чтении XML

Рассмотрим ситуацию, когда в правилах обмена (созданных в Конвертации данных 2.0) перестает работать функция одАтрибут(ЧтениеСсылки, одТипЧисло, "Нпп"). До обновления она корректно возвращала номер по порядку объекта из XML-файла, но теперь результатом всегда является НЕОПРЕДЕЛЕНО. Выясним причину этого поведения.

Проблема кроется не только в коде конфигурации, но и в поведении платформы 1С:Предприятие 8.3 (начиная с релизов 8.3.14 и выше). В новых версиях изменился внутренний алгоритм работы объекта ЧтениеXML. Когда вызывается чтение атрибутов, указатель внутри потока XML может смещаться иначе, чем в старых версиях. Если в XML-файле появляются новые пространства имен (namespaces) или изменяется порядок следования технических узлов, старая функция одАтрибут, зашитая в обработку ОбменДаннымиXML, теряет контекст.

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


// Пример более надежного поиска атрибута "Нпп"
Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
    Если ЧтениеXML.ЛокальноеИмя = "Нпп" Тогда
        ЗначениеНпп = ЧтениеXML.Значение;
        Прервать;
    КонецЕсли;
КонецЦикла;

Такой подход гарантирует, что мы переберем все доступные атрибуты текущего узла, независимо от их позиции и наличия дополнительных метаданных, внедренных новыми релизами ЗУП.

Конфликт форматов: почему формат 3.1 не подходит для УПП

Разберем вторую важную проблему: различие версий формата обмена. При использовании стандартной кнопки Синхронизация данных в современных версиях ЗУП 3.1 система автоматически пытается сформировать файл в формате 3.1. Однако конфигурация УПП 1.3 является "ретро-конфигурацией" и ее встроенные механизмы обмена рассчитаны на формат 2.0.

Выясним, почему это критично для справочников. В формате 2.0 структура ссылки выглядит прозрачно для старых обработок. В формате 3.1 (ориентированном на EnterpriseData) структура узлов СправочникСсылка существенно усложнена. Рассмотрим пример из сообщения пользователя, где виден флаг НеСоздаватьЕслиНеНайден="true". Это важный момент: если в УПП объект не найден по УникальномуИдентификатору (GUID), система, согласно этому флагу, просто пропускает объект, не пытаясь найти его по наименованию или коду.

Для корректной работы с УПП необходимо принудительно использовать формат 2.0. Если вручную через Универсальный обмен данными XML всё грузится хорошо, значит, проблема именно в способе вызова обмена через интерфейс синхронизации.

Настройка автоматической синхронизации через планы обмена

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

  1. Подготовка правил: Найдите актуальные правила обмена в каталоге установки ЗУП. Обычно они находятся по пути: .../1c/HRM/3_1_X_X/Обмены данными/Обмен с конфигурацией УПП 1.3/. Не используйте правила, "зашитые" внутри конфигурации, так как внешние файлы обновляются чаще и содержат исправления для новых версий платформы.
  2. Настройка в ЗУП: Перейдите в раздел "Все функции" (или "Функции для технического специалиста") и найдите план обмена ОбменЗарплата3ЗарплатаУправлениеПерсоналом или аналогичный, предназначенный для обмена с прошлыми версиями.
  3. Загрузка внешних правил: В настройках этого плана обмена укажите путь к внешним файлам правил выгрузки и правил регистрации. Это заставит систему формировать файл именно в формате 2.0.
  4. Регламентное задание: Чтобы обмен шел без участия пользователя, настроим регламентное задание. Если штатный механизм синхронизации продолжает сбоить, можно использовать внешнюю обработку V8Exch82.epf.

Рассмотрим подробнее использование V8Exch82.epf в регламентном задании. Это наиболее стабильный путь для связки ЗУП 3.1 -> УПП 1.3. Мы можем написать небольшой скрипт в модуле приложения или во внешней обработке, который будет запускать выгрузку по расписанию:


// Пример вызова универсальной выгрузки программно
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаОбмена.ИмяФайлаПравилОбмена = "C:\Rules\ZUP_UPP.xml";
ОбработкаОбмена.ИмяФайлаДанных = "C:\Exchange\Data.xml";
ОбработкаОбмена.РежимОбмена = "Выгрузка";
ОбработкаОбмена.ВыполнитьВыгрузку();

Почему не грузятся именно Подразделения и Физлица?

Проанализируем ситуацию: почему документы загружаются, а справочники — нет? В 1С УПП 1.3 обработка загрузки работает итерационно. Если в файле сначала идет документ ОтражениеЗарплатыВРеглУчете, а ссылки на подразделения находятся внутри него, система пытается найти эти подразделения в базе УПП.

Важные моменты поиска:

Чтобы исправить это, необходимо в конфигурации Конвертация данных 2.0 открыть правила обмена для ПКО ПодразделенияОрганизаций и проверить вкладку "Настройка поиска". Мы рекомендуем убедиться, что поиск по наименованию и родителю (владельцу-организации) активен, а флаг "Не создавать новый объект" снят, если вы допускаете появление новых подразделений из ЗУП.

Итоги и рекомендации

Подводя итог, можно сказать, что стабильный обмен между ЗУП 3.1 и УПП 1.3 требует отказа от современных "упрощенных" настроек в пользу классического механизма Exchange Rules (2.0).

Краткий чек-лист для восстановления обмена:

  1. Используйте внешние файлы правил из папки поставки конкретного релиза ЗУП.
  2. В настройках обмена (или через V8Exch82.epf) убедитесь, что используется формат 2.0.
  3. Если используете программное чтение атрибутов, проверьте совместимость кода с платформой 8.3.14+ (избегайте прямого обращения к индексам атрибутов).
  4. Проверьте соответствие GUID ключевых справочников (Организации, Подразделения) в обеих базах. При несовпадении — настройте поиск по полям в правилах обмена.

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

← На главную