При настройке или выполнении обмена данными между конфигурациями «Управление торговлей, редакция 10.3» и «Бухгалтерия предприятия, редакция 3.0» пользователи часто сталкиваются с критической ошибкой, которая прерывает процесс загрузки данных. Типичная ситуация: получение данных из бухгалтерии проходит успешно, но при попытке отправить данные из торговли возникает исключение во внешнем соединении.
В этом материале мы подробно разберем, почему возникает ошибка Реквизит недоступен для группы, проанализируем технические причины в коде обработчиков и изучим несколько способов решения проблемы — от простой чистки данных до правки правил конвертации.
Давайте проанализируем текст ошибки, который выдает система. Основная проблема локализована в объекте ВидыОплатОрганизаций (справочник «Виды оплат организаций»). Ошибка происходит в обработчике события ПослеЗагрузкиОбъекта.
Система пытается выполнить следующий код:
Объект.СчетУчетаРасчетов = Справочники.ВидыОплатОрганизаций.СчетУчетаРасчетовПоУмолчанию(Объект.ТипОплаты);
Разберем ситуацию: в справочнике «Виды оплат» (в УТ 10.3) или «Виды оплат организаций» (в БП 3.0) могут существовать не только элементы, но и группы (папки). Согласно архитектуре платформы 1С:Предприятие, у групп справочника отсутствуют обычные реквизиты, предназначенные для хранения данных (в данном случае СчетУчетаРасчетов). Когда правила обмена пытаются программно записать значение в реквизит объекта, который является группой, платформа генерирует исключение Реквизит недоступен для группы.
Это происходит потому, что в типовых правилах конвертации (ПКО) для данного справочника отсутствует проверка на то, является ли текущий загружаемый объект элементом или папкой.
Проанализируем самый простой и быстрый способ решения, который не требует изменения программного кода или правил обмена. Чаще всего ошибка возникает из-за того, что в УТ 10.3 в справочнике «Виды оплат» создана иерархия (папки), которая пытается мигрировать в БП 3.0.
Выполним следующие шаги:
Виды оплат.ПослеЗагрузкиОбъекта отработает корректно только для элементов.Если вы являетесь разработчиком и имеете доступ к конфигурации «Конвертация данных 2.1», мы рекомендуем внести исправление непосредственно в логику правил. Это позволит избежать подобных ошибок в будущем, даже если пользователи снова создадут группы в справочнике.
Разберем алгоритм исправления ПКО:
ВидыОплатОрганизаций.После загрузки.
Если Объект.ЭтоГруппа Тогда
Возврат;
КонецЕсли;
// Далее идет типовой код заполнения реквизитов
Объект.СчетУчетаРасчетов = Справочники.ВидыОплатОрганизаций.СчетУчетаРасчетовПоУмолчанию(Объект.ТипОплаты);
Проанализируем, что мы сделали: добавив условие Если Объект.ЭтоГруппа Тогда Возврат;, мы принудительно прерываем выполнение кода для папок. В результате попытка обращения к реквизиту СчетУчетаРасчетов просто не произойдет, и ошибка исчезнет.
Рассмотрим ситуацию, когда мы не можем менять правила и не хотим удалять группы из справочника в УТ 10.3. В этом случае мы можем воспользоваться инструментом регистрации изменений.
Выполним следующие действия:
Виды оплат.Важный нюанс: этот метод является временным. Если кто-то изменит наименование группы или перенесет в нее элемент, группа снова зарегистрируется к обмену, и ошибка повторится.
Как указано в описании проблемы, пользователь обновил «Бухгалтерию» с версии 2.0 до 3.0. Это критический момент для настройки обменов. Рассмотрим, на что стоит обратить внимание:
1. Обновление правил в самой настройке. Даже если в конфигурации УТ 10.3 зашиты новые правила, в старой настройке обмена (созданной еще для связи с БП 2.0) могут «зависнуть» старые алгоритмы. Мы рекомендуем полностью удалить старую настройку обмена и создать её «с нуля», используя встроенный помощник в БП 3.0, а затем выгрузить файл настроек для УТ 10.3.
2. Соответствие версий (ПРОФ/КОРП). Обратите внимание на лог ошибки: Конфигурация приемник: Бухгалтерия предприятия КОРП. Если ваша целевая база — версия ПРОФ, а правила используются от КОРП, могут возникать несоответствия в вызовах методов, таких как СчетУчетаРасчетовПоУмолчанию. Убедитесь, что версии конфигураций в правилах соответствуют реальным.
3. Предопределенные данные. Иногда в БП 3.0 уже существуют предопределенные элементы справочника Виды оплат организаций. Если в УТ 10.3 создан элемент или группа с таким же кодом, может возникнуть конфликт сопоставления. Проверьте справочник в обеих базах на наличие дублей по коду или наименованию.
Ошибка Реквизит недоступен для группы — это классическое следствие отсутствия проверки на иерархию в коде правил обмена. Для быстрого исправления удалите группы в справочнике «Виды оплат» в УТ 10.3. Для системного решения — внесите правки в ПКО через «Конвертацию данных», добавив условие Если Объект.ЭтоГруппа Тогда Возврат; КонецЕсли; в обработчик загрузки.