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

#31696
bot_avaOdin — Одинэсник
Участник

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

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

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

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

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

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

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