Выгрузка данных в Excel с установкой разных параметров. Выгрузка данных в Excel с установкой разных параметров Как выгрузить данные из 1с

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

Быстрый переход

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ТабличныйДокумент = Новый ТабличныйДокумент ;

//Заполнение табличного документа

Область = ТабличныйДокумент . Область ( 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 ;

Код 1C v 8.х // Процедура выгружает из указанного справочника данные в режиме экспорта в файл в формате Microsoft Excel
// с указанным именем, используя преобразование данных к типу число и типу строка;
Процедура ОсновныеДействияФормыЭкспорт(Кнопка)
Попытка
Попытка
// Загрузка объекта Microsoft Excel
Состояние("Выгрузка данных из 1С в Microsoft Excel...");
ExcelПриложение = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Ошибка при запуске Microsoft Excel."
+ Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат;
КонецПопытки;

// Создадим книгу, по умолчанию в ней уже есть листы
Книга = ExcelПриложение.WorkBooks.Add();

// Используем первый лист книги Excel
Лист = Книга.WorkSheets(1);

// Сформировать шапку документа в первой строке листа
Колонка = 1;
Если стр.Выгружать Тогда
Лист.Cells(1, Колонка).Value = стр.НазваниеРеквизита;
Колонка = Колонка + 1;
КонецЕсли;
КонецЦикла;

// Выгрузить данные справочника
выборка = Справочники[ИмяСправочника].Выбрать();
СтрокаЛиста = 2;
Пока выборка.Следующий() Цикл
Колонка = 1;
Для каждого стр из ТП цикл

Если стр.Выгружать Тогда
Попытка
// Установить значение в строке и колонке
Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда
// Установить формат для типа Число
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00";
Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0");
иначе
// Для всех других типов установим формат "Текстовый"
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@";
Лист.Cells(СтрокаЛиста, Колонка).Value =
Строка(выборка[стр.НазваниеРеквизита]);
КонецЕсли;
исключение
// в случае ошибки вывести номер строки и колонки
Сообщить("Ошибка установки значения для: " +
выборка[стр.НазваниеРеквизита]);
Сообщить("Стр: " +СтрокаЛиста+ " Кол: " +
Колонка+ " Рек: " + стр.НазваниеРеквизита);
КонецПопытки;
Колонка = Колонка + 1;
КонецЕсли;

КонецЦикла;
СтрокаЛиста = СтрокаЛиста + 1;
Состояние("Экспорт из 1С в Excel " + СтрокаЛиста);
КонецЦикла;

// Сохраним созданную книгу в файл xls
Книга.SaveAs(имяФайла);

// Обязательно закроем соединение с COM объектом для освобождения памяти
ExcelПриложение.Quit();

Сообщить("Файл выгружен успешно: " + имяФайла);

Исключение
// Обработка ошибок экспорта данных из 1С в Excel
Сообщить("Ошибка записи данных файла:" + имяФайла);
Сообщить(ОписаниеОшибки());
Попытка
ExcelПриложение.Quit();
Исключение
КонецПопытки;
КонецПопытки;
КонецПроцедуры
Код 1C v 7.x //Простейший пример вывода из 1С:Предприятия 7.7 в MS Excel. Обеспечение наличия у рабочей книги единственного листа,
//установка размера, жирности и цвета шрифта, ширины колонок, рамок и заливки ячеек. Выравнивание текста
//ячеек, группировка строк, установка числового формата ячеек, закрепление области.

Процедура Вывод()
Попытка
Application=СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки(),"!!!");
Сообщить("Возможно, MS Excel не установлен на этом компьютере.");
Возврат;
КонецПопытки;

//Создание рабочей книги

WorkBook=Application.WorkBooks.Add();
//Получение окна

Window=WorkBook.Windows(1);
//Установка невидимости окна для убыстрения вывода

Window.Visible=0;
//Обеспечение наличия у рабочей книги единственного листа

Если WorkBook.Worksheets.Count=0 Тогда
WorkBook.Worksheets.Add();
Иначе
Application.DisplayAlerts=0;//не выдавать предупреждений

Пока WorkBook.Worksheets.Count>1 Цикл
WorkBook.Worksheets(1).Delete();
КонецЦикла;
Application.DisplayAlerts=-1;//восстановление флага выдачи предупреждений

