Переход с привычных правил обмена на базе Конвертации данных 2.0 на современный формат Enterprise Data часто вызывает вопросы у разработчиков. Особенно это касается связки конфигураций Зарплата и управление персоналом 3.1 и Бухгалтерия предприятия 3.0. В данной статье мы разберем, как устроены механизмы обмена в актуальных версиях 1С, как найти "скрытые" старые правила и каким образом лучше реализовать специфические требования к отражению зарплаты в бухгалтерском учете.
Для начала проанализируем ситуацию и поймем, почему старые подходы из версии 2.5 больше не работают "из коробки". В современных редакциях 1С подход к отражению зарплаты кардинально изменился. Рассмотрим основные отличия:
ЗУП справочник СпособыОтраженияЗарплатыВБухгалтерскомУчете содержит только наименования. В нем нет счетов учета, субконто или видов расходов. Это сделано намеренно, чтобы кадровики и расчетчики не влияли на методологию бухгалтерского учета.Бухгалтерии предприятия в одноименном справочнике.Enterprise Data система ищет способ отражения в БП строго по Наименованию, пришедшему из ЗУП.Выясним причину сложности доработок: если ваша задача заключается в "подмене" аналитики в зависимости от подразделения или сотрудника, то логика этой подмены теперь должна располагаться либо в алгоритмах формирования документа ОтражениеЗарплатыВБухучете на стороне ЗУП, либо в правилах загрузки на стороне БП.
Многие разработчики привыкли работать с Конвертацией данных 2.0. Несмотря на то что 1С продвигает Enterprise Data, старые механизмы обмена через файлы (XML) все еще присутствуют в конфигурациях, хотя и скрыты от глаз пользователя. Разберем по шагам, как ими воспользоваться:
Рассмотрим план обмена ОбменЗарплата31Бухгалтерия30. В современных интерфейсах он может быть не виден. Чтобы его найти, воспользуемся меню "Функции для технического специалиста" (ранее "Все функции") и перейдем в раздел "Планы обмена".
Преимущества этого способа:
КД 2.0 для написания обработчиков ПриВыгрузке, ПоляПоиска и других.Недостатки:
КД 2.0 для этих конфигураций обновляются фирмой 1С по остаточному принципу.Если мы хотим идти в ногу с типовыми решениями, нам необходимо освоить Enterprise Data (ED). В отличие от КД 2.0, здесь логика обмена описывается не во внешнем XML, а непосредственно в программном коде. Посмотрим на структуру этого механизма:
Основным объектом является общий модуль МенеджерОбменаЧерезУниверсальныйФормат. Именно в нем сосредоточены алгоритмы преобразования данных конфигурации в формат XDTO и обратно. Если нам требуется реализовать "извраты" (как выразился автор темы) при переносе отражения зарплаты, мы должны использовать Расширения конфигурации.
Проанализируем ситуацию, когда нам нужно подменить способ отражения при загрузке в БП. Для этого в расширении БП следует перехватить процедуру:
&После("ПКО_Документ_ОтражениеЗарплатыВБухучете_Получение_ПриКонвертацииДанныхXDTO")
Процедура Расш1_ПКО_Документ_ОтражениеЗарплатыВБухучете_Получение_ПриКонвертацииДанныхXDTO(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена)
// Здесь можно программно изменить структуру "ПолученныеДанные"
// Например, найти в табличной части нужные строки и заменить ссылки на справочник способов отражения
КонецПроцедуры
Такой подход позволяет сохранить типовую поддержку и при этом гибко управлять логикой обмена.
Рассмотрим подробнее практический совет: где именно лучше делать доработки? Если в вашей схеме учета в ЗУП используются одни способы отражения, а в БП они должны превращаться в другие (с другой аналитикой), наиболее логичным будет следующий алгоритм:
ЗУП создайте дополнительные реквизиты или используйте расширение для хранения признаков, по которым будет происходить подмена.ДополнительныеДанные в формате ED).БП в модуле менеджера обмена (через расширение) напишите функцию поиска. Она должна анализировать входящую строку и сопоставлять её с реальным объектом справочника СпособыУчетаЗарплаты в Бухгалтерии.Важный момент: Старайтесь избегать модификации правил выгрузки в ЗУП. Проще и надежнее "допиливать" логику именно на стороне приемника (БП), так как именно там живет финансовая аналитика. Это позволит вам не переписывать правила регистрации объектов, которые в Enterprise Data также работают на базе КД 2.0 (через файлы ExchangeRules.xml внутри конфигурации).
Для успешной настройки обмена нам понадобятся специализированные инструменты:
Отражение зарплаты в бухучете стоят в очереди на выгрузку и почему.Enterprise Data. С её помощью можно выгрузить текст модуля менеджера обмена, отредактировать его в удобном виде и получить готовый код для вставки в расширение.ЗУП до того, как они начнут обрабатываться в БП.Резюмируя вышесказанное, отметим: если ваши изменения носят разовый характер и база сильно кастомизирована, можно попытаться использовать старый план обмена на КД 2.0. Однако для долгосрочной эксплуатации правильнее будет освоить Enterprise Data и использовать механизм расширений для модуля МенеджерОбменаЧерезУниверсальныйФормат.
Помните, что главной целью перехода на 3.1 было упрощение документа отражения в зарплатной базе. Постарайтесь не возвращать в ЗУП сложную бухгалтерскую аналитику, а реализуйте логику её определения на стороне Бухгалтерии. Это существенно облегчит обновление обеих конфигураций в будущем.