Обновлено: 27.11.2025

Как бесплатно создать XML из Excel для ЕИСОТ Минтруда: обзор основных способов

Способ 1: Использование программ и онлайн-конверторов Способ 2: Сопоставление с XSD-схемой (скачать полученные Excel таблицу и xml-файл) Способ 3: Автоматизация через макросы (VBA) Способ 4: Написание скрипта на Python (скачать используемый Python файл) Бесплатно в АС Реестр-протокол: Ваш универсальный инструмент Что дальше?

Большинство людей умеют работать с таким форматом документов, как Microsoft Excel или по-простому Excel таблицы, в которых можно заполнять сведения об обучении по охране труда, а затем передавать их в электронном виде.

Однако, напрямую в реестр передать сведения об обучении по охране труда из Excel таблицы без специальных программ не получится - такой функции в ЕИСОТ попросту не предусмотрено. При этом, данные из Excel таблицы можно экспортировать в XML-файл, который уже можно загрузить в ЕИСОТ.

Импорт записей в личном кабинете работодателя по охране труда

Как отправить в сведения в реестр Минтруда мы рассматриваем в следующей статье, в этой же рассмотрим основные способы создания xml-файлов из Excel таблиц от простого - к сложному.

Что такое XML-разметка и XSD-схема?

Способ 1: Использование программ и онлайн-конверторов

Самый простой способ формирования xml-файла – это использовать различные программы и онлайн-конверторы, через которые по установленным шаблонам Excel таблиц можно формировать валидные xml-файлы, соответствующие XSD-схеме Минтруда России.

Например, бесплатно сформировать xml-файл можно с помощью нашего сервиса Реестр-протокол. О том, как это сделать, мы рассказываем в инструкции по созданию xml-файлов в АС Реестр-протокол.

Способ 2. Сопоставление с XSD-схемой

Для работы этим способом нужно скачать с официального сайта Минтруда России XSD-схему, сопоставить элементы схемы с ячейками таблицы, заполнить её сведениями об обучении по охране труда и экспортировать данные в xml-файл.

Рассмотрим пошагово этот способ.

Шаг 1: Скачиваем XSD-схему с портала ФГИС СОУТ из раздела «Справочная информация» - «Обучение по ОТ».

Шаг 2: Создаём новую Excel таблицу и если в ленте отсутствует вкладка «Разработчик», то открываем её, нажав в меню ленты вкладку «Файл» - «Параметры» - «Настроить ленту».

В открывшемся окне в правой колонке будут основные вкладки, отображаемые в ленте Excel таблицы. Для отображения вкладки «Разработчик» нужно напротив неё проставить знак галочки и сохранить, нажав кнопку «ОК».

Открытие вкладки разработчик в параметрах Excel

Шаг 3: Открываем вкладку «Разработчик» - «Источник» и справа в открывшемся окне нажимаем на кнопку «Карты XML». Далее нажимаем кнопку «Добавить», находим скачанную на компьютер XSD-схему и открываем её.

Выбор XSD-схемы для сопоставления с таблицей

Шаг 4: На этом этапе происходит непосредственное сопоставление тегов XSD-схемы с ячейками таблицы. Для этого берем каждый тег из расположенного справа окна «Источник XML» и перетаскиваем его в первую строку таблицы - это будут её заголовки.

Шаг 5: Построчно заполняем сведения об обученных по охране труда лицах

Заполненные сопоставленные данные в таблице

Шаг 6: Для составления xml-файла нажимаем кнопку «Экспорт» на вкладке «Разработчик», после чего уже в открывшемся окне нажимаем кнопку «Экспорт», предварительно выбрав имя и место для сохранения xml-файла.

Окно экспорта данных в xml-файл

Готово, xml-файл создан в указанной директории и может быть передан в реестр. Также подробно о возможности сопоставления элементов XSD-схемы с ячейками таблицы и экспорте данных в xml-файл рассказано в статье «Общие сведения о XML-файлах в Excel» на странице официального сайта Microsoft.

