Экспорт данных из 1С в Excell в примерах
Не смотря на то, что в 1С достаточно хорошо реализованы таблицы, иногда появляется необходимоть сохранить данные в Excel, и там их окончательно отредактировать, поскольку Excel обладает большими возможностями по редактированию, фильтрации и оформлению данных представленных в табличном виде.
Хочу заранее оговориться, здесь идет разговор именно о программном экспорте данных. Поскольку чтобы сохранить отчет в Excel достаточно нажать кнопку с дискеткой и выбрать тип файла “*.xls”. :)
Итак рассмотрим конкретную задачу - экспорт справочника контрагенты в таблицу Excel:
1. Необходимо создать новую обработку
2. Открыть модуль формы и процедуре Выполнить() прописать следующий код:
Процедура Выполнить()
//экспорт элементов справочника в таблицу Excel
Путь = “C:\temp\пример.xls”;//путь к файлу (он должен быть уже создан)
ОбЕхсеl = СоздатьОбъект(”Excel.Application”); //создаем объект Excel
РабочиеКниги = ОбЕхсеl.Workbooks; // ... объект книга
РабочаяКнига = РабочиеКниги.Open(Путь); // ...ссылка на определенную книгу
РабочийЛист = РабочаяКнига.Worksheets(1); //ссылка на первый лист в книге ка = СоздатьОбъект(”Справочиник.Контрагенты”); //переменная для перебора элементов справочника контрагенты ка.ВыбратьЭлементы();//перебор элементов + запись значений на рабочий лист сч=2;
Пока ка.ПолучитьЭлемент()>0 Цикл
РабочийЛист.Cells(сч,2).Value)=ка.Наименование;
РабочийЛист.Cells(сч,3).Value)=ка.ПочтовыйАдрес;
РабочийЛист.Cells(сч,4).Value)=ка.Телефоны; сч=сч+1
КонецЦикла;
//Экспорт закончен созранение и закрытие файла
РабочаяКнига=РабочаяКнига.Close;
КонецПроцедуры
PS: Поскольку обмен данными в данном примере реализован с помощью механизма OLE Automation, немного изменив код можно организовать подобным образом импорт в 1С базу из Excel, что на практике может оказаться гораздо полезнее.
Для того, например, чтобы присвоить значение элементу справочника контрагенты, достаточно выполнить следующий код: ка.Телефоны = СокрЛП(РабочийЛист.Cells(сч,4).Value)); ка.Сохранить();
|