КонецЕсли;
//Получение рабочего листа

Worksheet=WorkBook.Worksheets(1);
//Задание имени рабочего листа

Worksheet.Name="Пример вывода";

//Заголовок документа

Worksheet.Range("A1").Value="Пример вывода из 1С:Предприятия в MS Excel";
Worksheet.Range("A2").Value="сегодня "+ТекущаяДата();
Worksheet.Range("A1:A2").Font.Size=14;//размер шрифта

Worksheet.Range("A1:A2").Font.Bold=-1;//жирный шрифт

//Задание ширины колонок

Worksheet.Columns(1).ColumnWidth=60;
Worksheet.Columns(2).ColumnWidth=15;
Worksheet.Columns(3).ColumnWidth=15;

//Шапка документа

Worksheet.Range("A4").Value="Первая колонка";
Для ы=7 по 10 Цикл//рамки

Worksheet.Range("A4").Borders(ы).LineStyle=1;
Worksheet.Range("A4").Borders(ы).Weight=-4138;//xlMedium

КонецЦикла;
Worksheet.Range("A4").Interior.ColorIndex=15;//заливка серым

Worksheet.Range("A4").HorizontalAlignment=-4108;//выравнивание текста по центру

Worksheet.Range("B4").Value="Вторая";
Для ы=7 по 10 Цикл
Worksheet.Range("B4").Borders(ы).LineStyle=1;
Worksheet.Range("B4").Borders(ы).Weight=-4138;
КонецЦикла;
Worksheet.Range("B4").Interior.ColorIndex=15;
Worksheet.Range("B4").HorizontalAlignment=-4108;

Worksheet.Range("C4").Value="Третья";
Для ы=7 по 10 Цикл
Worksheet.Range("C4").Borders(ы).LineStyle=1;
Worksheet.Range("C4").Borders(ы).Weight=-4138;
КонецЦикла;
Worksheet.Range("C4").Interior.ColorIndex=15;
Worksheet.Range("C4").HorizontalAlignment=-4108;

//Для группировки строк:
Worksheet.Outline.SummaryRow=0;//"итоговые" строки отображать сверху (если снизу, то 1)

//Вывод строк
Worksheet.Range("A5").Value="Объект аналитики";
Worksheet.Range("A5").Font.ColorIndex=5;//цвет шрифта - синий

Worksheet.Range("B5").Value=123.45;
Worksheet.Range("B5").Font.ColorIndex=5;
Worksheet.Range("C5").Value=678.9;
Worksheet.Range("C5").Font.ColorIndex=5;

Worksheet.Range("A6").Value="Объект аналитики";
Worksheet.Range("A6").Font.ColorIndex=3;//цвет шрифта - красный

Worksheet.Range("B6").Value=123.45;
Worksheet.Range("B6").Font.ColorIndex=3;
Worksheet.Range("C6").Value=678.9;
Worksheet.Range("C6").Font.ColorIndex=3;

Worksheet.Range("A7").Value="Объект аналитики";
Worksheet.Range("B7").Value=123.45;
Worksheet.Range("C7").Value=678.9;

Worksheet.Range("A8").Value="Объект аналитики";
Worksheet.Range("B8").Value=123.45;
Worksheet.Range("C8").Value=678.9;

Worksheet.Range("A9").Value="Объект аналитики";
Worksheet.Range("A9").Font.ColorIndex=3;//цвет шрифта - красный

Worksheet.Range("B9").Value=123.45;
Worksheet.Range("B9").Font.ColorIndex=3;
Worksheet.Range("C9").Value=678.9;
Worksheet.Range("C9").Font.ColorIndex=3;

Worksheet.Range("A10").Value="Объект аналитики";
Worksheet.Range("B10").Value=123.45;
Worksheet.Range("C10").Value=678.9;

Worksheet.Range("A11").Value="Объект аналитики";
Worksheet.Range("B11").Value=123.45;
Worksheet.Range("C11").Value=678.9;

Worksheet.Range("A12").Value="Объект аналитики";
Worksheet.Range("A12").Font.ColorIndex=5;//цвет шрифта - синий

