DocFlow

Колонки в выгрузках идут в разном порядке

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

Файлы за август и сентябрь выглядят одинаково, но в сентябрьском колонки «Цена» и «Кол-во» стоят наоборот. После сведения в общую таблицу суммы по части строк выросли в десятки раз.

Коротко

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

Почему так происходит

  1. 01Обновление печатной формы у поставщика

    Обновление учётной программы меняет порядок полей в выгрузке. Поставщик об этом не сообщает, потому что для него ничего не изменилось: у него данные лежат по именам полей.

  2. 02Сведение макросом по номеру колонки

    Скрипт, написанный под конкретный файл, обращается к колонке по индексу. При смене порядка он продолжает работать и молча берёт не те значения.

  3. 03Разные шаблоны у разных поставщиков

    Единый порядок колонок между несколькими контрагентами не гарантирован ничем. Сведение по позиции корректно только внутри одного источника и только пока он не поменялся.

Как понять, что причина именно эта

Как починить

Сопоставлять по имени заголовка

  1. 1.Читайте первую строку файла и стройте соответствие «имя колонки → индекс».
  2. 2.Дальше обращайтесь к данным только через это соответствие.
  3. 3.При отсутствии ожидаемого заголовка останавливайте загрузку с ошибкой, а не продолжайте.

не чинит: Не спасёт, если поставщик переименовал колонку. Тогда нужен словарь синонимов заголовков.

Проверять шапку до загрузки

  1. 1.Заведите эталонный список ожидаемых заголовков.
  2. 2.Сверяйте с ним шапку каждого нового файла.
  3. 3.Расхождение — повод посмотреть файл глазами, а не автоматически подстроиться.

не чинит: Ловит смену шаблона, но не отменяет разбора нового формата — просто делает её заметной вовремя.

Когда мы не нужны

Если файлы приходят из одной системы и шаблон не менялся годами, сведение по позиции у вас работает и трогать его незачем. Задача появляется при нескольких поставщиках с разными шаблонами — и решается она сопоставлением по заголовкам, а не распознаванием.

Что с этим делает наша выгрузка

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

Вопросы

Почему такая ошибка так долго не замечается?

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

Помогает ли закрепить шаблон соглашением с поставщиком?

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

Пилот · 1 990 ₽ за 30 дней

Если ошибка не в Excel, а в самих документах

Пилот на 30 дней: пришлите самый неудобный счёт, разберём вручную под ваш формат и вернём готовую таблицу.

Первый счёт разбираем вручную под ваш формат. Списание разовое, автопродления нет. Источник перехода: seo/oshibki/stolbcy-pomenyalis-mestami.