+375 29 605 73 35
Заказать звонок
Минск, ул. Татарская 3, этаж 3, офис 315
Сопровождение информационных систем
Компания
  • О компании
  • Клиенты и партнеры
  • Сотрудники
  • Отзывы
  • Вакансии
  • Реквизиты
1С Предприятие
  • Автоматизация 1С : Предприятия 8
    • Предпроектное обследование
    • Разработка конфигурации с нуля
    • Внедрение 1С : Предприятие 8
    • Доработка и настройка 1С
  • Внедрение 1С
    • Комплекс работ по адаптации и настройке программных продуктов «1С
  • Демонстрация типовых решений 1с для Беларуси
    • 1С:Управление торговлей для Беларуси, редакция 3.4
    • 1С:Розница для Беларуси, редакция 2.2
    • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
    • 1С:Бухгалтерия для Беларуси, редакция 2.1
    • 1С УНФ (Управление нашей фирмой)
    • 1С КА 2.4 ( Комплексная автоматизация)
  • Кейсы 1С
    • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
    • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
    • Расширенный список справочника Контрагентов для УТ ХьюменСистем
    • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
    • Интеграция с маркетплейсами озон и валберис
  • Консультация по 1С
    • Разовое консультация ( 75.00 руб.коп)
    • Тарифные планы на сопровождение информационных систем
  • Построение аналитики и дашбордов
    • 1С Аналитика
    • Построение аналитики на Power BI
  • Продажа Битрикс24
Битрикс24
  • Готовые кейсы для битрикс24
  • Новости и статьи Битрик24
  • Попробовать бесплатно битрикс 24
  • Программы 1С
Информация
  • Новости
  • Статьи