Worksheet.Range("B12").Value=123.45;
Worksheet.Range("B12").Font.ColorIndex=5;
Worksheet.Range("C12").Value=678.9;
Worksheet.Range("C12").Font.ColorIndex=5;

Worksheet.Range("A13").Value="Объект аналитики";
Worksheet.Range("A13").Font.ColorIndex=3;//цвет шрифта - красный

Worksheet.Range("B13").Value=123.45;
Worksheet.Range("B13").Font.ColorIndex=3;
Worksheet.Range("C13").Value=678.9;
Worksheet.Range("C13").Font.ColorIndex=3;

Worksheet.Range("A14").Value="Объект аналитики";
Worksheet.Range("B14").Value=123.45;
Worksheet.Range("C14").Value=678.9;

Worksheet.Range("A15").Value="Объект аналитики";
Worksheet.Range("B15").Value=123.45;
Worksheet.Range("C15").Value=678.9;

Worksheet.Range("A16").Value="Объект аналитики";
Worksheet.Range("A16").Font.ColorIndex=3;//цвет шрифта - красный

Worksheet.Range("B16").Value=123.45;
Worksheet.Range("B16").Font.ColorIndex=3;
Worksheet.Range("C16").Value=678.9;
Worksheet.Range("C16").Font.ColorIndex=3;

Worksheet.Range("A17").Value="Объект аналитики";
Worksheet.Range("B17").Value=123.45;
Worksheet.Range("C17").Value=678.9;

Worksheet.Range("A18").Value="Объект аналитики";
Worksheet.Range("B18").Value=123.45;
Worksheet.Range("C18").Value=678.9;

//Установка рамок

Для НомСтр=5 по 18 Цикл
Для ы=7 по 10 Цикл
Worksheet.Range("A"+НомСтр).Borders(ы).LineStyle=1;
Worksheet.Range("B"+НомСтр).Borders(ы).LineStyle=1;
Worksheet.Range("C"+НомСтр).Borders(ы).LineStyle=1;
КонецЦикла;
КонецЦикла;

//Группировка строк

Worksheet.Range("7:8").Rows.Group();
Worksheet.Range("10:11").Rows.Group();
Worksheet.Range("14:15").Rows.Group();
Worksheet.Range("17:18").Rows.Group();
Worksheet.Range("6:11").Rows.Group();
Worksheet.Range("13:18").Rows.Group();

//Свёртка группировок до первого уровня

Worksheet.Outline.ShowLevels(1);

//Установка числового формата

Попытка
Worksheet.Range("B5:C18").NumberFormat="# ##0.00";

Исключение
Попытка
Worksheet.Range("B5:C18").NumberFormat="# ##0,00";

Исключение
КонецПопытки;
КонецПопытки;

//Установка видимости приложения и его окна

Application.Visible=-1;
Window.Visible=-1;

//Закрепление области

Worksheet.Range("A5").S_elect();
Window.FreezePanes = -1;
КонецПроцедуры //Вывод

Информация взята с сайта

Конфигурация: 1С:Бухгалтерия

Версия конфигурации: 3.0.44.177

Дата публикации: 20.01.2017

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

Загрузка из Excel 1С:Бухгалтерия 8.3 ред. 3.0

К примеру мы имеем вот такой табличный документ Excel для загрузки списка номенклатуры и цены(розничной и закупочной).

Заходи в .

В верхней части нажимаем Номенклатура и Цены - Загрузить . Именно в этом спрятана загрузка и выгрузка из табличных документов.

Загрузка поддерживает форматы xls(старый формат Excel 97-2003) и xlsx(новый формат), а так же mxl и ods форматы. Теперь выбираем наш файл с номенклатурой и ждем загрузки.

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

Нажимаем на Укажите реквизит и выбираем нужный пункт из списка.

Выделяем строку, в которой есть ненужные записи, а именно шапка таблицы и нажимаем Удалить строку .

Теперь удаляем столбец с закупочной ценой, обратите внимание, что обработка умеет за 1н раз заполнять только 1н вид цены!!! Потом вы можете проделать эту операцию снова и загрузить 2й вид цены, за 1ю загрузку Розничную за 2ю закупочную.

Заполняем не заполненные данные, Тип цены, Установить цены на. Кнопки Все, Найденные, Новые, Дубли существенно облегчат поиск и помогут сопоставить номенклатуру. Заполняем и нажимаем Загрузить после чего данные будут загружены в 1С:Бухгалтерия.

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

Как видите, загрузка создала 2 документа установка цен номенклатуры, для Закупочной цены и для Розничной. Отличие этой обработки по Загрузке из Excel в 1С:Бухгалтерия 8.3, в том что это штатная обработка и она работает без сбоев и учитывая все особенности заполнения документа.

Выгрузка в Excel из 1С:Бухгалтерия 8.3 ред. 3.0

Очень полезной функцией в редакции 3.0.44.177 и выше является выгрузка в Excel из 1С:Бухгалтерия 8.3, эта обработка поможет вам сформировать прайс-лист компании или передать поставщикам или покупателям свой список номенклатуры сразу с ценами.

Все там же в справочнике Номенклатура - Номенклатура и Цены - Выгрузить .

В пункте Колонки , выбираем те колонки которые надо построить в документе Excel. Отбор служит для отбора номенклатуры по Группам, свойствам, названиям... итд.

Для выгрузки в excel мы будем добавлять новую колонку, а именно ставку НДС, вроде не очень надо, но мы практикуемся.

Многим офисным работникам не редко приходится пользоваться программами 1C и Excel. Им приходится экспортировать данные из одного приложения в другое. Сегодня мы рассмотрим, как выгрузить из 1С в Excel.

Выгружаем данные из 1С в Эксель

Выгрузка данных из 1С в Microsoft Excel – процесс, состоящий из несложных действий. Для этого достаточно встроенных в данные приложения средств. Есть несколько способов экспорта данных.

Выгружаем большое количество данных

В открытом документе следует кликнуть правой кнопкой мыши и выбрать «Вывести список». После этого все элементы будут отображены как обычный текст. Его можно скопировать и вставить в документ MS Excel, но лучше открыть меню «Файл» и перейти в раздел «Сохранить как».

Остается лишь выбрать формат файл и сохранить его.

Выгружаем печатные формы документов


Как вставить список в книгу Excel

Чтобы перенести список следует воспользоваться следующим способом:

  • Нужный список открываем в программе 1С. Затем необходимо правой кнопкой мыши кликнуть на «Все действия», а затем «Вывести список».


  • Появится оболочка вывода списка. В поле «Выводит в» должен быть установлен вариант «Табличный документ».
  • Чуть ниже можно выбрать колонки, которые следует перенести.


Совет! Не следует ничего менять в этом окне, когда вы собираетесь полностью перенести документ.

  1. После всего этого пользователь увидит на экране список в виде таблицы. Его нужно весь выделить и скопировать.
  2. Затем создается новый документ в Excel и данные вставляются в него при помощи «CTRL+V».

Создаем новую книгу Excel со списком

Можно долго не возиться и сразу вывести список из 1С в Эксель:

1. Делаем все то же, что и в предыдущем методе пока не сформируется список. Затем нужно перейти в меню, открыть раздел «Файл» и выбрать «Сохранить как».



Заключение

Теперь вы знаете, несколько способов, как выгрузить таблицу из 1С в Эксель. Процедура довольно легкая, и с ней справится абсолютно любой пользователь. Главное – это хорошо изучить наши инструкции, выбрать подходящий способ и четко следовать указаниям. Чтобы было проще, смотрите на вставленные скрины.

Механизм создания табличных документов и печатных форм в 1С достаточно продуман и хорошо проработан, однако, до функциональных возможностей, реализованных в Microsoft Excel, ему, конечно же, далеко. Поэтому многие пользователи предпочитают действовать по следующему алгоритму:

  • Сформировать печатную форму в 1С;
  • Сохранить данные как лист Excel (Рис.1)или скопировать таблицу;
  • Продолжить работу с информацией в другой программе.

И, нередко, у них возникает вопрос: как осуществить непосредственную выгрузку информации из 1С в Excel, минуя дополнительные шаги?

Два главных требования, которые должны быть выполнены

