Добавить в корзинуПозвонить
Найти в Дзене
13 Копеек. Налоги.

Ошибки в файлах xml-декларации 3-НДФЛ: строки, колонки, значения, атрибуты. Как исправить.

Если вы отправляете декларацию 3-НДФЛ, то Вы работаете с файлом формата XML. С первого взгляда - это набор символов, но для налоговой — это строгая иерархия. Возможно кому-то информация будет полезна, чтобы понимать, где именно зарыта ошибка и почему не грузится файл xml декларации 3-НДФЛ. С июля 2025 года, кроме 3-НДФЛ необходимо также загружать файлы xml со справками об оплате услуг. Структура файлов в них похожа на 3-НДФЛ, то есть информацию можно использовать и при ошибках в файлах xml справок об оплате услуг. Если у Вас есть необходимость загрузить справки об оплате услуг в личный кабинет налогоплательщика или на госулуги, то проверяйте также, нет ли ошибок в них. Прежде чем открыть файл и прочитать первую строчку кода, система проверяет его название. Весь XML состоит из тегов. Это слова в угловых скобках, которые работают как папки. Внутри тега (внутри первой скобки) стоят атрибуты. Если «тег» — это папка, то атрибут — это название страницы в ней. Атрибут уточняет, какая именно
Оглавление
Ошибки в файлах xml-декларации 3-НДФЛ: строки, колонки, значения, атрибуты. Как исправить.
Ошибки в файлах xml-декларации 3-НДФЛ: строки, колонки, значения, атрибуты. Как исправить.

Если вы отправляете декларацию 3-НДФЛ, то Вы работаете с файлом формата XML. С первого взгляда - это набор символов, но для налоговой — это строгая иерархия. Возможно кому-то информация будет полезна, чтобы понимать, где именно зарыта ошибка и почему не грузится файл xml декларации 3-НДФЛ.

С июля 2025 года, кроме 3-НДФЛ необходимо также загружать файлы xml со справками об оплате услуг. Структура файлов в них похожа на 3-НДФЛ, то есть информацию можно использовать и при ошибках в файлах xml справок об оплате услуг. Если у Вас есть необходимость загрузить справки об оплате услуг в личный кабинет налогоплательщика или на госулуги, то проверяйте также, нет ли ошибок в них.

Уровни в xml-файла декларации 3-НДФЛ

Уровень 0: Имя файла («Нулевая строка»)

Прежде чем открыть файл и прочитать первую строчку кода, система проверяет его название.

  • В чем проблема: У налоговой жесткий стандарт наименования (например, NO_NDFL3_7700_7700_770123456789_...).
  • Ошибка «Line 0» (строка 0): Если вы переименовали файл в «Декларация_Иванов.xml» или просто добавили лишнюю точку/пробел в название, робот выдает ошибку нулевой строки. Он просто отказывается признавать этот файл своим.
  • Решение: Никогда не переименовывайте файл, выгруженный из программы. Его имя — это его первичный идентификатор. Также смотрите, чтобы при копировании и скачивании в название не было добавлено других символов (копия, 2 и т.д.)

Уровень 1: Теги (папки)

Весь XML состоит из тегов. Это слова в угловых скобках, которые работают как папки.

  • <Файл> — это самая большая папка, в которой лежит вся декларация.
  • <СведДох> — это папка поменьше, где лежат данные о доходах.
  • Как это работает: У каждого тега есть начало (<Тег>) и конец (</Тег>). Если вы случайно удалите одну «скобочку», вся конструкция рухнет.

Уровень 2: Атрибуты (Свойства)

Внутри тега (внутри первой скобки) стоят атрибуты. Если «тег» — это папка, то атрибут — это название страницы в ней.

Атрибут уточняет, какая именно информация лежит внутри. Например, в теге <Файл ...> может быть несколько десятков атрибутов.

  • Пример: ВерсПрог="5.21"
  • Здесь: ВерсПрог — это название атрибута (версия программы).

Уровень 3: Значение атрибута (Данные)

Это то, что написано «на листке». Значение всегда стоит в кавычках сразу после знака «равно».

  • Пример: В коде ИННФЛ="770123456789":
  • ИННФЛ — это атрибут.
  • "770123456789" — это значение атрибута.

