CSV импортируется со съехавшими столбцами: кавычки, переносы и ведущие нули

Файл выглядит нормально в редакторе таблиц, но после импорта адрес оказывается в поле телефона, а часть клиентов превращается в дополнительные строки. Причина может быть в обычной запятой внутри названия или переносе строки в комментарии. CSV — текстовый формат с правилами экранирования; это не всегда «каждая строка — запись, каждая запятая — новый столбец».
Сначала зафиксируйте вариант формата
Согласуйте разделитель, кодировку, наличие заголовка и правила кавычек. Не полагайтесь только на расширение .csv: выгрузки с точкой с запятой широко встречаются, а десятичная запятая делает ручное угадывание ещё менее надёжным. Полезнее показать предварительный просмотр и попросить подтвердить параметры, чем молча выбрать наиболее вероятный разделитель.
В формате с кавычками разделитель внутри заключённого поля остаётся частью значения. Кавычка внутри такого поля представляется предусмотренным экранированием. Допустимый перенос внутри поля не должен создавать новую бизнес-запись. Обычный split по строкам и запятым эти различия не видит.
| Пример значения | Ошибка простого разбора | Правильный контроль |
|---|---|---|
| «ООО, Север» в одном поле | Лишний столбец после запятой | Учитывать границы кавычек |
| Комментарий с переносом | Ложная новая запись | Различать перенос записи и перенос внутри поля |
| Артикул 00127 | Преобразование в число 127 | Хранить идентификатор строкой |
| Две одинаковые подписи заголовков | Непонятное сопоставление полей | Остановить автоматический выбор соответствий |
| Пустая ячейка в середине | Сдвиг значений в соседние поля | Сохранять позицию пустого значения |
Число — не свойство любых цифр
Телефон, код клиента, индекс и артикул могут состоять из цифр, но арифметика над ними не нужна. Приведение к числу удалит ведущие нули, а длинный идентификатор способен потерять точность. Тип определяется смыслом столбца, а не первой заполненной строкой.
Для дат и денежных значений задайте явный формат. Запись 03/04/2026 неоднозначна без соглашения. Значение 1,234 тоже может означать разные величины. Не исправляйте такие случаи автоматически по удобному предположению. Показать исходную ячейку и ожидаемый формат дешевле, чем потом восстанавливать даты договоров.
Предварительный просмотр должен объяснять отказ
Покажите номера логических записей, названия полей, исходные значения и причину ошибки. Номер физической строки файла может отличаться от номера записи из-за переносов внутри кавычек; это стоит учитывать в сообщении. При большом файле полезна отдельная выгрузка исключений без лишних персональных данных.
Разбор структуры ещё не означает готовность к записи в CRM. Затем проверяют обязательные поля, допустимые значения справочников, внешние ID и правила обновления. Для первой загрузки используйте небольшой пробный набор и понятный режим: только создать, только обновить или предварительный просмотр. Массовое объединение клиентов по одному совпавшему телефону — отдельное рискованное действие.
Как пользоваться локальным разбором
В инструменте можно вставить учебный CSV и выбрать запятую либо точку с запятой. Он учитывает кавычки, удвоенные кавычки и переносы внутри поля. Значения остаются строками. Проверяются число столбцов относительно заголовка и повторяющиеся имена полей. Никакой загрузки в CRM не происходит.
Поскольку ввод текстовый, инструмент не определяет исходную кодировку файла и не исправляет испорченные при открытии символы. Для настоящего импортера нужен этап чтения байтов и согласованной декодировки. Также не стоит вставлять действующую клиентскую базу ради проверки механики: достаточно нескольких вымышленных строк с такими же особенностями.
После успешного предпросмотра сохраните спецификацию обмена и контрольный файл. Тогда следующая версия выгрузки не сможет незаметно переставить колонки или изменить формат даты. Импорт становится повторяемым процессом с проверяемым результатом, а не разовой операцией «кажется, всё загрузилось».
Проверка структуры учебного CSV без преобразования типов
Только разбор введённого текста. Кодировка файла, бизнес-правила и права на импорт не проверяются; ведущие нули сохраняются. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
