При работе в 1С:Комплексная автоматизация 2.5 пользователи часто сталкиваются с ситуацией, когда при попытке просмотреть сформированный электронный документ (УПД) перед отправкой через ЭДО, вместо привычной печатной формы открывается пустое окно или отображается всего одна техническая строка. Рассмотрим, почему это происходит, проанализируем техническую сторону вопроса и разберем способы исправления этой ошибки.
Ситуация обычно выглядит следующим образом: бухгалтер или менеджер создает документ РеализацияТоваровУслуг, нажимает кнопку ЭДО — Посмотреть электронный документ, но вместо корректного отображения бланка УПД система выдает ошибку или некорректную визуализацию. Проблема коварна тем, что сам документ в информационной базе может быть проведен без ошибок, а все реквизиты заполнены верно с точки зрения учета. Однако на этапе формирования XML-файла для передачи оператору ЭДО происходит сбой, который блокирует работу встроенного визуализатора 1С.
Электронный документ (УПД) — это файл в формате XML. Этот язык разметки имеет строгие правила синтаксиса. В частности, существуют зарезервированные спецсимволы, которые нельзя использовать в «чистом» виде внутри текстовых данных, так как они являются частью структуры самого кода. К таким символам относятся:
")&)<, >)')Проанализируем ситуацию: если в наименовании договора в справочнике ДоговорыКонтрагентов указано, например, Договор "Поставка 2024", то при выгрузке в XML программа должна заменить кавычки на специальную последовательность ". Если программный код типовой конфигурации в конкретном месте (например, при формировании тега НаимОсн — наименование основания) просто копирует строку «как есть» без экранирования, XML-файл становится «битым». Визуализатор 1С, использующий XSLT-трансформацию для преобразования кода в читаемый вид HTML, «спотыкается» на лишней кавычке, воспринимая её как окончание атрибута, и прекращает обработку документа.
Выясним причину, почему разработчики 1С могли допустить подобное. В платформе 1С существует стандартная функция XMLСтрока(), которая автоматически преобразует данные в формат, пригодный для XML, включая экранирование спецсимволов. Однако в сложных механизмах Библиотеки электронного документооборота (БЭД), на которой построена КА 2.5, данные собираются из множества источников. Если в одном из модулей формирования тегов вместо вызова типовой функции используется простое сложение строк или прямое обращение к реквизиту, возникает вышеописанная проблема.
Самый простой и быстрый способ решить проблему без привлечения программиста — это коррекция наименований в базе. Разберем шаги:
Договоры и найдем тот договор, который выбран в реализации." "), их необходимо заменить.« »). Они не являются зарезервированными символами XML и не вызывают ошибок парсинга.& или случайных символов <, >.После внесения изменений в справочник необходимо перезайти в форму ЭДО или переформировать электронный документ.
Если вы хотите устранить причину на корню, чтобы пользователи могли продолжать использовать любые символы, необходимо вмешаться в код формирования XML. Рассмотрим, как это можно сделать через расширение конфигурации. Нам необходимо найти процедуру, отвечающую за заполнение сведений о договоре-основании в модуле ЭДО.
В типовой КА 2.5 за это часто отвечает общий модуль ЭлектронныеДокументыПередачаДанных. При формировании текста для XML-узла следует убедиться, что применяется корректное преобразование. Пример правильного подхода:
// Неправильно:
ЗаписьXML.ЗаписатьАтрибут("НаимОсн", Выборка.НаименованиеДоговора);
// Правильно (через платформенный механизм):
ЗаписьXML.ЗаписатьАтрибут("НаимОсн", XMLСтрока(Выборка.НаименованиеДоговора));
Использование XMLСтрока() гарантирует, что любой символ будет передан в файл в безопасном виде. Если вы обнаружили место в коде, где это не реализовано, рекомендуется создать расширение и переопределить метод с использованием аннотации &Вместо или &ИзменениеИКонтроль.
Поскольку проблема в 1С:КА 2.5 часто связана с несовершенством конкретных релизов БЭД (Библиотеки электронного документооборота), фирма 1С оперативно выпускает исправления. Проанализируем порядок действий:
НаимОсн).Иногда проблема кроется не в самом XML, а в кэше визуализатора. Если вы исправили кавычки в договоре, но УПД всё равно не отображается, попробуйте следующее:
Подводя итог, можно сказать, что ошибка «пустого окна» в ЭДО — это классический случай нарушения форматно-логического контроля (ФЛК). Внимательное отношение к заполнению строковых реквизитов (избегание прямых кавычек и спецсимволов) позволяет избежать подобных технических сбоев в 1С:Комплексная автоматизация 2.5.