новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к материалу: Выгрузка в Excel из 1С с применением ADO

    • #1
    • 20.03.2015 10:36
    0
    Выгрузка из 1С в Ексель любых данных в том числе из регистров накопления, сведений, справочников, документов стало намного проще и быстрее  Подробнее>>
    • #2
    • 20.03.2015 10:49
    0
    А не проще ли будет макет сделать, в него вывести результаты выполнения запроса, а потом записать штатными средствами 1С в экселевский файл?

    ТабДок = Новый ТабличныйДокумент;
    
    	Макет = ВнешниеОбработки.ВнешняяОбработка1.ПолучитьМакет("Макет");
    	Запрос = Новый Запрос;
    	Запрос.Текст = 
    		"ВЫБРАТЬ
    		|ЗаказыПокупателейОстатки.Номенклатура,
     		|ЗаказыПокупателейОстатки.Цена,
     		|ЗаказыПокупателейОстатки.ЕдиницаИзмерения,
     		|ЗаказыПокупателейОстатки.КоличествоОстаток,
     		|ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток,
     		|ЗаказыПокупателейОстатки.СуммаУпрОстаток
     		|ИЗ
    		|РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
     		|ГДЕ
     		|ЗаказыПокупателейОстатки.КоличествоОстаток > 0";
    
    	Результат = Запрос.Выполнить();
    
    	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    	ТабДок.Очистить();
    	ТабДок.Вывести(ОбластьЗаголовок);
    	ТабДок.Вывести(ОбластьШапкаТаблицы);
    	ТабДок.НачатьАвтогруппировкуСтрок();
    
    	ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    		ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    		ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    	КонецЦикла;
    
    	ТабДок.ЗакончитьАвтогруппировкуСтрок();
    	ТабДок.Вывести(ОбластьПодвалТаблицы);
    	ТабДок.Вывести(ОбластьПодвал);
    	
    	ТабДок.Записать(ИмяФайлаЭксель, ТипФайлаТабличногоДокумента.XLS);
    
    • #3
    • 06.04.2015 09:11
    0
    А если 500-600 тыс строк и нужно оптимизировать? ADO быстрее.
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться