Выкладываю обработку-шаблон для загрузки данных из файла csv в 1с.

Она позволяет выбрать файл csv для загрузки.

Получить из файла строки и разложить их в массив.

Вам остается лишь дописать что вы хотите сделать с полученными данными.

Если не сможете разобраться как это сделать - обращайтесь :)

Скачать обработку-шаблон Импорт в 1с из файла CSV

Текст процедур обработки:

&НаКлиенте
Процедура ЗагрузитьCSV(Команда)  // выполняется при нажатии на кнопку
	ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); //!!!!!!!!!!!!
ДиалогФыбораФайла.Фильтр="csv файл с разделтелями (*.csv)|*.csv|";

ДиалогФыбораФайла.Заголовок = "Выберите файл";
ДиалогФыбораФайла.ИндексФильтра = 0;
описаниеОповещения = Новый ОписаниеОповещения("ГрузимИзФайла", ЭтотОбъект);
    
    ДиалогФыбораФайла.Показать(описаниеОповещения);	

КонецПроцедуры



&НаКлиенте
Процедура ГрузимИзФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт // вызываем диалог выбора файла
    
    Если ВыбранныеФайлы <> Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда
      //  Сообщить("Файл выбран!");
//работаем с файлом
    Имяфайла=ВыбранныеФайлы[0];		
// Пишем в реестр
    сообщить(имяФайла); // вызываем дальнейшую процедуру обработки
	Путь=имяФайла; // для сохранения xml понадобится
// читаем файл	
ЗагружаемыйФайл = Новый ТекстовыйДокумент; 
ЗагружаемыйФайл.Прочитать(ИмяФайла);

Если лист="лист1" тогда
	обработатьCSV1(ЗагружаемыйФайл);
	конецЕсли;

    Иначе
        Сообщить("Файл не выбран!");
    КонецЕсли;
    

КонецПроцедуры

// процедуру обработатьCSV1(файл) - можно сделать на клиенте
&наСервере   
процедура обработатьCSV1(файл)
	для номерстроки=2 по файл.КоличествоСтрок() цикл // первую строку пропускаем т.к. там название полей
	строка=файл.получитьСтроку(номерСтроки);
	массив=РазложитьСтрокуВМассивПодстрок(строка,";"); // строка csv - файла, преобразованная в массив, дальше с этими данными можно делать что угодно 

		конецЦикла;
	конецПроцедуры
	
	// процедуру РазложитьСтрокуВМассивПодстрок - можно сделать на клиенте, если процедура "обработатьCSV1" тоже имеет директиву &наКлиенте
	&наСервере
	Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
   
   МассивСтрок = Новый Массив();
   Если Разделитель = " " Тогда
       Стр = СокрЛП(Стр);
       Пока 1=1 Цикл
           Поз = Найти(Стр,Разделитель);
           Если Поз=0 Тогда
               МассивСтрок.Добавить(Стр);
               Возврат МассивСтрок;
           КонецЕсли;
           МассивСтрок.Добавить(Лев(Стр,Поз-1));
           Стр = СокрЛ(Сред(Стр,Поз));
       КонецЦикла;
   Иначе
       ДлинаРазделителя = СтрДлина(Разделитель);
       Пока 1=1 Цикл
           Поз = Найти(Стр,Разделитель);
           Если Поз=0 Тогда
               МассивСтрок.Добавить(Стр);
               Возврат МассивСтрок;
           КонецЕсли;
           МассивСтрок.Добавить(Лев(Стр,Поз-1));
           Стр = Сред(Стр,Поз+ДлинаРазделителя);
       КонецЦикла;
   КонецЕсли;
   
КонецФункции // глРазложить

Добавить комментарий


Защитный код
Обновить