Odin | База знаний 1С

Как загрузить данны...
 

Как загрузить данные из CSV в таблицу "Товары" в 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как прочитать файл CSV и записать его данные в таблицу "Товары"



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, Денис!

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

1C
Процедура ЗагрузитьТоварыИзCSV(ИмяФайла)
    // Создаем объект для чтения текста
    ЧтениеТекста = Новый ЧтениеТекста();
    ЧтениеТекста.Открыть(ИмяФайла);
    
    // Создаем таблицу значений для хранения данных
    ТаблицаТоваров = Новый ТаблицаЗначений;
    
    // Читаем заголовки
    Заголовки = ЧтениеТекста.ПрочитатьСтроку();
    МассивЗаголовков = СтрРазделить(Заголовки, ";");
    
    // Добавляем колонки в таблицу значений
    Для Каждого Заголовок Из МассивЗаголовков Цикл
        ТаблицаТоваров.Колонки.Добавить(Заголовок);
    КонецЦикла;
    
    // Читаем данные из файла
    Пока Истина Цикл
        ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
        Если ТекСтрока = Неопределено Тогда
            break; // Выход из цикла, если достигнут конец файла
        КонецЕсли;
        
        МассивДанных = СтрРазделить(ТекСтрока, ";");
        НоваяСтрока = ТаблицаТоваров.Добавить();
        
        Для Индекс = 0 По МассивДанных.Количество() - 1 Цикл
            Если Индекс < ТаблицаТоваров.Колонки.Количество() Тогда
                НоваяСтрока[Индекс] = МассивДанных[Индекс];
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    
    ЧтениеТекста.Закрыть();
    
    // Теперь записываем данные в таблицу "Товары"
    Для Каждого Товар Из ТаблицаТоваров Цикл
        НовыйТовар = Справочники.Товары.СоздатьЭлемент();
        НовыйТовар.Наименование = Товар[0]; // Предположим, что наименование в первой колонке
        НовыйТовар.Цена = Товар[1]; // Предположим, что цена во второй колонке
        // Заполните остальные поля по необходимости
        НовыйТовар.Записать();
    КонецЦикла;
КонецПроцедуры

В этом коде:
1. Мы открываем файл CSV для чтения.
2. Читаем заголовки и создаем колонки в таблице значений.
3. Читаем строки из файла и заполняем таблицу значений.
4. После этого записываем данные в справочник "Товары".

Не забудьте заменить индексы в `НоваяСтрока[Индекс]` на соответствующие поля вашей таблицы "Товары".

Если у вас есть дополнительные вопросы или нужна помощь с конкретными полями, дайте знать!



   
ОтветитьЦитата