Почему это важно для ошибок? Большинство ошибок во «второй строке» (где все данные) связаны именно со значениями атрибутов. Примеры ошибок:

  1. Лишние знаки: Если в фамилии (значении атрибута Фамилия) стоит лишний пробел в конце или случайная цифра.
  2. Формат: Если в атрибуте ДатаРожд (дата рождения) вместо точек стоят тире.
  3. Запрещенные символы: Если в названии компании (значении атрибута) вы использовали кавычки-елочки « », а XML понимает только обычные " ".

Всё это вместе: название файла, теги, атрибуты, значения – называются элементами файла xml

Строки (линии, line) и колонки (column)

Строка №1 (Пролог):

Обычно в 3-НДФЛ она имеет вид <?xml version="1.0" encoding="windows-1251"?> Это как техническая команда. Она всегда начинается с <?xml.... Это команда системе: «Я — файл формата XML, читай меня так-то».

Строка №2 (Корневой элемент):

Это всё содержимое вашей декларации. Она начинается с тега <Файл и тянется вправо на тысячи символов.

Важно: Почему строк всего две? Потому что переносы строк (нажатие Enter) — это лишние байты. Налоговая программа «склеивает» все данные (вашу фамилию, доходы, вычеты) в одну длинную вторую строку.

3. Колонки: Линейка для букв

Когда ошибка пишет "Колонка: 45" (Column Number: 45), то это не колонка в Excel. Это номер символа в строке, если считать слева направо.

  • Column 1 — первый символ в строке.
  • Column 6 — шестой символ.

Если ошибка говорит Строка 1, колонка 1 (Line 1, Column 1), значит, файл испорчен с самого первого знака. Если Строка 2, колонка 1500 (Line 2, Column 1500) — значит, робот «проехал» существенную часть декларации и где-то споткнулся (например, в фамилии встретил недопустимый символ вроде пробела).

4. Почему ошибки возникают на пустом месте?

Самая коварная вещь в XML — это невидимые символы. Вы открываете файл в Блокноте и видите: 1: <?xml... 2: <Файл...

Всё кажется идеальным. Но робот видит файл иначе. Для него пробел, невидимая метка кодировки или лишний перенос строки — это полноценные препятствия.

  • Лишний пробел в начале сдвигает все колонки.
  • Лишний Enter в начале сдвигает на одну все строки.
  • Лишний Enter в конце создает «пустую строку», на которой робот может выдать ошибку «неожиданный конец документа».

Встречающиеся адреса ошибок:

  1. Строка 1, колонка 1-5 (Line 1, Col 1-5): Проблема с кодировкой или невидимыми символами (BOM) в начале. Необходимо пересохранить файл в кодировке windows-1251 (UTF-8).
  2. Строка 2, колонка 1-10 (Line 2, Col 1-10): Ошибка в самом начале данных. Скорее всего, файл поврежден при скачивании или открытии в браузере, возможно открыт в программе, которая автоматически ставит пустую строку вначале. Необходимо скачать файл или выгрузить новый, или удалить в файле лишние символы
  3. Строка 2, колонка «большое число» – (Line 2, Column «большое число»): Ошибка в данных (ИНН, адрес, ФИО). Где-то внутри текста затесался символ, который XML не понимает (например, знак & или нестандартные кавычки), или знак, не соответствующий xsd-схеме (смотрите ниже). Для решения надо сравнить символы с порядком заполнения (форматом файла обмена).
  4. Значение Атрибута такого-то недопустимое. Тут надо найти название атрибута в порядке заполнения декларации и сравнить с теми значениями, которые указаны как возможные.
  5. Недопустимое Значение. Ищем значение, которое выдало ошибку и сравниваем атрибут с форматом файла обмена в порядке заполнения 3-НДФЛ (xsd-схема xml файла)
  6. Недопустимый атрибут. Ищем атрибут, который недопустим. Возможно он случайно скопирован из предыдущей версии программы, а его отменили. Но в любом случае надо сверить, должен ли он быть в формате файла обмена 3-НДФЛ в порядке заполнения деклараций.
  7. Значение атрибута не соответствует данным в личном кабинете. Сверяем данные из личного кабинета с теми, что заполнены в декларации (в том числе должны соответствовать большие и маленькие буквы, пробелы и прочие нечитаемые символы)
  8. Ошибка в строке 0 (Line 0) – это ошибка в названии файла. Возможно он был переименован, добавлены слова «копия» или (2) при скачивании, или что-то другое. Возможно указан неправильный ИНН или код налоговой.

