Как настроить и доработать обмен данными между ЗУП 3.1 и БП 3.0 при наличии нетиповых требований

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

Переход с привычных правил обмена на базе Конвертации данных 2.0 на современный формат Enterprise Data часто вызывает вопросы у разработчиков. Особенно это касается связки конфигураций Зарплата и управление персоналом 3.1 и Бухгалтерия предприятия 3.0. В данной статье мы разберем, как устроены механизмы обмена в актуальных версиях 1С, как найти "скрытые" старые правила и каким образом лучше реализовать специфические требования к отражению зарплаты в бухгалтерском учете.

Анализ архитектурных изменений в обмене 3.0

Для начала проанализируем ситуацию и поймем, почему старые подходы из версии 2.5 больше не работают "из коробки". В современных редакциях 1С подход к отражению зарплаты кардинально изменился. Рассмотрим основные отличия:

  1. Аналитика в ЗУП 3.1: Теперь в программе ЗУП справочник СпособыОтраженияЗарплатыВБухгалтерскомУчете содержит только наименования. В нем нет счетов учета, субконто или видов расходов. Это сделано намеренно, чтобы кадровики и расчетчики не влияли на методологию бухгалтерского учета.
  2. Аналитика в БП 3.0: Вся детальная настройка проводок (счета 20, 26, 44, номенклатурные группы и статьи затрат) выполняется непосредственно в Бухгалтерии предприятия в одноименном справочнике.
  3. Механизм сопоставления: При использовании типового обмена Enterprise Data система ищет способ отражения в БП строго по Наименованию, пришедшему из ЗУП.

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

Способ 1: Использование классических правил на КД 2.0

Многие разработчики привыкли работать с Конвертацией данных 2.0. Несмотря на то что 1С продвигает Enterprise Data, старые механизмы обмена через файлы (XML) все еще присутствуют в конфигурациях, хотя и скрыты от глаз пользователя. Разберем по шагам, как ими воспользоваться:

Рассмотрим план обмена ОбменЗарплата31Бухгалтерия30. В современных интерфейсах он может быть не виден. Чтобы его найти, воспользуемся меню "Функции для технического специалиста" (ранее "Все функции") и перейдем в раздел "Планы обмена".

Преимущества этого способа:

Недостатки:

Способ 2: Работа через формат Enterprise Data (КД 3.0)

Если мы хотим идти в ногу с типовыми решениями, нам необходимо освоить Enterprise Data (ED). В отличие от КД 2.0, здесь логика обмена описывается не во внешнем XML, а непосредственно в программном коде. Посмотрим на структуру этого механизма:

Основным объектом является общий модуль МенеджерОбменаЧерезУниверсальныйФормат. Именно в нем сосредоточены алгоритмы преобразования данных конфигурации в формат XDTO и обратно. Если нам требуется реализовать "извраты" (как выразился автор темы) при переносе отражения зарплаты, мы должны использовать Расширения конфигурации.

Проанализируем ситуацию, когда нам нужно подменить способ отражения при загрузке в БП. Для этого в расширении БП следует перехватить процедуру:


&После("ПКО_Документ_ОтражениеЗарплатыВБухучете_Получение_ПриКонвертацииДанныхXDTO")
Процедура Расш1_ПКО_Документ_ОтражениеЗарплатыВБухучете_Получение_ПриКонвертацииДанныхXDTO(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена)
    // Здесь можно программно изменить структуру "ПолученныеДанные"
    // Например, найти в табличной части нужные строки и заменить ссылки на справочник способов отражения
КонецПроцедуры

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

Рекомендации по реализации сложных сопоставлений

Рассмотрим подробнее практический совет: где именно лучше делать доработки? Если в вашей схеме учета в ЗУП используются одни способы отражения, а в БП они должны превращаться в другие (с другой аналитикой), наиболее логичным будет следующий алгоритм:

  1. В ЗУП создайте дополнительные реквизиты или используйте расширение для хранения признаков, по которым будет происходить подмена.
  2. При обмене передавайте эти данные либо в составе наименования способа отражения, либо через дополнительные свойства (ДополнительныеДанные в формате ED).
  3. На стороне БП в модуле менеджера обмена (через расширение) напишите функцию поиска. Она должна анализировать входящую строку и сопоставлять её с реальным объектом справочника СпособыУчетаЗарплаты в Бухгалтерии.

Важный момент: Старайтесь избегать модификации правил выгрузки в ЗУП. Проще и надежнее "допиливать" логику именно на стороне приемника (БП), так как именно там живет финансовая аналитика. Это позволит вам не переписывать правила регистрации объектов, которые в Enterprise Data также работают на базе КД 2.0 (через файлы ExchangeRules.xml внутри конфигурации).

Инструментарий для отладки

Для успешной настройки обмена нам понадобятся специализированные инструменты:

Выводы

Резюмируя вышесказанное, отметим: если ваши изменения носят разовый характер и база сильно кастомизирована, можно попытаться использовать старый план обмена на КД 2.0. Однако для долгосрочной эксплуатации правильнее будет освоить Enterprise Data и использовать механизм расширений для модуля МенеджерОбменаЧерезУниверсальныйФормат.

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

← На главную