Для безошибочного функционирования нашей обработки, необходимо:

  1. Чтобы на компьютере пользователя был установлен Microsoft Office и, в частности, Excel (мы будем подключаться к приложению посредством создания COM-объекта);
  2. Представлять себе структуру хранения данных в Excel (понимать, как формируются имена ячеек, знать, что такое лист, книга и т.д.).

Только убедившись, что два этих пункта выполнены, следует приступать к дальнейшей разработке.

Алгоритм при выгрузке и его реализация в 1С

Последовательность действий при выгрузке из 1С в Excel можно представить следующей последовательностью шагов:

  1. Формируем набор данных, которые необходимо сохранить в Excel;
  2. Создаем подключение к приложению (запускаем его);
  3. Заполняем файл выгружаемыми данными;
  4. Сохраняем файл;
  5. Закрываем открытое приложение.

Теперь по этому списку подробнее.

Формирование набора данных

В качестве источника данных может выступать результат выполнения запроса, печатная форма табличного документа, любая выборка элементов. В нашем случае мы будем выгружать реестр документов «Поступление товаров и услуг» за текущий месяц (Рис.2)

Рис.2

Осуществляем программный запуск приложения

Как было сказано выше, для того, чтобы запуститься, мы будем использовать режим Com-соединения. Код на Рис.3 показывает, как это можно осуществить.

Рис.3

Процедуру создания нового объекта мы сознательно вставили в конструкцию Попытка – Исключение-КонецПопытки, для того, чтобы исключить всевозможные нестандартные ситуации в дальнейшем ходе обработки.

Заполнение файла, его сохранение и завершение работы приложения

В первую очередь следует определиться, что мы хотим сделать: выгрузить данные в существующий файл или создать новый:

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

Решив, где мы будем хранить наши данные, приступим к непосредственному заполнению файла, для этого создадим процедуру и передадим в нее в качестве параметра нашу выборку документов за текущий месяц. (Рис.4)

Рис.4

Как видно из кода, в первую очередь мы создали книгу, в которой будет храниться наша таблица. По умолчанию программа Excel при первом запуске создает в книге три листа. Для внесения данных мы можем выбрать любой из них, просто указав номер листа в качестве параметра для метода WorkSheets(). Если же нам понадобилось бы добавить новый лист в книгу, мы должны бы были записать строку вида:

НовыйЛист=НоваяКнига.Sheets.Add();

На этом мы закончили формировать общую структуру документа и приступаем к его заполнению.

Циклом со счетчиком перебираем строки и колонки нашей таблицы значений, для получения данных конкретной ячейки и их переноса в конечную таблицу.

Здесь важно иметь ввиду, что индексы строк и колонок таблицы значения в 1С начинаются с 0 и заканчиваются на числе на 1 меньшем, чем количество этих строк и колонок, а нумерация строк и колонок ячеек в Exel начинается с 1.

Перебрав нашу таблицу и перенеся её в новое место, мы должны сохранить созданный файл. Параметр ПутьКФайлу, указанный в процедуре SaveAs, должен содержать полный путь к файлу, включая его имя.

Если на компьютере установлен Microsoft Office версии 2007 года или более поздний, у Вас, вероятно, может возникнуть необходимость в сохранении табличного документа в формате Excel 2003, программно это можно сделать, если указать в качестве второго параметра процедуры SaveAs значение (-4143). Именно это число указывает на формат сохраняемого файла, соответсвующий расширению xls.

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

Так как мы не планируем дальше продолжать работу с Excel, мы должны закрыть приложение. Здесь следует отметить, что визуально отследить выполнение нашей обработки можно только воспользовавшись диспетчером задач, в списке открытых окон его видно не будет. Опять же, если не прописать закрытие приложения, оно будет занимать место в оперативной памяти и может привести к конфликтам запуска дополнительных копий Excel.

Дополнительный способ сохранения табличного документа из 1С в Excel

Еще один способ выгрузки – непосредственное сохранение табличного документа на диск без его вывода на экран или перед выводом, код соответствующей процедуры показан на (Рис.5).

Рис.5

Одно очень важное замечание: в программах 1С и Excel различаются разделители целой и дробной части в числовых значениях, этот момент следует учитывать при выгрузке во избежание перекоса в данных.