Контакты
    Сопровождение информационных систем
    Компания
    • О компании
    • Клиенты и партнеры
    • Сотрудники
    • Отзывы
    • Вакансии
    • Реквизиты
    1С Предприятие
    • Автоматизация 1С : Предприятия 8
      • Предпроектное обследование
      • Разработка конфигурации с нуля
      • Внедрение 1С : Предприятие 8
      • Доработка и настройка 1С
    • Внедрение 1С
      • Комплекс работ по адаптации и настройке программных продуктов «1С
    • Демонстрация типовых решений 1с для Беларуси
      • 1С:Управление торговлей для Беларуси, редакция 3.4
      • 1С:Розница для Беларуси, редакция 2.2
      • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
      • 1С:Бухгалтерия для Беларуси, редакция 2.1
      • 1С УНФ (Управление нашей фирмой)
      • 1С КА 2.4 ( Комплексная автоматизация)
    • Кейсы 1С
      • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
      • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
      • Расширенный список справочника Контрагентов для УТ ХьюменСистем
      • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
      • Интеграция с маркетплейсами озон и валберис
    • Консультация по 1С
      • Разовое консультация ( 75.00 руб.коп)
      • Тарифные планы на сопровождение информационных систем
    • Построение аналитики и дашбордов
      • 1С Аналитика
      • Построение аналитики на Power BI
    • Продажа Битрикс24
    Битрикс24
    • Готовые кейсы для битрикс24
    • Новости и статьи Битрик24
    • Попробовать бесплатно битрикс 24
    • Программы 1С
    Информация
    • Новости
    • Статьи
    Контакты
      Сопровождение информационных систем
      • Компания
        • Назад
        • Компания
        • О компании
        • Клиенты и партнеры
        • Сотрудники
        • Отзывы
        • Вакансии
        • Реквизиты
      • 1С Предприятие
        • Назад
        • 1С Предприятие
        • Автоматизация 1С : Предприятия 8
          • Назад
          • Автоматизация 1С : Предприятия 8
          • Предпроектное обследование
          • Разработка конфигурации с нуля
          • Внедрение 1С : Предприятие 8
          • Доработка и настройка 1С
        • Внедрение 1С
          • Назад
          • Внедрение 1С
          • Комплекс работ по адаптации и настройке программных продуктов «1С
        • Демонстрация типовых решений 1с для Беларуси
          • Назад
          • Демонстрация типовых решений 1с для Беларуси
          • 1С:Управление торговлей для Беларуси, редакция 3.4
          • 1С:Розница для Беларуси, редакция 2.2
          • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
          • 1С:Бухгалтерия для Беларуси, редакция 2.1
          • 1С УНФ (Управление нашей фирмой)
          • 1С КА 2.4 ( Комплексная автоматизация)
        • Кейсы 1С
          • Назад
          • Кейсы 1С
          • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
          • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
          • Расширенный список справочника Контрагентов для УТ ХьюменСистем
          • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
          • Интеграция с маркетплейсами озон и валберис
        • Консультация по 1С
          • Назад
          • Консультация по 1С
          • Разовое консультация ( 75.00 руб.коп)
          • Тарифные планы на сопровождение информационных систем
        • Построение аналитики и дашбордов
          • Назад
          • Построение аналитики и дашбордов
          • 1С Аналитика
          • Построение аналитики на Power BI
        • Продажа Битрикс24
      • Битрикс24
        • Назад
        • Битрикс24
        • Готовые кейсы для битрикс24
        • Новости и статьи Битрик24
        • Попробовать бесплатно битрикс 24
        • Программы 1С
      • Информация
        • Назад
        • Информация
        • Новости
        • Статьи
      • Контакты
      • +375 29 605 73 35
      Минск, ул. Татарская 3, этаж 3, офис 315
      info@sectorsystem.by
      • Главная
      • Информация
      • Статьи
      • Выгрузка и загрузка данных XML в 1С: Практическое руководство для начинающих

      Выгрузка и загрузка данных XML в 1С: Практическое руководство для начинающих

      10 ноября 2025 15:34
      // Блок программиста 1С (Новичок)

      Введение

      XML (eXtensible Markup Language) - один из самых популярных форматов для обмена данными между различными системами. В 1С работа с XML используется для:

      • Обмена данными между базами 1С

      • Интеграции с другими программами и веб-сервисами

      • Создания универсальных выгрузок для отчетности

      • Резервного копирования данных

      В этой статье мы разберем два основных подхода к работе с XML в 1С.

      Способ 1: Простая выгрузка и загрузка через ЗаписьXML и ЧтениеXML

      Этот подход подходит для простых структур данных, когда нам нужно быстро выгрузить или загрузить данные без сложной структуры.

      Выгрузка данных в XML

      bsl
      // Процедура для выгрузки справочника "Контрагенты" в XML
      &НаСервере
      Процедура ВыгрузитьКонтрагентовВXML(ПутьКФайлу)
          
          // Создаем объект для записи XML
          ЗаписьXML = Новый ЗаписьXML;
          ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
          
          // Начинаем запись документа
          ЗаписьXML.ЗаписатьОбъявлениеXML();
          ЗаписьXML.ЗаписатьНачалоЭлемента("Контрагенты");
          
          // Выбираем все элементы справочника Контрагенты
          Выборка = Справочники.Контрагенты.Выбрать();
          Пока Выборка.Следующий() Цикл
              ЗаписьXML.ЗаписатьНачалоЭлемента("Контрагент");
              
              ЗаписьXML.ЗаписатьНачалоЭлемента("Наименование");
              ЗаписьXML.ЗаписатьТекст(Выборка.Наименование);
              ЗаписьXML.ЗаписатьКонецЭлемента();
              
              ЗаписьXML.ЗаписатьНачалоЭлемента("ИНН");
              ЗаписьXML.ЗаписатьТекст(Выборка.ИНН);
              ЗаписьXML.ЗаписатьКонецЭлемента();
              
              ЗаписьXML.ЗаписатьНачалоЭлемента("КПП");
              ЗаписьXML.ЗаписатьТекст(Выборка.КПП);
              ЗаписьXML.ЗаписатьКонецЭлемента();
              
              ЗаписьXML.ЗаписатьКонецЭлемента(); // Контрагент
          КонецЦикла;
          
          ЗаписьXML.ЗаписатьКонецЭлемента(); // Контрагенты
          ЗаписьXML.Закрыть();
          
          Сообщить("Выгрузка завершена! Файл: " + ПутьКФайлу);
          
      КонецПроцедуры

      Результат выгрузки (пример):

      xml
      <?xml version="1.0" encoding="UTF-8"?>
      <Контрагенты>
          <Контрагент>
              <Наименование>ООО "Ромашка"</Наименование>
              <ИНН>7712345678</ИНН>
              <КПП>771201001</КПП>
          </Контрагент>
          <Контрагент>
              <Наименование>АО "Весна"</Наименование>
              <ИНН>7723456789</ИНН>
              <КПП>772301002</КПП>
          </Контрагент>
      </Контрагенты>

      Загрузка данных из XML

      bsl
      // Процедура для загрузки контрагентов из XML
      &НаСервере
      Процедура ЗагрузитьКонтрагентовИзXML(ПутьКФайлу)
          
          // Создаем объект для чтения XML
          ЧтениеXML = Новый ЧтениеXML;
          ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
          
          // Переменные для хранения текущих данных
          ТекНаименование = "";
          ТекИНН = "";
          ТекКПП = "";
          
          // Читаем XML
          Пока ЧтениеXML.Прочитать() Цикл
              
              // Обрабатываем начало элемента "Контрагент"
              Если ЧтениеXML.ИмяЭлемента = "Контрагент" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                  
                  // Сбрасываем значения для нового контрагента
                  ТекНаименование = "";
                  ТекИНН = "";
                  ТекКПП = "";
                  
              ИначеЕсли ЧтениеXML.ИмяЭлемента = "Наименование" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                  ЧтениеXML.Прочитать();
                  ТекНаименование = ЧтениеXML.Значение;
                  
              ИначеЕсли ЧтениеXML.ИмяЭлемента = "ИНН" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                  ЧтениеXML.Прочитать();
                  ТекИНН = ЧтениеXML.Значение;
                  
              ИначеЕсли ЧтениеXML.ИмяЭлемента = "КПП" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                  ЧтениеXML.Прочитать();
                  ТекКПП = ЧтениеXML.Значение;
                  
              // Обрабатываем конец элемента "Контрагент" - создаем элемент
              ИначеЕсли ЧтениеXML.ИмяЭлемента = "Контрагент" И ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
                  
                  // Создаем нового контрагента
                  Попытка
                      Если Не ПустаяСтрока(ТекНаименование) Тогда
                          НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
                          НовыйКонтрагент.Наименование = ТекНаименование;
                          НовыйКонтрагент.ИНН = ТекИНН;
                          НовыйКонтрагент.КПП = ТекКПП;
                          НовыйКонтрагент.Записать();
                          Сообщить("Добавлен: " + ТекНаименование);
                      КонецЕсли;
                  Исключение
                      Сообщить("Ошибка при создании контрагента: " + ТекНаименование);
                  КонецПопытки;
                  
              КонецЕсли;
          КонецЦикла;
          
          ЧтениеXML.Закрыть();
          Сообщить("Загрузка завершена!");
          
      КонецПроцедуры

      Способ 2: Работа с XDTO (XML Data Transfer Objects)

      XDTO - более мощный и структурированный способ работы с XML, который позволяет работать со сложными XML-схемами.

      Создание фабрики XDTO и загрузка схемы

      bsl
      // Создаем фабрику XDTO
      ФабрикаXDTO = Новый ФабрикаXDTO;
          
      // Загружаем пространство имен и схему
      ПространствоИмен = ФабрикаXDTO.ОпределитьПространствоИмен("http://example.com/myschema");

      Выгрузка данных через XDTO

      bsl
      &НаСервере
      Процедура ВыгрузитьЧерезXDTO(ПутьКФайлу)
          
          ФабрикаXDTO = Новый ФабрикаXDTO;
          ПространствоИмен = ФабрикаXDTO.ОпределитьПространствоИмен("http://example.com/contractors");
          
          // Создаем корневой элемент
          КорневойЭлемент = ФабрикаXDTO.Создать(ПространствоИмен, "Контрагенты");
          
          // Добавляем контрагентов
          Выборка = Справочники.Контрагенты.Выбрать();
          Пока Выборка.Следующий() Цикл
              
              КонтрагентXDTO = ФабрикаXDTO.Создать(ПространствоИмен, "Контрагент");
              КонтрагентXDTO.Свойство("Наименование").УстановитьЗначение(Выборка.Наименование);
              КонтрагентXDTO.Свойство("ИНН").УстановитьЗначение(Выборка.ИНН);
              КонтрагентXDTO.Свойство("КПП").УстановитьЗначение(Выборка.КПП);
              
              КорневойЭлемент.Свойство("Контрагент").ДобавитьЗначение(КонтрагентXDTO);
          КонецЦикла;
          
          // Записываем в файл
          ЗаписьXML = Новый ЗаписьXML;
          ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
          ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, КорневойЭлемент);
          ЗаписьXML.Закрыть();
          
      КонецПроцедуры

      Загрузка данных через XDTO

      bsl
      &НаСервере
      Процедура ЗагрузитьЧерезXDTO(ПутьКФайлу)
          
          ФабрикаXDTO = Новый ФабрикаXDTO;
          
          // Читаем XML
          ЧтениеXML = Новый ЧтениеXML;
          ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
          
          КорневойЭлемент = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
          ЧтениеXML.Закрыть();
          
          // Обрабатываем данные
          Если КорневойЭлемент <> Неопределено Тогда
              КоллекцияКонтрагентов = КорневойЭлемент.Свойство("Контрагент").Значение;
              
              Для Каждого КонтрагентXDTO Из КоллекцияКонтрагентов Цикл
                  Наименование = КонтрагентXDTO.Свойство("Наименование").Значение;
                  ИНН = КонтрагентXDTO.Свойство("ИНН").Значение;
                  КПП = КонтрагентXDTO.Свойство("КПП").Значение;
                  
                  // Создаем элемент в справочнике
                  Попытка
                      НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
                      НовыйКонтрагент.Наименование = Наименование;
                      НовыйКонтрагент.ИНН = ИНН;
                      НовыйКонтрагент.КПП = КПП;
                      НовыйКонтрагент.Записать();
                      Сообщить("Загружен: " + Наименование);
                  Исключение
                      Сообщить("Ошибка: " + Наименование);
                  КонецПопытки;
              КонецЦикла;
          КонецЕсли;
          
      КонецПроцедуры

      Практический пример: Универсальная обработка для обмена

      Создадим простую внешнюю обработку для выгрузки и загрузки любых данных.

      bsl
      // В модуле внешней обработки
      
      &НаКлиенте
      Процедура Выгрузить(Команда)
          СтандартнаяОбработкаВыбораФайла = СтандартнаяОбработкаВыбораФайла();
          Если СтандартнаяОбработкаВыбораФайла.Выбран Тогда
              ВыгрузитьДанныеНаСервере(СтандартнаяОбработкаВыбораФайла.ПолноеИмяФайла);
          КонецЕсли;
      КонецПроцедуры;
      
      &НаСервере
      Процедура ВыгрузитьДанныеНаСервере(ПутьКФайлу)
          // Здесь можно добавить выбор типа данных для выгрузки
          ВыгрузитьКонтрагентовВXML(ПутьКФайлу);
      КонецПроцедуры;
      
      &НаКлиенте
      Процедура Загрузить(Команда)
          СтандартнаяОбработкаВыбораФайла = СтандартнаяОбработкаВыбораФайла();
          Если СтандартнаяОбработкаВыбораФайла.Выбран Тогда
              ЗагрузитьДанныеНаСервере(СтандартнаяОбработкаВыбораФайла.ПолноеИмяФайла);
          КонецЕсли;
      КонецПроцедуры;

      Советы и лучшие практики

      1. Обработка ошибок: Всегда оборачивайте операции с XML в блоки Попытка...Исключение

      2. Валидация данных: Проверяйте данные перед загрузкой

      3. Кодировка: Указывайте правильную кодировку при работе с XML

      4. Производительность: Для больших объемов данных используйте пакетную обработку

      5. Логирование: Ведите лог операций выгрузки/загрузки

      Заключение

      Работа с XML в 1С - мощный инструмент для интеграции и обмена данными. Начните с простых методов ЗаписьXML/ЧтениеXML для базовых задач и переходите к XDTO для сложных структур данных и интеграции с веб-сервисами.

      Практикуйтесь на тестовых данных, и вскоре вы сможете легко настраивать обмен данными между различными системами!

      • Комментарии
      Загрузка комментариев...

      Назад к списку Следующая статья
      Категории
      • PowerBI0
      • Битрикс2410
      • Блок программиста 1С (Новичок)65
      • Все про 1С46
      • Советы по автоматизации бизнеса9
      Это интересно
      • От Junior 1с к Middle: план развития на первый год работы
        От Junior 1с к Middle: план развития на первый год работы
        17 ноября 2025
      • Техническое задание от бухгалтера: как перевести требования пользователя в задачи для программиста
        Техническое задание от бухгалтера: как перевести требования пользователя в задачи для программиста
        17 ноября 2025
      • Используем готовые библиотеки: обзор Библиотеки стандартных подсистем (БСП) для новичка
        Используем готовые библиотеки: обзор Библиотеки стандартных подсистем (БСП) для новичка
        17 ноября 2025
      • Синтакс-помощник — ваш главный справочник. Как им пользоваться эффективно?
        Синтакс-помощник — ваш главный справочник. Как им пользоваться эффективно?
        17 ноября 2025
      • Работа с датами и временем в 1С: типичные задачи и функции
        Работа с датами и временем в 1С: типичные задачи и функции
        17 ноября 2025
      • Пишем свою первую обработку: Загрузка данных из Excel в 1С
        Пишем свою первую обработку: Загрузка данных из Excel в 1С
        10 ноября 2025
      • Обработка проведения документа: Что такое модуль объекта и модуль формы
        Обработка проведения документа: Что такое модуль объекта и модуль формы
        10 ноября 2025
      • Ошибка при вызове конструктора в 1с
        Ошибка при вызове конструктора в 1с
        23 октября 2025
      • Работа с базами данных в 1С:Предприятие
        Работа с базами данных в 1С:Предприятие
        16 октября 2025
      • Создание и настройка реквизитов в 1С:Предприятие
        Создание и настройка реквизитов в 1С:Предприятие
        16 октября 2025
      • Обработка событий в 1С:Предприятие: от основ до лучших практик
        Обработка событий в 1С:Предприятие: от основ до лучших практик
        16 октября 2025
      • Устранение ошибки «Слишком много фактических параметров» 1с
        Устранение ошибки «Слишком много фактических параметров» 1с
        15 октября 2025
      • Как установить пароль на обработку 1с
        Как установить пароль на обработку 1с
        15 октября 2025
      • Как в 1С восстановить поврежденную базу «1С:Предприятие 8»
        Как в 1С восстановить поврежденную базу «1С:Предприятие 8»
        15 октября 2025
      • Системные перечисления и их роль в разработке 1С
        Системные перечисления и их роль в разработке 1С
        23 сентября 2025
      • ERP или Комплексная автоматизация: что выбрать для компании?
        ERP или Комплексная автоматизация: что выбрать для компании?
        22 сентября 2025
      • Отображение количества записей в закладке табличной части: практическое руководство
        Отображение количества записей в закладке табличной части: практическое руководство
        4 сентября 2025
      • Как сделать круговую диаграмму в 1С для наглядного анализа данных
        Как сделать круговую диаграмму в 1С для наглядного анализа данных
        27 августа 2025
      • Как вывести юридический адрес контрагента в 1С: пошаговый урок
        Как вывести юридический адрес контрагента в 1С: пошаговый урок
        25 августа 2025
      • Вводный урок: основы работы с запросами в консоли
        Вводный урок: основы работы с запросами в консоли
        18 августа 2025
      Облако тегов
      1C:8 1С 1С ERP 1С ERP Беларусь 1с бухгалтерские проводки 1С Комплексная автоматизация 1С Комплект поддержки Беларусь 1с проводки 1С рассылка 1С синхронные методы 1с электронная почта 1С-Битрикс 1С:7 CRM абонентское обслуживание 1С автозаполнение документов в 1С автоматизация зарплаты 1С автоматизация склада 1С Автоматическое развертывание анализ процессов безопасность Безопасность труда Битрикс24 Бухгалтерский учет виды обмена в 1С Визуализация данных вложенные поля СКД внедрение внедрение Битрикс24 возможности платформы Битрикс24 временные таблицы в 1С вывод количества вывод списка 1с гайд по 1С Главное в 1С Диаграмма в 1С дизайн динамический интерфейс динамический список 1с загрузка в 1С загрузка из excel запросы в 1С Инструктажи интеграция 1С с CRM интеграция 1С с Битрикс интеграция 1С с маркетплейсами интеграция с платежными системами интерьер Искусственный интеллект исправление ошибок в 1С консоль запросов 1С константы 1С Контактная информация Контрагент Круговая диаграмма купить 1С лиды Машинное обучение мобильное приложение монопольный режим 1С налоговая отчетность 1С Беларусь написание кода 1С настройка списков 1с обзор обновление 1С обновление 1С Беларусь обработка исключений обучение пользователей 1С оптимизация запросов в 1С Оптимизация отчетов в 1С отчёты в 1С Охрана труда Печатная форма план обмена в 1С подсчет записей Предиктивная аналитика программирование 1С Работа с документами в Битрикс24 Рабочие места Рассылки расчет стоимости внедрения роли в 1С синхронизация CRM и 1С СКД советы разработчикам создание и настройка констант 1С создание и настройка ролей в 1С сопровождение 1С Беларусь сопровождение 1С онлайн составление отчетов в Битрикс табличная часть телеграм бот 1с тренинг 1С Минск удалённая поддержка 1С управление персоналом 1С УправлениеКонтактнойИнформацией ускорение работы в 1С Установить 1С в минске установка битрикс учет склада 1С читаемый код 1С шаблоны документов в 1С Юридический адрес
      Автоматизируем любой бизнес
      Компания
      О компании
      Клиенты и партнеры
      Сотрудники
      Отзывы
      Вакансии
      Реквизиты
      Услуги
      Автоматизация 1С : Предприятия 8
      Внедрение 1С
      Демонстрация типовых решений 1с для Беларуси
      Кейсы 1С
      Консультация по 1С
      Построение аналитики и дашбордов
      Продажа Битрикс24
      Наши контакты

      +375 29 605 73 35
      Пн. – Пт.: с 9:00 до 18:00
      Минск, ул. Татарская 3, этаж 3, офис 315
      info@sectorsystem.by
      © 2026 SectorSystem- сопровождение информационных систем. Все права защищены.