1С8. Выгружаем номенклатуру из 1С8 в CSV-файл

Пример выгрузки номенклатуры из 1С в файл-csv (1c_2_csv.epf). Скачать пример выгрузки (1c_2_csv.rar) номенклатуры из 1С в файл-csv.

Замечания на J008@J008.ru.

Отдельное спасибо Анастасии С. за ценные замечания.

Весь процесс получения файла можно разделить на три шага:

В примере мы ограничимся первыми 1000 записями. Если нужно получить всю выборку - первую строчку запроса нужно изменить:

Вместо: "ВЫБРАТЬ ПЕРВЫЕ 1000"

надо: "ВЫБРАТЬ "

  • Выполним запрос к справочнику Номенклатуры - вернем Таблицу Значений в основную функцию
  • Из Таблицы Значений создаем текст-строку CSV -(текст заголовков и текст данных)
  • Строку CSV записываем в обычный текстовый файл с кодировкой ANSI и с расширением .csv

На выходе получаем:

1С_ss_1c_to_csv_001.png_example_step_1
// Выполним запрос к справочнику Номенклатуры
// Получим Таблицу Значений
Функция ПолучитьНоменклатуру()
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1000
		|	Номенклатура.Ссылка,
		|	Номенклатура.Код,
		|   Номенклатура.Родитель,
		|	Номенклатура.Наименование
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура";
	Результат = Запрос.Выполнить();
	ТаблицаЗначений = Результат.Выгрузить();
	возврат ТаблицаЗначений;
КонецФункции // ПолучитьНоменклатуру()	

// Создаем строку загоовков для CSV-файла
Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
	//разделитель = "|";
	колонкиТЗ=ТаблицаЗначений.колонки;
	Для каждого колонка Из колонкиТЗ Цикл
		стрКолонки = "" + стрКолонки + колонка.Имя + разделитель ;
	КонецЦикла; 
	Возврат стрКолонки;
КонецФункции

// Создаем текст CSV:
// текст заголовков и 
// текст данных
Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)
	
	текст="";
	для каждого запись из ТаблицаЗначений Цикл
		если текст="" тогда
			текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель) 
				+ Символы.ПС;	
		КонецЕсли;	
				
		сообщить(запись.Наименование);
		текст = текст + запись.Ссылка 
			+ разделитель + запись.Код
			+ разделитель + запись.Родитель
			+ разделитель + запись.Наименование 			
			+ Символы.ПС;		
	КонецЦикла;
		
        //сообщить(текст);
	Возврат текст;

КонецФункции //

// Запишем данные в файл
Функция ЗаписатьCSV(текст,имяФайла)          	
	кодировка = КодировкаТекста.ANSI;
	
    ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);			
	ТекстовыйФайлЗапись.ЗаписатьСтроку(текст); 
	ТекстовыйФайлЗапись.Закрыть();	
	Возврат 0;

КонецФункции // ЗаписатьCSV()

// Основная логика:
Функция ВыгрузитьВCSV(имяФайлаCSV);
    разделитель = "|";
	ТаблицаЗначений = ПолучитьНоменклатуру();
	текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель);
	ЗаписатьCSV(текст,имяФайлаCSV);

КонецФункции

// Начало 
ВыгрузитьВCSV("C:\Temp\csv\my.csv"); 
Открыть csv файл можно в текстовом редакторе в виде простого текста или в Excel в виде таблицы: Последовательность экспора my.csv в Excel: 1С_ss_1c_to_csv_002.png_example_step_1 1С_ss_1c_to_csv_003.png_example_step_2 1С_ss_1c_to_csv_004.png_example_step_3




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга