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

Пример выгрузки контрагентов из 1С в файл-csv. Кодировка UTF-8. Разделитель "|".

Скачать пример выгрузки контрагентов из 1С в файл-csv 1c8_contragents_2_csv.epf. Замечания на J008@J008.ru

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

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

Замечание: Адреса, телефоны, e-mail и т.п., обычно хранится в регистре сведений "Контактная Информация".

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

Result

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

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

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


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

КонецФункции // СоздатьДанныеCSV()

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

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

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

КонецФункции // ВыгрузитьВCSV()

ВыгрузитьВCSV("C:\Temp\my.csv"); 
Открыть csv файл можно в текстовом редакторе в виде простого текста или в Excel в виде таблицы.




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

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

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

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

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

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

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