Важно! Следует учесть некоторые особенности заполнения сопоставленной таблицы, иначе при загрузке в реестр вернётся ошибка, указывающая на несоответствие XSD-схеме:
  1. Дата проверки знаний должна быть указана не через знак «.» (дд.мм.гггг), а через знак дефиса «-» в обратном порядке (гггг-мм-дд).
  2. Результат проверки знаний указывается словом true, если оценка «удовлетворительно» и false, если оценка «неудовлетворительно».
  3. Идентификатор программы обучения указывается цифрами от 1 до 29, которые соответствуют одной из программ обучения, передаваемых в реестр.
Нажмите, чтобы раскрыть номера программ обучения
  • 1 – Оказание первой помощи пострадавшим
  • 2 – Использование (применение) средств индивидуальной защиты
  • 3 – Общие вопросы охраны труда и функционирования системы управления охраной труда
  • 4 – Безопасные методы и приемы выполнения работ при воздействии вредных и (или) опасных производственных факторов, источников опасности, идентифицированных в рамках специальной оценки условий труда и оценки профессиональных рисков
  • 6 – Безопасные методы и приемы выполнения работ повышенной опасности, к которым предъявляются дополнительные требования в соответствии с нормативными правовыми актами, содержащими государственные нормативные требования охраны труда
  • 6 – Безопасные методы и приемы выполнения земляных работ
  • 7 – Безопасные методы и приемы выполнения ремонтных, монтажных и демонтажных работ зданий и сооружений
  • 8 – Безопасные методы и приемы выполнения работ при размещении, монтаже, техническом обслуживании и ремонте технологического оборудования (включая технологическое оборудование)
  • 9 – Безопасные методы и приемы выполнения работ на высоте
  • 10 – Безопасные методы и приемы выполнения пожароопасных работ
  • 11 – Безопасные методы и приемы выполнения работ в ограниченных и замкнутых пространствах (ОЗП)
  • 12 – Безопасные методы и приемы выполнения строительных работ, в том числе: - окрасочные работы - электросварочные и газосварочные работы
  • 13 – Безопасные методы и приемы выполнения работ, связанных с опасностью воздействия сильнодействующих и ядовитых веществ
  • 14 – Безопасные методы и приемы выполнения газоопасных работ
  • 15 – Безопасные методы и приемы выполнения огневых работ
  • 16 – Безопасные методы и приемы выполнения работ, связанные с эксплуатацией подъемных сооружений
  • 17 – Безопасные методы и приемы выполнения работ, связанные с эксплуатацией тепловых энергоустановок
  • 18 – Безопасные методы и приемы выполнения работ в электроустановках
  • 19 – Безопасные методы и приемы выполнения работ, связанные с эксплуатацией сосудов, работающих под избыточным давлением
  • 20 – Безопасные методы и приемы обращения с животными
  • 21 – Безопасные методы и приемы при выполнении водолазных работ
  • 22 – Безопасные методы и приемы работ по поиску, идентификации, обезвреживанию и уничтожению взрывоопасных предметов
  • 23 – Безопасные методы и приемы работ в непосредственной близости от полотна или проезжей части эксплуатируемых автомобильных и железных дорог
  • 24 – Безопасные методы и приемы работ, на участках с патогенным заражением почвы
  • 25 – Безопасные методы и приемы работ по валке леса в особо опасных условиях
  • 26 – Безопасные методы и приемы работ по перемещению тяжеловесных и крупногабаритных грузов при отсутствии машин соответствующей грузоподъемности и разборке покосившихся и опасных (неправильно уложенных) штабелей круглых лесоматериалов
  • 27 – Безопасные методы и приемы работ с радиоактивными веществами и источниками ионизирующих излучений
  • 28 – Безопасные методы и приемы работ с ручным инструментом, в том числе с пиротехническим
  • 29 – Безопасные методы и приемы работ в театрах
Полезно! Скачайте полученные результаты сопоставления Excel таблицы с XSD-схемой.
Скачать Excel таблицу
Скачать xml-файл

Способ 3. Автоматизация через макросы (VBA)

Что такое макросы? Макросы - это записанные или написанные программы внутри Excel, которые автоматически выполняют действия.

