Импорт из CSV в 1С

При интеграции 1С с другими приложениями или сайтами встает задача организации обмена данными в каком-либо формате. Один из таких форматов — CSV (Сomma-Separated Values). Этот формат предназначен для организации данных в табличной форме, при этом разделителями колонок могут выступать запятые (,), точки с запятой (;) или знаки табуляции (в 1С — Символ.Таб).

Встроенных процедур для чтения файлов CSV у платформы 1С:Предприятие нет. Но в интернете существует большое количество статей, предлагающих варианты программного кода для работы с такими файлами. Суть этих методик сводится к следующему:

  • производится выбор файла на диске и его чтение;
  • с помощью встроенной в большинство типовых конфигураций функции РазложитьСтрокуВМассивПодстрок() выполняется выделение колонок в шапке таблицы и в строках;
  • строки записываются в таблицу значений или используются иным способом.

Процедуру выбора файла на диске мы опустим, а код для чтения CSV выглядит так:

Данный метод позаимствован с сайта programmist1s.ru.

Однако, этот метод работает не со всеми файлами CSV, т.к. имеет некоторые ограничения:

  1. файл CSV не должен иметь знаков разделителя внутри колонок;
  2. внутри колонок не должно быть знаков переноса строки.

Нам же попался файл, который все это имеет, поэтому пришлось отказаться от использования стандартной функции РазложитьСтрокуВМассивПодстрок() и написать вместо нее свою. Сразу оговорюсь, что функция писалась под конкретный файл CSV (он был предоставлен заказчиком), поэтому мы с радостью учтем ваши замечания и дополнения.

Итак, наш файл CSV имеет внутри колонок символы переноса строки и знаки разделителя (в нашем случае это «;»), колонки с этими символами заключены в кавычки и Excel эту конструкцию воспринимает правильно. В «нормальном» виде в файле присутствует только первая строка заголовков колонок. Этим мы и воспользуемся.

Если Вам необходимо наладить обмен с 1С в формате CSV, обращайтесь, наши специалисты выполнят эту работу в кратчайшие сроки.

Импорт из CSV в 1С: 5 комментариев

  1. Александр

    Для больших csv файлов этот метод будет работать вечность, если вообще не умрет. Подобные вещи по-хорошему надо делать через ADO, правда про это мало кто знает.

    1. Нестандартные решения в 1С Автор записи

      Действительно, с очень большими файлами это может работать долго. Будем благодарны, если вы напишете в комментарии свой вариант обработки CSV.

  2. Александр

    Очень вам благодарен, попался так же не типовой CSV. Не хотел мучиться и очень быстро наткнулся на вшу статью, парсит на УРА!!!

  3. zoikins

    Спасибо большое — очень помогло ваше решение :))))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *