При работе с обменами данными, выгрузкой электронных документов (ЭДО) или передачей сведений в государственные системы (например, «Честный знак»), технические специалисты и пользователи часто сталкиваются с ошибками валидации XML-файлов. Одной из наиболее распространенных является ошибка соответствия XDTO-пакету, когда значение в поле превышает максимально допустимое количество символов. Часто это происходит при использовании внешних инструментов, таких как выгрузка УПД в формате xml для ЭДО Лайт или систем маркировки. В этой статье мы подробно разберем, почему возникает ситуация, когда значение типа РСЕ/NMB не проходит проверку, и как это исправить в информационной базе.
Проанализируем техническую сторону вопроса. Ошибка, описанная в ситуации, звучит так: «Значение пытаются установить в поле, которое ограничено длиной 3 символа». В структуре XDTO-пакетов, которые используются для формирования XML-файлов выгрузки, для большинства полей, описывающих международные единицы измерения, установлен жесткий стандарт ISO.
Согласно этому стандарту, международное сокращение единицы измерения должно состоять строго из трех символов (например, PCE — штуки, MTR — метры, KGM — килограммы). Если в вашей базе 1С в справочнике указано значение РСЕ/NMB, система видит в нем 7 символов. При попытке выгрузки механизм валидации блокирует операцию, так как файл не будет соответствовать схеме (XSD), и принимающая сторона просто не сможет его обработать.
Рассмотрим ситуацию, почему такие данные вообще появляются в системе. Чаще всего это происходит при неаккуратном ручном вводе или при импорте данных из внешних файлов (Excel, CSV), где поставщики могут указывать сокращения через дробь или комбинировать российские и международные коды.
Посмотрим на структуру конфигурации. Ошибочные данные хранятся не в программном коде и не в настройках выгрузки, а непосредственно в справочной информации. Разберем по шагам, как найти нужный элемент:
Классификатор единиц измерения или просто Единицы измерения.Справочники и найдем в списке Классификатор единиц измерения.Проанализируем содержимое справочника. Нам необходимо найти колонку «Международное сокращение». Именно в ней мы увидим проблемное значение РСЕ/NMB.
Рассмотрим подробнее процесс редактирования элемента. После того как мы нашли ошибочную запись, выполним следующие действия:
PCE.Важный нюанс: Не путайте «Краткое наименование» (которое может быть шт.) и «Международное сокращение» (которое должно быть PCE). Ошибка XDTO обычно ссылается именно на второе поле. Если вы осуществляете групповое сохранение файлов УПД в формате xml, убедитесь, что все единицы измерения в документах приведены к стандарту.
Если в вашей базе огромное количество единиц измерения с подобными ошибками, исправлять каждую вручную неэффективно. Разберем, как автоматизировать этот процесс с помощью стандартных инструментов 1С.
Для этих целей воспользуемся обработкой Групповое изменение реквизитов — также можно использовать универсальный инструмент группового изменения реквизитов для 1С. Этот инструмент позволяет быстро найти все записи с определенным текстом и заменить его на правильный. Это особенно актуально, если вам требуется регулярная групповая выгрузка и загрузка файлов из 1С в XML по приказам ФНС, где корректность данных критична.
Проанализируем ситуацию: нам нужно заменить РСЕ/NMB на PCE. В обработке мы выбираем объект Классификатор единиц измерения, добавляем условие отбора по реквизиту Международное сокращение (где оно равно ошибочному тексту) и в нижней части окна указываем новое значение для замены. После нажатия кнопки «Изменить реквизиты» система автоматически обновит все записи во всех единицах измерения.
Чтобы в будущем избежать подобных ошибок, мы рекомендуем никогда не создавать единицы измерения вручную «с нуля». В 1С предусмотрен штатный механизм загрузки эталонных данных.
Посмотрим, как правильно добавлять новые единицы:
Классификатор единиц измерения нажмем кнопку «Подбор из ОКЕИ».При таком подходе поле Наименование, Код и Международное сокращение заполнятся автоматически из государственного классификатора, что гарантирует успешную валидацию при любых выгрузках, так как эти данные соответствуют всем стандартам.
После внесения правок необходимо повторно запустить процедуру выгрузки данных — для этого подойдёт обработка выгрузки документов УПД в XML-файл ЭДО. Если все сделано верно, ошибка «Значение не соответствует шаблону или ограничению длины» исчезнет. Для финальной проверки сформированного файла можно использовать механизмы, позволяющие выполнить чтение УПД из XML в структуру, чтобы убедиться, что все поля заполнены корректно.
Если же ошибка повторится, следует проверить, не дублируется ли данная единица измерения в справочнике. Иногда в базе может быть две «Штуки» с разными кодами, и в документе выгрузки выбрана именно та, которую вы еще не успели исправить.
Таким образом, мы выяснили, что ключ к решению проблем с XDTO-пакетами лежит в строгом соблюдении стандартов заполнения справочников. Помните, что для международного обмена данные должны быть унифицированы, и 1С предоставляет все необходимые инструменты для поддержания этой чистоты данных.