Работа с XML-файлами в 1С:Предприятие — неотъемлемая часть обмена данными между системами, интеграции с внешними сервисами и даже внутренней обработки документов. Однако многие пользователи сталкиваются с трудностями при попытке отредактировать XML: то формат нарушается после сохранения, то данные не загружаются обратно в базу, то вовсе возникают ошибки синтаксиса. Эта статья поможет разобраться, как правильно работать с XML в — от простейшего ручного редактирования до автоматизированных методов через встроенные инструменты платформы.

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

Зачем редактировать XML в 1С и когда это необходимо

XML-файлы в чаще всего редактируют в следующих случаях:

  • 📄 Исправление ошибок обмена. Например, если при выгрузке данных в внешнюю систему возникла ошибка из-за некорректного формата поля (даты, суммы, реквизита).
  • 🔄 Тестирование интеграций. При настройке обмена с 1С-Битрикс, МойСклад или другими системами иногда проще отредактировать тестовый XML вручную, чем настраивать правила конвертации.
  • 📑 Работа с электронными документами. Например, если контрагент прислал счет-фактуру в XML с ошибкой, и ее нужно подправить перед загрузкой в базу.
  • 🛠️ Отладка обработок. Разработчики часто правят XML, чтобы проверить, как система реагирует на те или иные данные.

Однако не все XML-файлы можно редактировать "на лету". Например, файлы .epf (внешние обработки) или .cf (конфигурации) содержат XML-разметку, но их структура строго привязана к внутреннему формату . Изменение таких файлов вручную без понимания структуры почти всегда приводит к ошибкам при загрузке. В то же время файлы обмена данными (например, import.xml или orders_20260501.xml) обычно имеют более гибкую структуру и допускают правку.

⚠️ Внимание: Если XML-файл подписан электронной подписью (например, СчетФактура.xml.sig), его редактирование сделает подпись недействительной. В этом случае придется переподписывать документ.

Способы редактирования XML в 1С: от простого к сложному

Выбор метода зависит от задачи и ваших навыков. Рассмотрим варианты от самых простых до профессиональных:

Метод Сложность Когда использовать Инструменты
Ручное редактирование в текстовом редакторе Низкая Для мелких правок (исправление значений, добавление тегов) Notepad++, VS Code, Блокнот
Использование специализированных XML-редакторов Средняя Для работы с большими файлами или валидации структуры XML Notepad, Oxygen XML Editor, Altova XMLSpy
Редактирование через Конфигуратор 1С Средняя Для правки файлов обмена или обработок Встроенные инструменты 1С:Предприятие
Автоматизация через встроенный язык Высокая Для массовых изменений или интеграции в бизнес-процессы Скрипты на , XDTO, XSLT

Начнем с самого простого способа — ручного редактирования.

📊 Какой инструмент вы используете для редактирования XML в 1С?
Текстовый редактор (Notepad++, VS Code)
Специализированный XML-редактор
Встроенные средства 1С
Свои скрипты на встроенном языке

Ручное редактирование XML: пошаговая инструкция

