Как исправить ошибку «Не установлено значение свойства: ЕдиницаИзмерения» при выгрузке из УТ 11 в БП 3.0

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При стандартном обмене данными между конфигурациями 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с ошибками валидации XDTO-пакета. Одна из самых распространенных проблем — отсутствие обязательных реквизитов у объектов, которые участвуют в обмене. Рассмотрим детально, почему возникает ошибка Не установлено значение одного из следующих свойств: ЕдиницаИзмерения и как её исправить без обновления конфигурации.

Анализ причины ошибки в Журнале регистрации

Для начала проанализируем текст ошибки, который фиксируется в Журнале регистрации на стороне отправителя (УТ 11). Ошибка возникает в общем модуле ОбменДаннымиXDTOСервер при вызове метода ОбъектXDTO.Проверить(). Система сообщает, что структура объекта Справочник.Номенклатура не соответствует требованиям схемы EnterpriseData версии 1.5.

Важно понимать, что формат EnterpriseData — это жестко описанный стандарт. Если в схеме указано, что свойство ЕдиницаИзмерения является обязательным, то при попытке выгрузить объект с пустым значением этого поля система выдаст исключение и прекратит выгрузку всего пакета. Это происходит на этапе формирования XML-файла, когда 1С проверяет, соответствует ли созданный объект правилам обмена.

Почему ошибка возникает только для определенных организаций?

В ходе обсуждения проблемы выяснилось, что обмен по одной организации проходит успешно, а по другой — падает с ошибкой. Проанализируем эту ситуацию. Это происходит потому, что синхронизация данных работает по принципу регистрации изменений. Если в «проблемной» организации в документах, зарегистрированных к обмену (например, в Реализациях товаров и услуг), используется номенклатура с незаполненными реквизитами, обмен прерывается.

В «хорошей» организации такие позиции номенклатуры просто не используются в текущем периоде выгрузки, поэтому валидатор XDTO не сталкивается с дефектными объектами. В тексте ошибки часто прямо указывается ссылка на объект. В нашем примере это Инженерное обслуживание (e1cib/data/Справочник.Номенклатура?ref=...). Это и есть та самая «виновная» позиция.

Особенности типов номенклатуры «Услуга» и «Работа»

Разберем типичное заблуждение: многие пользователи считают, что если номенклатура имеет тип Услуга, то единица измерения ей не нужна. Однако для целей бухгалтерского учета и корректной работы формата EnterpriseData единица измерения обязательна для всех типов номенклатуры без исключения. Даже если вы продаете услугу, у неё должна быть базовая единица измерения (например, «шт» или «час»).

Поиск проблемных объектов через консоль запросов

Чтобы не открывать каждую карточку вручную, мы можем воспользоваться консолью запросов. Это позволит быстро найти всю номенклатуру, которая «тормозит» обмен. Нам нужно проверить два ключевых реквизита: ЕдиницаИзмерения (в УТ 11 это обычно ЕдиницаХранения) и СтавкаНДС.

Рассмотрим пример запроса, который поможет выявить пустые значения:


ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.ТипНоменклатуры КАК Тип
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    (Номенклатура.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
    ИЛИ Номенклатура.ЕдиницаИзмерения ЕСТЬ NULL)
    И НЕ Номенклатура.ЭтоГруппа

Если запрос возвращает строки, значит, именно эти элементы справочника блокируют синхронизацию. Также рекомендуем проверить наличие «битых» ссылок — когда в поле визуально что-то написано, но при попытке открыть это значение система выдает «Объект не найден».

Способ 1: Исправление через «Групповое изменение реквизитов»

Если проблемных позиций много, воспользуемся стандартной обработкой Групповое изменение реквизитов. Разберем шаги:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
  2. Выберем объект Номенклатура.
  3. Добавим фильтр: Единица измерения (или Единица хранения) равно Пустая ссылка.
  4. В нижней части окна укажем новое значение, например, «шт».
  5. Нажмем кнопку Изменить реквизиты.

После этого изменения необходимо повторно запустить синхронизацию. Система увидит, что объекты были изменены, и заново попытается их выгрузить.

Способ 2: Работа с составом отправляемых данных

Иногда бывает так, что номенклатура заполнена верно, но ошибка сохраняется. Это может быть связано с тем, что в очереди на выгрузку «зависла» старая версия объекта. Проанализируем состав отправляемых данных:

  1. Зайдем в настройки синхронизации данных.
  2. Нажмем кнопку Состав отправляемых данных (иконка с синим чемоданом).
  3. Найдем справочник Номенклатура.
  4. Если там зарегистрированы объекты, которые не должны выгружаться или которые вы уже исправили, можно попробовать очистить регистрацию для этого справочника и зарегистрировать его заново, либо просто нажать «Записать изменения» в карточке номенклатуры вручную.

Технические нюансы формата EnterpriseData 1.5

Выясним причину, почему ошибка может появиться внезапно, если «два месяца назад всё работало». Основные причины:

Важный момент: В тексте ошибки упоминается СтавкаНДС. В схеме XDTO проверка идет последовательно. Отсутствие единицы измерения часто является «критическим» для схемы, так как это свойство является обязательным элементом структуры. Пока вы не устраните пустое значение в ЕдиницаИзмерения, валидатор может указывать на соседние поля в структуре XML.

Заключение

Подведем итог: обновление конфигурации (УТ или БП) часто помогает, так как разработчики 1С смягчают правила валидации в новых версиях схем EnterpriseData или добавляют автоматическое заполнение пустых значений при выгрузке. Однако, если обновление невозможно из-за доработок, единственным надежным способом является обеспечение чистоты данных. У каждого элемента номенклатуры, который участвует в обмене, должны быть заполнены код, наименование, единица измерения и ставка НДС. Проверьте эти поля, исправьте их через групповую обработку, и обмен заработает в штатном режиме.

← На главную