Синхронизация данных между 1С:Зарплата и Управление Персоналом 3.1 и 1С:Бухгалтерия Предприятия 3.0 (КОРП) — это сложный процесс, который часто опирается на правила обмена, созданные в конфигурации "Конвертация данных 2.1". В процессе регулярного обновления программ структуры метаданных меняются. Если в вашей базе используются "допиленные" (нетиповые) правила обмена, они перестают автоматически обновляться вместе с конфигурацией, что приводит к критическим ошибкам. Рассмотрим, как провести анализ конфигураций и поиск ошибок в модулях, чтобы устранить такие проблемы самостоятельно.
Проанализируем ситуацию: при попытке синхронизации система выдает сообщение Тип не определен (ПеречислениеСсылка.ПолФизическихЛиц). Это классическая проблема, связанная с развитием Библиотеки Стандартных Подсистем (БСП). В старых версиях конфигураций 1С соответствующее перечисление имело имя в множественном числе — ПолФизическихЛиц. В актуальных релизах разработчики привели имя к единственному числу — ПолФизическогоЛица.
Выясним причину: встроенные механизмы обмена знают об этом изменении, но если в вашей базе загружены внешние правила (из XML-файла), в них жестко прописано старое имя. При инициализации обмена через COM-соединение движок пытается найти объект с именем ПолФизическихЛиц в дереве метаданных текущей базы, не находит его и прерывает процесс. В случаях, когда штатный обмен не удается восстановить оперативно, можно использовать альтернативные способы, такие как выгрузка данных физических лиц из ЗУП для создания аналогичных записей в Бухгалтерии.
Вторая ошибка — Поле объекта не обнаружено (НормативОтчисленийВРезерв) в справочнике Настройки расчета резервов по оплате труда — связана с масштабным изменением законодательства и методик учета резервов (переход на метод обязательств или МВА). В новых версиях ЗУП 3.1 структура хранения настроек резервов была полностью пересмотрена. Реквизиты, которые раньше находились в "шапке" справочника (как простое числовое поле), могли быть удалены или перенесены в табличные части.
Рассмотрим, как это исправить. Простое переименование в XML-файле здесь может не помочь, так как может потребоваться изменение самой логики получения данных. Если же данные необходимо перенести срочно, можно воспользоваться загрузкой остатков резервов по отпускам из файла Excel непосредственно в документ корректировки. Однако для долгосрочного решения нужно найти, где в правилах ПКО (Правила Конвертации Объектов) или ПКС (Правила Конвертации Свойств) упоминается данное поле.
Прежде чем приступать к правке кода, проверим настройки синхронизации. Разберем по шагам:
Если специфика вашего учета позволяет, попробуем переключиться на Типовые правила. Если после этого синхронизация проходит успешно, значит, кастомные правила устарели.
Если отказаться от кастомных правил нельзя, проанализируем и исправим их. Для этого нам понадобятся файлы ExchangeRules.xml (правила источника) и CorrespondentExchangeRules.xml (правила получателя). Рассмотрим процесс правки:
Откроем файлы в текстовом редакторе (лучше использовать Notepad++ с плагином Compare для сравнения версий). Выполним поиск по строке ПолФизическихЛиц и заменим её на ПолФизическогоЛица. Обратите внимание, что замену нужно производить осторожно, проверяя контекст (это должно быть имя типа или ссылка).
Пример фрагмента в правилах:
<!-- Было -->
<Свойство Имя="Пол" Тип="ПеречислениеСсылка.ПолФизическихЛиц"/>
<!-- Стало -->
<Свойство Имя="Пол" Тип="ПеречислениеСсылка.ПолФизическогоЛица"/>
Что касается ошибки с НормативОтчисленийВРезерв, если вы видите, что данное свойство больше не существует в конфигурации, его можно временно отключить в правилах, удалив или закомментировав соответствующий узел <Свойство> в блоке <ПравилаКонвертацииСвойств> для справочника НастройкиРасчетаРезервовПоОплатеТруда.
После внесения правок в XML-файлы, их необходимо загрузить обратно в обе базы (и в ЗУП, и в Бухгалтерию, так как при COM-соединении используются оба комплекта). Рассмотрим важный нюанс: 1С часто кеширует правила обмена.
Чтобы изменения вступили в силу, проанализируем следующие действия:
COM база-источник инициализирует базу-приемник. Если на стороне приемника произошли сбои сопоставления, может потребоваться замена договора на договор организации в документах Бухгалтерии 3.0 для устранения дублей.Для более глубокого решения проблемы разберем работу с инструментом Конвертация данных 2.1. Это правильный путь, если ручная правка XML кажется слишком рискованной. Рассмотрим алгоритм:
MD83Exp.epf.ПолФизическогоЛица и разберемся с реквизитами резервов.Важный совет: Помните, что современные версии 1С постепенно переходят на формат EnterpriseData (Конвертация данных 3.0). Если ваши конфигурации обновлены, рассмотрите возможность создания новой синхронизации "через универсальный формат", что избавит вас от проблем с метаданными. А для оперативной проверки результатов обмена можно использовать простую сверку документов между конфигурациями через http-сервис, что гарантирует идентичность данных в обеих базах.