XSD-схема.

Если XML — это сам документ (наполненная декларация), то XSD (XML Schema Definition) — это шаблон или строгий «чертеж», по которому этот документ должен быть построен.

Для налоговой XSD-схема — это «эталонный метр». Когда вы загружаете 3-НДФЛ, сервер сначала берет вашу XML-декларацию и прикладывает её к XSD-схеме. Если хоть одна деталь не совпадает с чертежом, вылетает ошибка.

Зачем нужна XSD-схема?

Представьте, что вы заполняете анкету. XSD-схема — это правила заполнения этой анкеты, которые диктуют:

  1. Порядок полей: сначала фамилия, потом имя (а не наоборот).
  2. Обязательность: поле «ИНН» нельзя оставлять пустым.
  3. Тип данных: в поле «Дата» должны быть только цифры и точки, а не буквы.
  4. Длина: в ИНН должно быть строго 12 цифр для физлица.

Как это выглядит в коде?

В самом XML-файле может быть ссылка на эту схему в атрибутах первого тега (но не всегда). Она выглядит примерно так: xsi:noNamespaceSchemaLocation="ndfl3_5_02.xsd"

Это технический адрес, по которому программа понимает, с каким именно «чертежом» сравнивать ваш файл. Если вы подаете декларацию за 2025 год, а файл ссылается на схему 2023 года — налоговая его не примет. В последнее время схема в файлах декларации xml не указывается. Вероятно нужная xsd-схема определяется по году, за который предоставляется декларация 3-НДФЛ (или справка об оплате услуг).

Структура схемы: Атрибут и Значение

Имя атрибута - это то, как именно должно называться поле (например, только Фамилия, а не Lastname).

Формат значения - это то, какие данные можно вписать в кавычки.

Пример: В XSD-схеме прописано, что атрибут СумДох (сумма дохода) должен быть числом с двумя знаками после точки.

  • Если вы напишете в XML СумДох="100.50" — проверка пройдена.
  • Если вы напишете СумДох="Много" — ошибка XSD.

То есть XSD-схема — это как бы цензор. Она знает, как должна выглядеть идеальная декларация. Когда вы нажимаете "Отправить", налоговый робот берет вашу декларацию и сверяет каждый символ с этой схемой. Любое отклонение — и у декларации появляется статус «отклонено».

Что нельзя писать в декларации:

  • Кавычки-ёлочки (« »): XML признает только прямые компьютерные кавычки (" "). Если вы скопировали название фирмы из интернета вместе с «ёлочками», файл не пройдет проверку.
  • Амперсанд (&): Этот символ — технический код для XML. Если он стоит в названии компании (например, «H&M»), робот решит, что это начало новой команды, не найдет её конца и выдаст ошибку.
  • Знаки «больше» и «меньше» (< >): Поскольку на них держится весь каркас файла (теги), их нельзя использовать внутри текста.

Почему парсер «мажет» с номером колонки?

Парсер - это программа (бот), которая читает файл и ищет ошибки.

Если вы случайно поставите пробел в самом начале файла, ошибка часто указывает не на 1-ю колонку, а на 6-ю или 7-ю. Почему? Потому что налоговый робот не ругается на сам пробел. Он читает пробел, затем читает слово <?xml, доходит до конца этого слова и только тогда понимает: «слово xml не может стоять после пробела». Колонка в ошибке — это место, где у робота закончилось «терпение», а не там, где началась опечатка. Поэтому проверяйте символы до указанной колонки (номера символа).

На канале «13 Копеек» я опубликовал несколько статей по конкретным ошибкам в файле xml (а также другим сбоям на сайте и в программах налоговой). Посмотреть их можно здесь:

https://dzen.ru/suite/d6f52d45-04ff-4bff-9b54-5db8e52a63f8

Если есть ещё какие-то ошибки при отправке, то пишите, пожалуйста, комментарии. Попробую найти решение.