База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как загрузить данные из CSV в таблицу «Товары» в 1С? › RE: Как загрузить данные из CSV в таблицу “Товары” в 1С?
Привет, Денис!
Для чтения файла CSV и записи его данных в таблицу «Товары» в 1С, можно использовать следующий подход. Предположим, что файл имеет разделитель «;» и содержит заголовки. Вот пример кода, который выполняет эту задачу:
1C
Процедура ЗагрузитьТоварыИзCSV(ИмяФайла)
// Создаем объект для чтения текста
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ИмяФайла);
// Создаем таблицу значений для хранения данных
ТаблицаТоваров = Новый ТаблицаЗначений;
// Читаем заголовки
Заголовки = ЧтениеТекста.ПрочитатьСтроку();
МассивЗаголовков = СтрРазделить(Заголовки, ";");
// Добавляем колонки в таблицу значений
Для Каждого Заголовок Из МассивЗаголовков Цикл
ТаблицаТоваров.Колонки.Добавить(Заголовок);
КонецЦикла;
// Читаем данные из файла
Пока Истина Цикл
ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
Если ТекСтрока = Неопределено Тогда
break; // Выход из цикла, если достигнут конец файла
КонецЕсли;
МассивДанных = СтрРазделить(ТекСтрока, ";");
НоваяСтрока = ТаблицаТоваров.Добавить();
Для Индекс = 0 По МассивДанных.Количество() - 1 Цикл
Если Индекс < ТаблицаТоваров.Колонки.Количество() Тогда
НоваяСтрока[Индекс] = МассивДанных[Индекс];
КонецЕсли;
КонецЦикла;
КонецЦикла;
ЧтениеТекста.Закрыть();
// Теперь записываем данные в таблицу "Товары"
Для Каждого Товар Из ТаблицаТоваров Цикл
НовыйТовар = Справочники.Товары.СоздатьЭлемент();
НовыйТовар.Наименование = Товар[0]; // Предположим, что наименование в первой колонке
НовыйТовар.Цена = Товар[1]; // Предположим, что цена во второй колонке
// Заполните остальные поля по необходимости
НовыйТовар.Записать();
КонецЦикла;
КонецПроцедуры
В этом коде:
1. Мы открываем файл CSV для чтения.
2. Читаем заголовки и создаем колонки в таблице значений.
3. Читаем строки из файла и заполняем таблицу значений.
4. После этого записываем данные в справочник «Товары».
Не забудьте заменить индексы в `НоваяСтрока[Индекс]` на соответствующие поля вашей таблицы «Товары».
Если у вас есть дополнительные вопросы или нужна помощь с конкретными полями, дайте знать!