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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как загрузить данные из CSV в таблицу «Товары» в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #31695
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С