Как из 1С выгрузить в excel

Платформы 1С имеют встроенный функционал для сохранения данных в Excel. Обычно этой возможности достаточно для выгрузки, в противном случае возможно использование Com-объект “Excel.Application”. В данной статье рассмотрим различные способы выгрузки данных в эксель.

Выгрузка в 1С из v7.7 стандартными средствами

Сохранение в эксель в 7.7 возможно только сформированных табличных документов, например отчетов.

После того, как отчет формирован, нажимаете меню “Файл\Сохранить как”:

sohranit-kak

Далее следует задать имя файла (если не подходит предложенное системой), путь сохранения и поменять тип на Таблица Excel:

sohranit-kak-tablitsa-excel

Всё! Данные  в 1С выгружены:

vygruzhennye-dannye-iz-7-7-v-excel

Выгрузка данных из 1С v. 8.3 (8.2, 8.1)

Производится также из табличного документа, но платформа умеет выводить в табличный документ списочные данные.

Начнем с этого.

В демо базе, открываем справочник клиенты, в меню “Все действия” нажимаем “Вывести список…”

vyvesti-spisok

Данная команда позволяет вывести видимые колонки.

В обычных формах данную команду можно вызвать правой кнопкой на списке.

В следующем диалоге выбираем нужные колонки:

vyvesti-spisok-vybor-polej

В результате сформируется табличный документ, который доступен для сохранения.

Далее, нажимаем на кнопку сохранения, в котором меняем тип файла на “Лист Excel”: 

sohranit-v-excel-iz-8-2

или через меню “Файл\Сохранить”

fajl-sohranit

Обратите внимание: восьмерка более современная, для сохранения доступен более широкий список форматов.

Также следует заметить:

  • разработчик может отключить сохранение из списков, у отдельных форм
  • обычно этот типовой функционал расширяется по кнопке, либо вызов более удобного отчета
  • у вас может отсутствовать право “Вывода”, уберет возможность копирования в буфер обмена или печать документа, соответственно и сохранить в эксель в этом случае не получится
  • возможность вывода списков доступно и в конфигураторе (например в момент отладки можно выгрузить таблицу значений)

Выгрузка в Excel доступна также через функционал БСП (библиотеки стандартных подсистем), который используется в большинстве типовых решений 1С.

Например из отчета “Остатки ТМЦ” в управлении торговлей 11.2: 

Сохранение в Excel программным путем

Вариант 1: вызов сохранения табличного документа

У табличного документа есть метод “Записать”, параметрами которого выступает ТипФайлаТабличногоДокумента

zapisat-tiptablichnogo-dokumenta

Код:

ТабличныйДокумент = Новый ТабличныйДокумент;
//Заполнение табличного документа
Область = ТабличныйДокумент.Область(1,1,1,1);
Область.Текст = "Заголовок H1";
//Сохранение табличного документа
ТабличныйДокумент.Записать(ТипФайлаТабличногоДокумента.XLS,);

 

Вариант 2: использование объекта Excel.Aplication

Данная возможность доступна в среде Windows, желательно исполнение данного кода на стороне клиента, либо требуется дополнительная настройка серверной части.

Далее, простой код для записи данных в Excel (специально не усложняем, ничего лишнего. Явно к 1с относится только 2 строка, остальное это использование методов и свойств объекта Excel.Application, документация по которому доступна на сайте микрософт):

ПолноеИмяФайла = “C:\123.xls”;
 
КнигаЭксель = Новый COMОбъект(“Excel.Application”);
КнигаЭксель.WorkBooks.Open(ПолноеИмяФайла);
 
//Скроем отображение
КнигаЭксель.Visible = 0;
 
//показывать вкладки листов в книге
КнигаЭксель.ActiveWindow.DisplayWorkbookTabs = 1;
КнигаЭксель.ActiveWindow.TabRatio = 0.6;
 
//не показывать сообщения об ошибках – иначе застопорит сохранение
КнигаЭксель.DisplayAlerts = Ложь;
 
Лист = КнигаЭксель.WorkSheets(1);
 
НомерСтроки = 1;
НомерКолонки = 1;
 
//Установим содержимое одной ячейки
Ячейка = Лист.Cells(НомерСтроки,НомерКолонки);
Ячейка.Value = “Заголовок”;
 
//Сохраняем
КнигаЭксель.ActiveWorkbook.SaveAs(ПолноеИмяФайла, 18);
 
// 18 – xls 97-2003
// 51 – xlsx 2007-2013
// Закрываем программу 
КнигаЭксель.Application.Quit();

Всякая реклама есть средство отделить человека от его денег.

— Джон Пристли