Колонки в выгрузках идут в разном порядке
Как это выглядит
Файлы за август и сентябрь выглядят одинаково, но в сентябрьском колонки «Цена» и «Кол-во» стоят наоборот. После сведения в общую таблицу суммы по части строк выросли в десятки раз.
Коротко
Сведение файлов по номеру колонки работает ровно до первой смены шаблона. Смена порядка не вызывает ошибку и ничего не ломает технически: числа встают в соседние колонки и выглядят правдоподобно. Обнаруживается это обычно на итогах через месяц, поэтому сопоставлять надо по имени заголовка, а не по позиции.
Почему так происходит
01Обновление печатной формы у поставщика
Обновление учётной программы меняет порядок полей в выгрузке. Поставщик об этом не сообщает, потому что для него ничего не изменилось: у него данные лежат по именам полей.
02Сведение макросом по номеру колонки
Скрипт, написанный под конкретный файл, обращается к колонке по индексу. При смене порядка он продолжает работать и молча берёт не те значения.
03Разные шаблоны у разных поставщиков
Единый порядок колонок между несколькими контрагентами не гарантирован ничем. Сведение по позиции корректно только внутри одного источника и только пока он не поменялся.
Как понять, что причина именно эта
- Сравните строки заголовков всех файлов между собой — расхождение видно сразу и до всякого сведения.
- Проверьте порядок величин по колонкам: цена в тысячах и количество в единицах путаются заметно, если посмотреть на минимум и максимум.
- Пересчитайте сумму как произведение цены на количество и сравните с колонкой суммы: перестановка почти всегда даёт расхождение.
Как починить
Сопоставлять по имени заголовка
- 1.Читайте первую строку файла и стройте соответствие «имя колонки → индекс».
- 2.Дальше обращайтесь к данным только через это соответствие.
- 3.При отсутствии ожидаемого заголовка останавливайте загрузку с ошибкой, а не продолжайте.
не чинит: Не спасёт, если поставщик переименовал колонку. Тогда нужен словарь синонимов заголовков.
Проверять шапку до загрузки
- 1.Заведите эталонный список ожидаемых заголовков.
- 2.Сверяйте с ним шапку каждого нового файла.
- 3.Расхождение — повод посмотреть файл глазами, а не автоматически подстроиться.
не чинит: Ловит смену шаблона, но не отменяет разбора нового формата — просто делает её заметной вовремя.
Когда мы не нужны
Если файлы приходят из одной системы и шаблон не менялся годами, сведение по позиции у вас работает и трогать его незачем. Задача появляется при нескольких поставщиках с разными шаблонами — и решается она сопоставлением по заголовкам, а не распознаванием.
Что с этим делает наша выгрузка
Наша выгрузка всегда идёт с фиксированной шапкой и одинаковым порядком колонок, поэтому её можно грузить по именам заголовков без сюрпризов. Автоматического сопоставления чужих шаблонов между собой мы не делаем. При ручном разборе первого счёта состав и порядок колонок согласуем с вами один раз и дальше не меняем.
Вопросы
Почему такая ошибка так долго не замечается?
Потому что она не выглядит как ошибка: в ячейках стоят числа, файл открывается, итоги считаются. Расхождение всплывает при сверке с поставщиком или при инвентаризации, то есть спустя недели.
Помогает ли закрепить шаблон соглашением с поставщиком?
Помогает, но не отменяет проверки шапки: обновление программы у поставщика меняет форму без чьего-либо злого умысла и без предупреждения.
Если ошибка не в Excel, а в самих документах
Пилот на 30 дней: пришлите самый неудобный счёт, разберём вручную под ваш формат и вернём готовую таблицу.
Первый счёт разбираем вручную под ваш формат. Списание разовое, автопродления нет. Источник перехода: seo/oshibki/stolbcy-pomenyalis-mestami.
Другие ошибки