При настройке синхронизации данных между 1С:Комплексная автоматизация 2 (КА 2) и 1С:Бухгалтерия предприятия 3.0 (БП 3.0), особенно если одна из баз находится в облачном сервисе 1С:Fresh, пользователи часто сталкиваются с критической ошибкой при загрузке данных. Текст ошибки обычно выглядит так: Ошибка установки значения свойства 'Телефоны' по причине: Реквизит недоступен для группы. Эта ситуация блокирует первоначальную выгрузку и не дает завершить синхронизацию.
Рассмотрим подробно причины возникновения этой проблемы и разберем пошагово методы её решения, опираясь на техническую логику работы платформы и механизмов EnterpriseData.
Давайте проанализируем ситуацию с точки зрения кода платформы. Ошибка возникает в общем модуле ОбменДаннымиXDTOСервер в момент выполнения процедуры ЗаполнитьЗначенияСвойств(ДанныеИБ, ПолученныеДанные, ПоляКопии). Суть проблемы заключается в следующем:
XDTO (EnterpriseData) из базы-источника (КА 2) выгружается объект справочника Банки.Телефоны (или в соответствующей табличной части контактной информации).Банки у реквизита Телефоны установлено свойство метаданных «Использование: Для элементов».Выясним, почему данные о телефонах вообще попадают в группы, хотя в интерфейсе их быть не должно.
Чаще всего корень проблемы кроется в данных внутри исходной базы КА 2. При ручном вводе, программном создании объектов или после миграции из старых версий у некоторых папок в справочнике Банки могут оказаться заполненными скрытые реквизиты контактной информации. Рассмотрим, как это проверить и исправить.
Проанализируем ситуацию с помощью стандартных средств. Нам необходимо найти все группы справочника Банки, у которых заполнен телефон. Для этого выполним следующие действия:
Справочник: Банки.Это группа Равно Да.Телефоны. Если мы увидим там заполненные значения, это и есть причина сбоя.Чтобы исправить это, установите флаг напротив реквизита Телефоны, оставьте поле значения пустым и нажмите «Изменить реквизиты». Это принудительно очистит данные у групп, и ошибка при обмене исчезнет.
Как показывает практика, проблема часто обостряется после обновлений конфигурации в 1С:Fresh. Фирма «1С» регулярно совершенствует подсистему «Контактная информация». В последних версиях логика хранения КИ (контактной информации) могла измениться, а механизмы синхронизации (ПКО и ПОД) могут некорректно интерпретировать старые записи.
Разберем ситуацию с настройками видов КИ:
Банки.Телефон.XDTO.Поскольку БП 3.0 во Фреше обновляется автоматически, она может начать использовать более новую версию формата обмена (например, 1.16), в то время как локальная КА 2 всё еще работает на версии 1.15. В новых форматах требования к заполнению объектов могут быть жестче.
Посмотрим, как можно это диагностировать:
EnterpriseData, которая указана в узле обмена.Если групповое изменение реквизитов не помогает (например, данные хранятся не в реквизите, а в табличной части или регистре), можно воспользоваться внешней обработкой с небольшим фрагментом кода. Проанализируем пример кода для очистки контактной информации у групп справочника:
Выборка = Справочники.Банки.Выбрать(,, Новый Структура("ЭтоГруппа", Истина));
Пока Выборка.Следующий() Цикл
ОбъектГруппа = Выборка.ПолучитьОбъект();
// Очищаем табличную часть контактной информации
Если ОбъектГруппа.КонтактнаяИнформация.Количество() > 0 Тогда
ОбъектГруппа.КонтактнаяИнформация.Очистить();
Попытка
ОбъектГруппа.Записать();
Сообщить("Очищена КИ для группы: " + ОбъектГруппа.Наименование);
Исключение
Сообщить("Не удалось записать группу: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Этот код перебирает все папки в справочнике и принудительно удаляет из них строки табличной части КонтактнаяИнформация, которые могут содержать злополучный «Телефон», вызывающий ошибку ЗаполнитьЗначенияСвойств в приемнике.
После того как вы очистили данные в исходной базе, выполните следующие шаги:
Банки.Если проблема сохраняется даже после полной очистки и обновления обеих конфигураций до последних релизов, рекомендуется обратиться в техподдержку 1С, так как это может свидетельствовать об ошибке в типовых правилах конвертации XDTO, которые поставляются внутри конфигураций для работы во Фреше.