Если вам нужно быстро поправить одно-два значения в XML-файле, проще всего сделать это в текстовом редакторе. Вот как это сделать правильно:

  1. Создайте резервную копию файла. Даже мелкая опечатка может сделать XML нечитаемым. Скопируйте оригинальный файл в отдельную папку.
  2. Откройте файл в подходящем редакторе. Для Windows подойдет Notepad++ (с подсветкой синтаксиса) или VS Code (с расширением XML Tools). Избегайте стандартного Блокнота — он не сохраняет кодировку, что может испортить файл.
  3. Проверьте кодировку. XML в обычно использует UTF-8 или windows-1251. Если при открытии вместо кириллицы отображаются кракозябры, измените кодировку в редакторе.
  4. Найдите нужный тег. Используйте поиск (Ctrl+F) по названию поля или значению. Например, если нужно исправить сумму в счете, ищите теги вроде <Сумма> или <Amount>.
  5. Внесите изменения. Следите за синтаксисом:
    • Все теги должны быть закрыты: <Тег>Значение</Тег>.
    • Атрибуты пишутся в кавычках: <Тег Атрибут="Значение">.
    • Специальные символы (&, <, >) заменяются на сущности: &amp;, &lt;, &gt;.
  • Сохраните файл в той же кодировке, что и оригинал.
  • Проверьте валидность. Откройте файл в браузере или используйте онлайн-валидатор (например, XMLValidation).
  • Проверено закрытие всех тегов

    Кодировка совпадает с оригиналом

    Специальные символы экранированы

    Файл открывается без ошибок в браузере

    Сделана резервная копия-->

    Пример исправления: допустим, в файле order.xml неверно указана дата заказа. Ищем тег <Дата>2026-05-30</Дата> и заменяем на актуальную дату. Важно не трогать структуру файла — только содержимое тегов.

    ⚠️ Внимание: Если XML-файл сжат (имеет расширение .zip или .7z), сначала распакуйте его. Некоторые системы (например, Диадок или Контур.Диадок) передают XML в архивах.

    Редактирование XML через Конфигуратор 1С

    Если XML-файл связан с обменом данными внутри (например, выгрузка номенклатуры или заказов), удобнее править его непосредственно в Конфигураторе. Для этого:

    1. Откройте 1С:Предприятие в режиме Конфигуратор (зажмите Shift при запуске или выберите в меню пуска).
    2. Перейдите в Файл → Открыть и выберите нужный XML-файл. Если файл связан с обменом, его можно открыть через Администрирование → Обмен данными.
    3. Для файлов обмена (например, УниверсальныйОбменДанными) используйте обработку ЗагрузкаДанныхИзXML. Она позволяет:
      • 🔍 Просматривать структуру файла в виде дерева.
      • ✏️ Редактировать значения прямо в интерфейсе.
      • 📤 Сохранять изменения обратно в XML.
  • Для сложных правок (например, изменение структуры) используйте XDTO-пакеты. Они позволяют работать с XML как с объектами :
    // Пример кода для чтения XML через XDTO
    

    ЧтениеXML = Новый ЧтениеXML;

    ЧтениеXML.ОткрытьФайл("C:\obmen\data.xml");

    Данные = XDTO.ПрочитатьXML(ЧтениеXML, ТипXDTO.Тип("http://schema.example.ru", "Документ"));

    // Редактируем данные

    Данные.Сумма = 10000;

    // Сохраняем обратно

    ЗаписьXML = Новый ЗаписьXML;

    ЗаписьXML.ОткрытьФайл("C:\obmen\data_updated.xml");

    XDTO.ЗаписатьXML(ЗаписьXML, Данные);

  • Преимущество этого метода — сама следит за корректностью структуры XML и кодировкой. Однако для работы с XDTO требуются права администратора и понимание структуры данных.

    💡

    Если при загрузке XML в 1С возникает ошибка "Недопустимый символ", проверьте кодировку файла. Часто проблема решается конвертацией из UTF-8 в windows-1251 с помощью Notepad++ (меню Кодировки → Преобразовать в ANSI).

    Автоматизация редактирования XML с помощью скриптов 1С

    Если вам регулярно приходится править XML по одним и тем же правилам (например, заменять наименования товаров или корректировать суммы), имеет смысл автоматизировать процесс. В это можно сделать с помощью:

    • 📜 Обработок. Создайте внешнюю обработку с формой, где пользователь выбирает файл и указывает параметры правки.
    • 🤖 Регламентных заданий. Например, для ночной обработки входящих XML от контрагентов.
    • 🔄 XSLT-преобразований. Если нужно изменить структуру XML (например, конвертировать из одного формата в другой).

    Пример скрипта для массовой замены значений в XML:

    // Обработка для замены старых артикулов на новые в XML-файле
    

    Процедура ЗаменитьАртикулыВXML(ПутьКФайлу, ТаблицаЗамен) Экспорт

    ЧтениеXML = Новый ЧтениеXML;

    ЧтениеXML.ОткрытьФайл(ПутьКФайлу);

    ЗаписьXML = Новый ЗаписьXML;

    ПутьКНовомуФайлу = Лев(ПутьКФайлу, Найти(ПутьКФайлу, ".")) + "_new.xml";

    ЗаписьXML.ОткрытьФайл(ПутьКНовомуФайлу);

    Пока ЧтениеXML.Прочитать() Цикл

    Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

    Если ЧтениеXML.Имя = "Артикул" Тогда

    ТекущийАртикул = ЧтениеXML.Значение;

    Если ТаблицаЗамен.Найти(ТекущийАртикул) <> Неопределено Тогда

    ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя);

    ЗаписьXML.ЗаписатьЗначение(ТаблицаЗамен[ТекущийАртикул]);

    ЗаписьXML.ЗаписатьКонецЭлемента();

    Продолжить;

    КонецЕсли;

    КонецЕсли;

    КонецЕсли;

    ЗаписьXML.ЗаписатьУзел(ЧтениеXML);

    КонецЦикла;

    ЗаписьXML.Закрыть();

    ЧтениеXML.Закрыть();

    Возврат ПутьКНовомуФайлу;

    КонецПроцедуры

    Этот скрипт читает исходный XML, ищет теги <Артикул> и заменяет их значения согласно переданной таблице соответствий. Готовый файл сохраняется с суффиксом _new.xml.

    ⚠️ Внимание: При работе с большими XML-файлами (более 100 МБ) скрипты на встроенном языке могут работать медленно. В таких случаях лучше использовать внешние инструменты (например, Python с библиотекой lxml).

    Типичные ошибки при редактировании XML и как их избежать

    Даже опытные пользователи иногда допускают ошибки при работе с XML. Вот самые распространенные из них и способы их предотвращения:

    Ошибка Причина Как исправить
    Ошибка синтаксиса: Неожиданный конец файла Не закрыт тег или нарушена структура Проверьте парность тегов с помощью валидатора
    Неверная кодировка символов Файл сохранен в UTF-8, а ожидает windows-1251 Конвертируйте кодировку в редакторе перед сохранением
    Элемент не найден в схеме Добавлен тег, не предусмотренный XSD-схемой Удалите лишний тег или исправьте его название
    Файл не загружается в без ошибок, но данные не появляются Несовпадение структуры XML и правил обмена в Проверьте соответствие тегов полям в настройках обмена
    Ошибка подписи: Подпись недействительна XML был отредактирован после подписания Получите новую подпись или запросите исправленный файл у отправителя

    Одна из самых коварных ошибок — невидимые символы. Например, если скопировать данные из Excel или веб-страницы, в XML могут попасть непечатаемые символы (табуляции, переносы строк), которые ломают структуру. Чтобы этого избежать:

    • 🧹 Используйте функцию СокрЛП() в для удаления лишних пробелов.
    • 🔍 Включите отображение скрытых символов в редакторе (в Notepad++: Вид → Символы → Показать все символы).
    • 📋 Для массовой очистки используйте регулярные выражения. Например, замена \s+ на пробел.
    Пример кода для очистки XML от лишних символов

    Функция ОчиститьСтрокуXML(Строка)
    

    // Удаляем все непечатаемые символы кроме пробела

    Результат = СтрЗаменить(Строка, Символ(9), " "); // Табуляция

    Результат = СтрЗаменить(Результат, Символ(10), ""); // Перевод строки

    Результат = СтрЗаменить(Результат, Символ(13), ""); // Возврат каретки

    Результат = СокрЛП(Результат); // Удаляем лишние пробелы

    Возврат Результат;

    КонецФункции

    Продвинутые методы: XSLT и работа с XDTO

    Для сложных преобразований XML (например, конвертации из одного формата в другой) в используются технологии XSLT и XDTO. Они позволяют:

    • 🔀 Трансформировать структуру (например, конвертировать XML от поставщика в формат, понятный вашей ).
    • 📊 Фильтровать данные (извлекать только нужные теги).
    • 🔄 Объединять несколько XML в один файл.

    Пример использования XSLT в :

    // Загрузка XSLT-преобразования и применение к XML
    

    XSLТрансформация = Новый XSLТрансформация;

    XSLТрансформация.Загрузить(Новый ИсточникДвоичныхДанных("C:\xslt\transform.xslt"));

    ИсходныйXML = Новый ИсточникДвоичныхДанных("C:\data\input.xml");

    РезультатXML = Новый ЗаписьXML;

    РезультатXML.ОткрытьФайл("C:\data\output.xml");

    XSLТрансформация.Преобразовать(ИсходныйXML, РезультатXML);

    РезультатXML.Закрыть();

    Для работы с XDTO сначала нужно определить схему данных. Это можно сделать в Конфигураторе:

    1. Откройте Общие → XDTO-пакеты.
    2. Создайте новый пакет и импортируйте XSD-схему (если она есть) или опишите структуру вручную.
    3. Используйте пакет в коде для чтения/записи XML.

    XDTO позволяет работать с XML как с объектами 1С, что значительно упрощает редактирование сложных структур. Например, вместо ручного поиска тегов вы обращаетесь к данным через свойства объектов:

    Данные = XDTO.ПрочитатьXML(ЧтениеXML, ТипXDTO.Тип("http://schema.example.ru", "Заказ"));
    

    Данные.Контрагент.Наименование = "ООО Новый Поставщик"; // Простое редактирование!

    ⚠️ Внимание: Если вы используете XDTO для обмена с внешними системами, убедитесь, что версия схемы (XSD) совпадает с ожидаемой. Несоответствие версий — частая причина ошибок при интеграции.

    Безопасность и резервное копирование при работе с XML

    Редактирование XML-файлов, особенно связанных с финансовыми документами или обменом данными, требует особой осторожности. Следуйте этим правилам:

    • 💾 Всегда делайте резервную копию оригинального файла перед редактированием. Лучше сохранить ее в отдельной папке с датой (например, backup_20260530).
    • 🔒 Проверяйте права доступа. Если XML содержит конфиденциальные данные (например, персональные данные клиентов), убедитесь, что резервные копии хранятся в защищенном месте.
    • 📋 Ведите журнал изменений. Фиксируйте, что и когда было отредактировано, особенно если над файлом работают несколько человек.
    • 🔍 Используйте контроль версий. Для важных XML-файлов (например, шаблонов обмена) настройте Git или хотя бы храните историю изменений в архивах.

    Если вы работаете с XML, который используется в регламентных заданиях (например, для автоматического обмена с банком), тестируйте изменения на копии базы. Ошибка в таком файле может привести к сбою критически важных процессов.

    💡

    Перед массовым редактированием XML (например, заменой данных в сотне файлов) обязательно протестируйте скрипт на 2-3 примерах. Это поможет избежать потери данных из-за ошибок в коде.

    FAQ: Ответы на частые вопросы о редактировании XML в 1С

    Можно ли редактировать XML-файлы конфигурации 1С (например, *.cf)?

    Технически да, но это крайне не рекомендуется. Файлы конфигурации (.cf) и внешние обработки (.epf) содержат XML-разметку, но их структура строго привязана к внутреннему формату . Любое изменение вручную почти гарантированно приведет к ошибкам при загрузке. Для редактирования конфигураций используйте Конфигуратор или 1С:EDT.

    Как исправить ошибку "Неверный формат файла" при загрузке XML в 1С?

    Эта ошибка обычно возникает из-за:

    • Несовпадения кодировки (попробуйте конвертировать файл в windows-1251).
    • Нарушения структуры (проверьте парность тегов с помощью валидатора).
    • Отсутствия обязательных тегов (сравните ваш файл с шаблоном из документации).

    Также убедитесь, что файл не поврежден (откройте его в браузере — если отображается ошибка, файл битый).

    Какие редакторы лучше всего подходят для работы с XML в 1С?

    Рекомендуемые инструменты:

    • Notepad++ с плагином XML Tools (для простых правок).
    • VS Code с расширениями XML Language Support и XML Tools (для разработчиков).
    • Oxygen XML Editor (для сложных XSD-схем и XSLT).
    • Altova XMLSpy (профессиональный инструмент с поддержкой валидации).

    Для также полезно использовать встроенные инструменты Конфигуратора, особенно если XML связан с обменом данными.

    Как автоматизировать редактирование XML, если файлов много?

    Для массовой обработки:

    1. Напишите скрипт на встроенном языке (см. примеры выше).
    2. Используйте PowerShell или Python для предварительной обработки файлов.
    3. Настройте регламентное задание в , которое будет запускать обработку по расписанию.

    Пример скрипта на Python для замены значений в пачке XML:

    import os
    

    import xml.etree.ElementTree as ET

    for filename in os.listdir("C:/obmen/"):

    if filename.endswith(".xml"):

    tree = ET.parse(f"C:/obmen/{filename}")

    root = tree.getroot()

    for elem in root.iter('Сумма'):

    elem.text = str(float(elem.text) * 1.1) # Увеличиваем сумму на 10%

    tree.write(f"C:/obmen/updated_{filename}")

    Что делать, если после редактирования XML перестал загружаться в 1С?

    Последовательность действий:

    1. Вернитесь к резервной копии файла.
    2. Проверьте файл на валидность (например, на сайте XMLValidation).
    3. Сравните структуру вашего файла с оригинальным шаблоном (если есть).
    4. Если ошибка в кодировке, конвертируйте файл в UTF-8 или windows-1251.
    5. Если ничего не помогает, обратитесь к администратору с логами ошибок.