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

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

Рассмотрим ряд полезных советов, с помощью которых Вы сможет выгрузить данные из 1С во внешнюю информационную систему.

В 1С есть несколько методов, с помощью которых Вы можете получить информацию без привлечения специалистов:

  • Выгрузка базы из 1С 8.3 целиком — для последующей загрузки на другом компьютере
  • Сохранение отчетов и печатных форм в Excel, Word или PDF
  • Выгрузка таблиц из 1С
  • Получение информации с помощью консоли запросов

Подробнее о них:

Как выгрузить базу из 1с 8.3 целиком (в файл.dt)

Для этого понадобится зайти в режим конфигуратора, затем в главном меню выбрать пункт «Администрирование» — «Выгрузить информационную базу»:

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

Для последующей загрузки в другую базу нажмите на кнопку «Загрузить информационную базу» и выберите предварительно выгруженный файл.

Выгрузка из 1С в Excel отчетов и печатных форм

Этот способ универсальный и очень простой. Для этого достаточно при открытии печатной формы или отчета.

Например, открываем печатную форму ТОРГ 12, нажимаем ctrl+S (или в меню Файл – Сохранить как) и выбираем тип файла и его имя:

Для действует та же система – отчет выгружается в два клика:

Получите 267 видеоуроков по 1С бесплатно:

Доступно сохранение в основные форматы – excel, word, pdf, html, txt и тд.

Выгрузка таблиц из 1С 8.3

Часто встречаются такие банальные задачи, как «получить список платежек за текущий год», «выгрузить книгу покупок или продаж» или «выгрузить товары из накладной №256». Решить такие задачи достаточно просто.

Например, мне необходимо получить все поступления от контрагента «Вектор» с суммой более 1000. Откроем форму списка и установим нужные отборы в списке:

Система предложит вариант вывода – в табличный документ или текстовый, выберем табличный. Программа 1С выведет информацию в такой табличный документ, который, подобно отчетам, можно сохранить в нужный нам формат:

Подобные действия можно произвести практически для любой табличной части в 1С 8.2. Например, нам потребовалось выгрузить список товаров из поступления № МСК00003, не проблема. Делается это очень просто – открываем документ, вызываем контекстное меню и через пару кликов получаем нужную выгрузку в нужном формате:


Выгрузка в Excel журнала проводок из 1С:

Получение информации с помощью консоли запросов

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

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

Например, требуется получить всех контрагентов-поставщиков и их телефонный номер. Для этого напишем следующий запрос:

Полученную таблицу можно также выгрузить в нужный формат файла:

Загрузить полученные данные можно в другую базу 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 различаются разделители целой и дробной части в числовых значениях, этот момент следует учитывать при выгрузке во избежание перекоса в данных.

2018-11-15T19:32:35+00:00

Универсальная обработка "Выгрузка и загрузка данных XML" производит полную или частичную выгрузку данных информационной базы в файл в формате XML. Впоследствии этот файл может быть загружен в информационную базу с помощью этой же обработки. Формат файла выгрузки отличается от формата файла, создаваемого при выгрузке по плану обмена, заголовочной частью.

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

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

Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.

С уважением, (преподаватель и разработчик ).

Код 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 мы будем добавлять новую колонку, а именно ставку НДС, вроде не очень надо, но мы практикуемся.



Понравилась статья? Поделиться с друзьями: