Синхронизация данных между 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0 — это сложный процесс, базирующийся на технологии EnterpriseData. Одной из самых распространенных и неприятных проблем является ошибка проверки данных XDTO. Рассмотрим ситуацию, когда настройка обмена выполнена, но данные не передаются, а в журнале регистрации фиксируется отказ с текстом: Ошибка проверки данных XDTO: Структура объекта '/Контрагент' не соответствует типу... Отсутствует обязательное свойство Наименование.
В этой статье мы подробно разберем, почему возникает эта ошибка, как проанализировать проблемные объекты и правильно настроить обмен с нуля, чтобы избежать подобных инцидентов в будущем.
Проанализируем техническую сторону вопроса. Обмен в современных конфигурациях происходит через формат XML, схема которого (XDTO-пакет) строго регламентирует, какие поля должны быть заполнены. Для объекта Контрагент поле Наименование является обязательным. Если при попытке выгрузить, например, Заказ клиента или Счет на оплату, система обнаруживает, что в документе указан контрагент с пустым именем, механизм выгрузки прерывается.
Выясним основные причины, по которым поле может оказаться пустым в процессе выгрузки, даже если в интерфейсе программы всё кажется заполненным:
<Объект не найден>.... Это происходит при некорректном удалении данных или частичном переносе.Рассмотрим порядок действий для очистки базы УТ 11 (откуда обычно идет первичная выгрузка):
Во-первых, воспользуемся стандартным журналом регистрации. Найдите запись с событием «Отправка» и типом «Данные». В тексте ошибки часто указана ссылка на конкретный объект, например: e1cib/data/Документ.СчетНаОплатуПокупателю?ref=.... Скопируйте эту навигационную ссылку и откройте её в программе через «Сервис и настройки» — «Перейти по ссылке».
Во-вторых, проверим целостность ссылок. Если в документе обнаружен <Объект не найден>, необходимо либо восстановить контрагента, либо перевыбрать его вручную. Для массовой проверки выполним «Тестирование и исправление» информационной базы в режиме Конфигуратора с включенным параметром «Проверка ссылочной целостности».
В-третьих, проанализируем справочник контрагентов. Разберем ситуацию с пустыми полями. Для поиска элементов без наименования можно использовать универсальный отчет или простую консоль запросов:
ВЫБРАТЬ
Контрагенты.Ссылка,
Контрагенты.Представление
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
(Контрагенты.Наименование = "" ИЛИ Контрагенты.Наименование ЕСТЬ NULL)
И НЕ Контрагенты.ПометкаУдаления
Даже после исправления контрагента в карточке, документ может не уйти, если он «завис» в очереди обмена с ошибкой. Рассмотрим, как принудительно протолкнуть данные. В меню Администрирование — Синхронизация данных выберите вашу настройку и откройте «Состав отправляемых данных» (иконка с маленьким монитором).
Проанализируем действия в этом окне:
Счет на оплату или тот документ, на котором спотыкается обмен.Контрагенты не зарегистрированы к отправке, система может пытаться выгрузить их «по ссылке» не полностью, что и вызывает ошибку КлючевыеСвойстваКонтрагент.Иногда проблема кроется в несоответствии версий формата обмена между УТ 11.4 и БП 3.0. Рассмотрим этот нюанс подробнее. В настройках синхронизации можно указать версию формата, например, 1.5 или 1.6.
Важный совет: Если на версии 1.5 возникают ошибки валидации, попробуйте переключиться на 1.6 в обеих базах. Разработчики 1С часто исправляют ошибки сериализации в более новых версиях пакетов. Для изменения версии зайдите в Параметры синхронизации данных — Параметры подключения и проверьте, чтобы в обеих конфигурациях была выбрана максимально доступная общая версия.
Для того чтобы понять, на какой стороне происходит сбой, проанализируем метод выгрузки через локальный или сетевой каталог (XML-файл). Если при попытке синхронизации напрямую через подключение (COM или веб-сервис) возникает ошибка, попробуйте временно изменить способ обмена на «Через файл».
Разберем, что это дает:
<Counterparty>. Если там пусто в узле <Name>, значит проблема 100% в базе-источнике (УТ).Если вы решили перенастроить обмен на копиях баз, как советуют опытные специалисты, придерживайтесь следующего алгоритма:
1. Синхронизация префиксов. Убедитесь, что в НСИ и администрирование — Настройка НСИ и разделов — Сведения об организации в обеих базах заданы уникальные префиксы (например, «УТ» и «БП»). Это критично для уникальности номеров документов.
2. Дата начала синхронизации. При первоначальной настройке установите дату начала обмена. Помните, что документы до этой даты автоматически не попадут в обмен. Если вам нужно перенести старый счет (как в примере из 2018 года), его придется зарегистрировать вручную через обработку регистрации изменений.
3. Сопоставление организаций и складов. Прежде чем запускать массовую отправку документов, выполните сопоставление справочников. Нажмите кнопку Синхронизировать, и на этапе «Сопоставление данных» убедитесь, что ваши организации и основные склады в УТ и БП связаны правильно по ИНН или Наименованию. Это предотвратит создание дублей «пустых» организаций.
4. Настройка счетов учета в Бухгалтерии. В БП 3.0 обязательно должны быть заполнены Счета учета номенклатуры и Счета учета расчетов с контрагентами. Если эти регистры пусты, документы из УТ загрузятся, но не проведутся, создавая дополнительные сложности.
Ошибка Ошибка проверки данных XDTO — это не приговор программе, а сигнал о том, что в ваших справочниках есть «мусор» или некорректно заполненные обязательные поля. Проанализируйте данные через консоль запросов, проверьте ссылки на целостность и используйте обработку Регистрация изменений для обмена, чтобы точечно управлять передаваемой информацией. Совместная работа над чистотой НСИ в обеих базах — ключ к стабильной и бесперебойной синхронизации.