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

Контактная информация контрагентов почта, адрес, сайт, как правило хранится в 1С в Регистре Сведений.

Контактную информацию контрагентов из 1С в CSV-файл

Информация представлена в виде записей. Контактную информацию контрагентов из 1С в CSV-файл

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

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

  • Выполним запрос к Регистру сведений - вернем Таблицу Значений
  • Из Таблицы Значений создаем текст CSV файла в виде большой строки -(текст заголовков и текст данных)
  • Текст CSV записываем в обычный текстовый файл с кодировкой ANSI и с расширением .csv (C:\Temp\ki.csv)

На выходе получаем C:\Temp\ki.csv:

Контактную информацию контрагентов из 1С в CSV-файл

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


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

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


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

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

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

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

// Основная логика:
Функция ВыгрузитьКонтактную_Информацию_Контрагентов_В_CSV(имяФайлаCSV);
	сообщить("Выгрузить Контактную Информацию Контрагентов в формате CSV в " + 
		имяФайлаCSV);
		
	разделительCSV = "|";
	
	ТаблицаЗначений = ПолучитьКонтактнуюИнформациюКонтрагентов();
	текст = СоздатьДанныеCSV(ТаблицаЗначений,разделительCSV);
	ЗаписатьCSV(текст,имяФайлаCSV);
    сообщить(имяФайлаCSV + " -[OK!]" );
КонецФункции

ВыгрузитьКонтактную_Информацию_Контрагентов_В_CSV("C:\Temp\ki.csv"); 

Открыть csv файл можно в текстовом редакторе в виде простого текста или в Excel в виде таблицы.

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




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

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

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

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

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

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

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