При настройке и выполнении обмена между конфигурациями 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 2.0 разработчики нередко сталкиваются с ошибками выгрузки справочников. Рассмотрим типичную ситуацию: во время передачи данных по справочнику БанковскиеСчетаОрганизаций или БанковскиеСчета обработка падает с ошибкой:
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Ошибка получения значения свойства объекта (по имени свойства источника) ПКО = БанковскиеСчетаОрганизаций, ПКС = (ВыводитьСуммуБезКопеек --> СуммаБезКопеек), ОписаниеОшибки = Поле объекта не обнаружено (ВыводитьСуммуБезКопеек)
Разберем причины возникновения этой проблемы и пошагово выясним, как правильно скорректировать правила обмена и восстановить передачу данных.
Проанализируем механику работы типового механизма обмена на базе Конвертации данных 2.1 (КД 2). Ошибка возникает из-за следующих факторов:
ВыводитьСуммуБезКопеек, ВариантВыводаМесяца, СуммаБезКопеек) в справочнике БанковскиеСчета. Если в правиле конвертации свойств (ПКС) включено прямое чтение свойства источника по имени, обработчик КонвертацияОбъектовИнформационныхБаз обращается к несуществующему реквизиту объекта через точку, что вызывает фатальное исключение платформы.ВТранзакции() = Ложь). При этом регистрация изменений с объектов может оказаться уже сброшенной.Рассмотрим правильный и надежный порядок изменения правил обмена с использованием специализированной базы Конвертация данных 2.1. Поскольку УТ 11.3 и БП 2.0 работают на разных версиях платформы и режимах совместимости, разберем процесс по шагам:
В каталоге установки конфигурации «Конвертация данных 2.1» находим внешние обработки выгрузки метаданных. Для базы УТ 11 (режим платформы 8.3) запускаем обработку MD83.epf и сохраняем структуру метаданных в XML-файл. Для базы БП 2.0 (режим совместимости 8.2) запускаем обработку MD82.epf (или MD83.epf) и аналогично сохраняем метаданные приемника.
Открываем базу КД 2.1. Через пункт меню загружаем файлы метаданных для обеих конфигураций. Затем через обработку «Загрузка правил обмена данными» импортируем текущий XML-файл правил конвертации из поставки УТ или БП.
Переходим в дерево правил, находим ПКО БанковскиеСчетаОрганизаций (или БанковскиеСчета) и открываем вкладку Конвертация свойств. Находим проблемные строки для свойств ВыводитьСуммуБезКопеек и ВариантВыводаМесяца. У нас есть два варианта исправления:
Вариант А (отключение выгрузки свойства): снимаем флаг передачи свойства (крайняя левая колонка активности ПКС), чтобы обработчик не пытался обращаться к реквизиту источника.
Вариант Б (явная инициализация значения): в обработчике события ПередВыгрузкой для проблемного свойства принудительно задаем фиксированное значение, чтобы отвязать чтение от метаданных источника:
// В обработчике "Перед выгрузкой" свойства ПКС
Значение = Ложь;
Отказ = Ложь;
В форме настройки правил нажимаем кнопку Сохранить правила конвертации, выгружаем готовый XML-файл и загружаем его в настройки синхронизации данных (план обмена) в базах УТ 11 и БП 2.0.
Если нет возможности быстро развернуть базу КД 2.1, исправление можно внести напрямую в текстовом редакторе. Главное — строго соблюдать структуру XML-дерева.
СуммаБезКопеек или имени источника ВыводитьСуммуБезКопеек внутри блока справочника банковских счетов.<Свойство ...> и заканчивается тегом </Свойство>. Нельзя удалять только отдельные теги внутри свойства. Полностью удаляем весь узел либо добавляем внутри него флаг отключения:
<Свойство Отключить="true">
<Источник Имя="ВыводитьСуммуБезКопеек" Вид="Реквизит" Тип="Булево"/>
<Приемник Имя="СуммаБезКопеек" Вид="Реквизит" Тип="Булево"/>
</Свойство>
ВариантВыводаМесяца.Если во время предыдущих попыток синхронизации произошел сброс регистрации изменений, а сами объекты в базу-приемник не записались из-за ошибки транзакции, необходимо повторно зарегистрировать данные к выгрузке:
СправочникСсылка.БанковскиеСчетаОрганизаций (а также связанные документы, которые не перенеслись) и выбираем команду Зарегистрировать изменения.Важное замечание по архитектуре обменов: обмен между УТ 11 и БП 2.0 работает исключительно на классической технологии КД 2.1 через XML-правила, так как конфигурация БП 2.0 не поддерживает формат EnterpriseData (КД 3.0). Для долгосрочной стабильности синхронизации рекомендуется перевод бухгалтерского контура на редакцию 1С:Бухгалтерия предприятия 3.0.