Обработка для импорта многострочных данных с разделителями из CSV в таблицу значений 1С (управляемая форма)







*Обработка правильно загружает многострочные данные в ячейках, которые также могут содержать символы разделителя.
*Количество колонок в CSV вычисляется динамически, в таблице значений создаётся такое же количество колонок.

Когда вознкла необходимость настроить импорт данных из CSV в 1С, то на просторах интернета удалось найти только ограниченные обработки, которые не могли корректно загружать многострочные данные и данные, внутри которых содержатся знаки разделителя.

Данная обработка правильно импортирует такие данные в таблицу значений.

Количество колонок в CSV вычисляется динамически, в таблице значений создаётся такое же количество колонок.

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

Можно флажком отключить отображение данных на форме, в таком случае при большом количестве данных процедура будет работать быстрее.

При необходимости можно подключить в БСП «Дополнительные обработки».

 

Есть вариант использования обработки в качестве API из других модулей:

 

Функция мCSV_В_ТЗ_Сервер()

Обработка = ВнешниеОбработки.Создать( "C:1С\_ts56_ru_CSV_Импорт.epf", Ложь );
лОбработка._Файл_Имя_Полное = "C:1С\_Номенклатура_Демо.csv";
лОбработка._Кодировка = "ANSI";
лОбработка._Колонки_Разделитель = ";";
лТЗ_Данные = лОбработка._Файл_CSV_В_ТЗ();//переменная содержит таблицу значений

лКолонки_Количество = лТЗ_Данные.Колонки.Количество();
лСтроки_Количество = лТЗ_Данные.Количество();

… перебор строк таблицы значений и заполнение значений в базе данных 1С

 

Наглядная информация с примерами есть в приложенных к публикации изображениях.

Просьба поставить плюсик если обработка вам понравилась.

7 Comments

  1. MaxS

    Почему отсутствует информация о том, что код модуля обработки закрыт? За что здесь тратить 2SM? Эту обработку нельзя подключить как внешнюю, т.к. нет процедуры — сведений об обработке…

    Reply
  2. tunesoft

    (1) MaxS,

    >За что здесь тратить 2SM?

    30 рублей для вас дорого за рабочую обработку, на разработку которой потрачен не один час ? баночка пепsи стоит дороже 🙂

    >Эту обработку нельзя подключить как внешнюю, т.к. нет процедуры — сведений об обработке…

    Добавим сегодня и можем отправить вам файл на личный адрес чтобы не тратить sm.

    Reply
  3. MaxS

    (2) Купленный напиток можно выпить, здесь всё понятно — вот деньги, вот напиток.

    А обработка оказалась бесполезной для меня из-за неполного описания. Т.е. баночка пепси которую нельзя открыть. 30р. не жалко, но мне такой продукт не нужен, можно не отправлять повторно, спасибо. 😉

    Reply
  4. tunesoft

    (3) MaxS, если правильно понял, то вам необходимо подключить в «дополнительные обработки», уже сделано, через 5 минут файл будет добавлен в публикацию.

    Что ещё не устраивает в продукте ?

    Reply
  5. tunesoft

    (3) MaxS, обработка обновлена в публикации, теперь подключается в «дополнительные обработки».

    Как вам отправить новый файл ?

    Reply
  6. tunesoft

    (3) MaxS, обработка отправлена вам по почте.

    Reply
  7. kuzyara

    Кто хочет готовый код, вот.

    Reply

Leave a Comment

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