Представьте, что вы способом 2 выполняете определённые действия в Excel, например: взять данные из одной таблицы, вставить в другую, обработать их, а затем экспортировать в xml-файл и закрыть таблицу. В данном случае макрос будет выполнять все основные ваши действия за вас, автоматически.

Для работы с макросами необходимо:

  1. Excel таблицу сохранить с разрешением «.xlsm» (с поддержкой макросов).
  2. Открыть меню «Разработчик».
  3. Нажать на кнопку «Записать макрос».
  4. Выполнить действия, которые хотите автоматизировать.
  5. Закончить запись макроса.
  6. При необходимости откорректировать код макроса в меню «Visual Basic».
Меню Разработчик в Excel таблице

Для запуска макроса требуется нажать кнопку «Макросы» и выбрать записанную команду в открывшемся окне.

Меню запуска макросов в Excel

Способ 4. Написание скрипта на Python

Python - это современный язык программирования, который стал стандартом для обработки данных, анализа и автоматизации.

Для написания кода на Python вам потребуется скачать Python с официального сайта и установить его на персональный компьютер.

Важно: При установке Python обязательно отметьте галочку "Add Python to PATH" - это позволит использовать pip из командной строки.

Pip (менеджер пакетов Python) уже входит в состав Python, начиная с версии 3.4, поэтому дополнительная установка не требуется.

После установки Python необходимо установить дополнительные библиотеки, которые используются в скрипте. Откройте командную строку (Windows) или терминал (Mac/Linux) и выполните следующие команды:

      pip install openpyxl
      pip install lxml
                    

Эти библиотеки необходимы для работы с Excel файлами и генерации XML данных соответственно.

Основной скрипт состоит из двух частей - импорта необходимых модулей и основной логики программы:

Импорт библиотек

import openpyxl
import os
import warnings
from lxml import etree
from datetime import datetime

Основная логика программы

Далее следует основной код, который можно развернуть для просмотра:

# Отключаем предупреждения openpyxl
warnings.filterwarnings('ignore', category=UserWarning, module='openpyxl')

def excel_to_xml_educated_person(excel_file, xml_file):
    """
    Преобразует данные из Excel в XML по схеме educated_person_import_v1.0.9.xsd
    """
    try:
        # Загружаем Excel файл
        workbook = openpyxl.load_workbook(excel_file)
        sheet = workbook.active
        
        # Создаем корневой элемент
        root = etree.Element('RegistrySet')
        
        # Пропускаем заголовки (первая строка)
        for row in sheet.iter_rows(min_row=2, values_only=True):
            # Пропускаем пустые строки
            if all(cell is None for cell in row):
                continue
                
            # Создаем запись RegistryRecord
            record = etree.SubElement(root, 'RegistryRecord')
            
            # Блок Worker
            worker = etree.SubElement(record, 'Worker')
            etree.SubElement(worker, 'LastName').text = str(row[0]) # Фамилия
            etree.SubElement(worker, 'FirstName').text = str(row[1]) # Имя
            etree.SubElement(worker, 'MiddleName').text = str(row[2]) # Отчество
            
            etree.SubElement(worker, 'Snils').text = str(row[3]) # СНИЛC
            etree.SubElement(worker, 'Position').text = str(row[4]) # Должность
            
            # Работодатель
            etree.SubElement(worker, 'EmployerInn').text = str(row[10])
            etree.SubElement(worker, 'EmployerTitle').text = str(row[5])
            
            # Блок Organization
            organization = etree.SubElement(record, 'Organization')
            etree.SubElement(organization, 'Inn').text = str(row[11])
            etree.SubElement(organization, 'Title').text = str(row[12])
            
            # Блок Test
            test = etree.SubElement(record, 'Test') # Оценка
            if str(row[6]) == "Удовлетворительно":
                test.set('isPassed', "true")
            if str(row[6]) == "Неудовлетворительно":
                test.set('isPassed', "false")

            test.set('learnProgramId', str(int(row[13]))) # ID программы обучения
            
            # Дата теста (преобразуем в правильный формат)
            if isinstance(row[7], datetime):
                etree.SubElement(test, 'Date').text = row[7].strftime('%Y-%m-%d')
            else:
                etree.SubElement(test, 'Date').text = str(row[7])
            
            etree.SubElement(test, 'ProtocolNumber').text = str(row[8])
            etree.SubElement(test, 'LearnProgramTitle').text = str(row[9])
        
        # Создаем XML дерево
        tree = etree.ElementTree(root)
        
        # Сохраняем с форматированием
        tree.write(xml_file,
               pretty_print=True,
               encoding='utf-8',
               xml_declaration=True)
        
        print(f"XML файл успешно создан: {xml_file}")
        print(f"Обработано записей: {len(root)}")
        
    except FileNotFoundError:
        print(f"Ошибка: Файл {excel_file} не найден!")
    except Exception as e:
        print(f"Ошибка при обработке: {e}")

# Определяем путь к директории скрипта
def get_script_directory():
    """Возвращает абсолютный путь к директории, где находится скрипт"""
    path = os.path.dirname(os.path.realpath(__file__))
    my_path, base_name = os.path.split(path)
    print(f"Путь к скрипту: {path}")

    return path

# Основная программа
if __name__ == "__main__":
    # Получаем путь к директории скрипта
    script_dir = get_script_directory()
    
    # Формируем полные пути к файлам
    excel_file_path = os.path.join(script_dir, 'Python_reestr-protocol.xlsx')
    xml_file_path = os.path.join(script_dir, 'XML_reestr-protocol.xml')
    
    # Проверяем существование Excel файла
    if os.path.exists(excel_file_path):
        print("Запускаем конвертацию...")
        excel_to_xml_educated_person(excel_file_path, xml_file_path)
    else:
        print("Файл Python_reestr-protocol.xlsx не найден в директории скрипта!")
        print("Доступные файлы:")
        for file in os.listdir(script_dir):
            if file.endswith('.xlsx'):
                print(f" - {file}")
Полезно! Если хотите попробовать свои силы в программировании, то можете взять приведённый выше Python код и доработать под себя, либо использовать в исходном виде.

Порядок запуска скрипта

  1. Скачайте Python-файл reestr-protocol_skript.py
  2. Скачайте и заполните Excel файл с данными об обучении в том же каталоге, что и скрипт
  3. Убедитесь, что Excel файл называется Python_reestr-protocol.xlsx
  4. Откройте терминал/командную строку и перейдите в каталог со скриптом:
  5. cd путь/к/вашей/папке
  6. Запустите скрипт командой:
  7. reestr-protocol_skript.py
  8. После выполнения скрипта в той же папке появится файл XML_reestr-protocol.xml с результатом

Бесплатно в АС Реестр-протокол: Ваш универсальный инструмент

Мы рассмотрели четыре разных подхода к преобразованию Excel-данных в XML - от онлайн-решений до мощной автоматизации на Python.

Варианты с написанием команд на языках программирования дают возможность сформировать xml-файл, но требуют технических знаний. Можно сопоставлять ячейки каждой таблицы с XSD-схемой или заносить вручную каждого работника по отдельности в личном кабинете, что очень долго.

Возникает резонный вопрос: как получить всю мощь Excel таблиц без необходимости вникать в технические тонкости? Ответом на этот вопрос и стал наш сервис, который позволяет бесплатно формировать xml-файл из нескольких Excel таблиц в один клик.

Формирование xml-файла в АС Реестр-протокол (бесплатная функция)

Все возможности сервиса

Что дальше?

После успешного формирования xml-файла:

  • отправьте его в реестр или добавьте в набор ожидающих записей прямо из сервиса, как это сделать рассказано в следующей инструкции;
  • либо авторизуйтесь в личном кабинете работодателя по охране труда, перейдите в Реестр обученных по охране труда лиц и загрузите вручную на странице «Записи, ожидающие добавления в реестр».

Готовы начать работу?

Выберите удобный вариант и опробуйте все функции бесплатно

Быстрый доступ по ИНН
Бесплатное формирование XML
Полный доступ на 14 дней
Что такое XSD-схема и XML-разметка?

Получить доступ к программе

Ключ доступа будет сгенерирован автоматически, можно активировать сразу после получения