1с как сохранить табличный документ в excel

от admin

Выгрузка данных из программы 1С в книгу Excel

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

Выгрузка информации из 1C в Excel

Если загрузка данных из Excel в 1С – это довольно сложная процедура, автоматизировать которую можно только с помощью сторонних решений, то обратный процесс, а именно выгрузка из 1С в Эксель – это сравнительно простой набор действий. Его можно легко выполнить с помощью встроенных инструментов вышеуказанных программ, причем сделать это можно несколькими способами, в зависимости от того, что именно пользователю нужно перенести. Рассмотрим, как это выполнить на конкретных примерах в 1С версии 8.3.

Способ 1: копирование содержимого ячейки

Одна единица данных содержится в ячейке 1С. Её можно перенести в Эксель обычным методом копирования.

Копирование в 1С

    Выделяем ячейку в 1С, содержимое которой нужно скопировать. Кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать». Можно воспользоваться также универсальным способом, который действует в большинстве программ, работающих на ОС Windows: просто выделяем содержимое ячейки и набираем комбинацию клавиш на клавиатуре Ctrl+C.

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

Вставка через кнопку на ленте в Microsoft Excel

Содержимое ячейки 1С будет вставлено в Excel.

Данные в ячейку вставлены в Microsoft Excel

Способ 2: вставка списка в существующую книгу Excel

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

Переход к выводу списка в Microsoft Excel

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

Поле «Выводить в» имеет два значения:

  • Табличный документ;
  • Текстовый документ.

По умолчанию установлен первый вариант. Для переноса данных в Эксель он как раз и подходит, так что тут мы ничего не меняем.

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

Lumpics.ru

Список вставлен в документ.

Список вставлен в документ в Microsoft Excel

Способ 3: создание новой книги Excel со списком

Также список из программы 1С можно сразу вывести в новый файл Эксель.

Сохранение списка в 1С

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

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

Переход к сохранению списка в 1С

Весь список будет сохранен отдельной книгой.

Способ 4: копирование диапазона из списка 1С в Excel

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

  1. Выделяем строки или диапазон данных в списке. Для этого зажимаем кнопку Shift и кликаем левой кнопкой мыши по тем строкам, которые нужно перенести. Жмем на кнопку «Все действия». В появившемся меню выбираем пункт «Вывести список…». Переход к выводу диапазона данных в 1С
  2. Запускается окошко вывода списка. Настройки в нем производим так же, как и в предыдущих двух способах. Единственный нюанс состоит в том, что нужно установить галочку около параметра «Только выделенные». После этого жмем на кнопку «OK». Окно вывода списка выделенных строк в Microsoft Excel
  3. Как видим, список, состоящий исключительно из выделенных строк, выведен. Дальше нам нужно будет выполнить точно такие же действия как в Способе 2 или в Способе 3, в зависимости от того, собираемся мы добавлять список к уже имеющейся книге Excel или создавать новый документ.

Способ 5: Сохранение документов в формате Excel

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

  1. В 1С в форме создания любого документа имеется кнопка печати. На ней расположена пиктограмма в виде изображения принтера. После того, как в документ введены необходимые данные и он сохранен, жмем на этот значок. Вывод на печать документа в 1С
  2. Открывается форма для печати. Но нам, как мы помним, нужно не распечатать документ, а конвертировать его в Эксель. Легче всего в версии 1С 8.3 это сделать, нажав на кнопку «Сохранить» в виде дискеты. Переход к сохранению документа в Microsoft Excel

Документ будет сохранен в формате Эксель. Этот файл теперь можно открывать в данной программе, и проводить дальнейшую его обработку уже в ней.

Как видим, выгрузка информации из 1С в формат Excel не составляет никаких сложностей. Нужно знать только алгоритм действий, так как, к сожалению, не для всех пользователей он интуитивно понятен. С помощью встроенных инструментов 1С и Эксель можно копировать содержимое ячеек, списков и диапазонов из первого приложения во второе, а также сохранять списки и документы в отдельные книги. Вариантов сохранения достаточно много и для того, чтобы пользователь мог найти подходящий именно для его ситуации, совсем не нужно прибегать к использованию стороннего программного обеспечения или применять сложные комбинации действий.

Сохранение табличной части в ексель программно.

В документе есть табличная часть и есть кнопочка "сохранить".

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

Режим = РежимДиалогаВыбораФайла.Сохранение;
Диалог = Новый ДиалогВыбораФайла(Режим);
Диалог.Заголовок = "Выбор файла для сохранения";
Диалог.Фильтр = "Excel (*.xls)|*.xls";

Если Не Диалог.Выбрать() Тогда
Возврат ;
Иначе
ИмяФайла= Диалог.ПолноеИмяФайла;
КонецЕсли

Как теперь мне сохранить в этот выбранный файл мою таблицу "ЭтотОбъект.Выгрузка" ?

Вообщем получил я ТабДок, а как мне дальше его записать на диск в файл?

ТабДок = моя таблица "Выгрузка"

какие сюда параметры нужны?

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
облСтрока = Макет.ПолучитьОбласть("Строка");
Для каждого стр Из ЭтотОбъект.Выгрузка Цикл
облСтрока.Параметры.Дата = стр.Дата;
облСтрока.Параметры.Номер = стр.Номер;
облСтрока.Параметры.КомпанияИНН = стр.КомпанияИНН;
облСтрока.Параметры.КомпанияНазвание = стр.КомпанияНазвание;
облСтрока.Параметры.СрокОплаты = стр.СрокОплаты;
облСтрока.Параметры.Сумма = стр.Сумма;
ТабДок.Вывести(облСтрока);
КонецЦикла;
ТабДок.Записать("D:\Клиентские базы\Scheta_postavschikov.xls","xls");

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

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
облСтрока = Макет.ПолучитьОбласть("Строка");
Для каждого стр Из ЭтотОбъект.Выгрузка Цикл
облСтрока.Параметры.Дата = Формат(стр.Дата, "ДЛФ=Д");
облСтрока.Параметры.Номер = стр.Номер;
облСтрока.Параметры.КомпанияИНН = стр.КомпанияИНН;
облСтрока.Параметры.КомпанияНазвание = стр.КомпанияНазвание;
облСтрока.Параметры.СрокОплаты = Формат(стр.СрокОплаты, "ДЛФ=Д");
облСтрока.Параметры.Сумма = стр.Сумма;
ТабДок.Вывести(облСтрока);
КонецЦикла;

Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Фильтр = "Файл Эксель(*.xls)|*.xls";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПолеВвода1 = ДиалогОткрытияФайла.ПолноеИмяФайла;
КонецЕсли;
ИмяФайла = ЭтаФорма.ФайлВыгрузки;
ТабДок.Записать(ИмяФайла,"xls");

Процедура КоманднаяПанель1Заполнить(Кнопка)
Если ЗначениеЗаполнено(ЭтотОбъект.ДатаНачала) И ЗначениеЗаполнено(ЭтотОбъект.ДатаОкончания) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетНаОплатуПокупателю.Номер,
| СчетНаОплатуПокупателю.Дата,
| СчетНаОплатуПокупателю.Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИНН КАК ИНН,
| СчетНаОплатуПокупателю.ДоговорКонтрагента.СрокОплаты КАК СрокОплаты,
| СчетНаОплатуПокупателю.СуммаДокумента,
| СчетНаОплатуПокупателю.ДоговорКонтрагента
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.Дата >= &ДатаНачала
| И СчетНаОплатуПокупателю.Дата <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", ЭтотОбъект.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ЭтотОбъект.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить().Выбрать();

ТекстВопроса = "Перед заполнением табличные части будут очищены. Заполнить?";
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да,);
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ЭтотОбъект.Выгрузка.Очистить();
Пока РезультатЗапроса.Следующий() Цикл
ДобавитьЭлементТаблицы = ЭтотОбъект.Выгрузка.Добавить();
ДобавитьЭлементТаблицы.Дата = РезультатЗапроса.Дата;
ДобавитьЭлементТаблицы.Номер = РезультатЗапроса.Номер;
ДобавитьЭлементТаблицы.КомпанияНазвание = РезультатЗапроса.Контрагент;
ДобавитьЭлементТаблицы.КомпанияИНН = РезультатЗапроса.ИНН;
ДобавитьЭлементТаблицы.Сумма = РезультатЗапроса.СуммаДокумента;
Если РезультатЗапроса.ДоговорКонтрагента.Наименование = "" Тогда
Продолжить
Иначе
ДобавитьЭлементТаблицы.СрокОплаты = РезультатЗапроса.Дата + 60*60*24*РезультатЗапроса.СрокОплаты;
КонецЕсли;
КонецЦикла;
Иначе

ТекстВопроса = "Ошибка! Не заполнены поля: дата начала, дата окончания.";
Вопрос(ТекстВопроса, РежимДиалогаВопрос.Ок, , КодВозвратаДиалога.Ок,);

Процедура ФайлВыгрузкиНачалоВыбора(Элемент, СтандартнаяОбработка)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Фильтр = "Файл Эксель(*.xls)|*.xls";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ФайлВыгрузки = ДиалогОткрытияФайла.ПолноеИмяФайла;
КонецЕсли;
КонецПроцедуры

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

Простой способ выгрузки в таблицу Excel

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

  1. Наименование.
  2. Артикул.
  3. Вид номенклатуры.
  4. Тип номенклатуры.

ИзображениеРассмотрим два способа решения: без программирования и с участием программиста.

Программируем

Чтобы выгрузить номенклатуру в XLS-файл сформируем запрос к базе данных для получения номенклатуры и поместим результат в табличную часть обработки выгрузки. Вот форма обработки:

Изображение

По нажатию на кнопку «Заполнить» заполняется табличная часть «ДанныеВыгрузки» обработки, у которой добавлены соответствующие реквизиты. Обработчик этой кнопки имеет следующий программный код:

Здесь все должно быть понятно. Самое интересное начинается по нажатию на кнопку «Сохранить». Сначала вызывается диалог выбора пути для сохранения таблицы XLS. Затем, используя данные в табличной части обработки, заполняется табличный документ по созданному ранее макету. Макет, добавленный в обработку, следующий:

Изображение

Полный код обработчика кнопки «Сохранить» представлен на следующем листинге:

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

Пользователь может сам

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

Например, перейдя в список номенклатуры и выполнив команду «Все действия» -> «Вывести список» из списка номенклатуры, пользователь получит список номенклатуры в сформированном табличном документе.

Изображение

После того, как табличный документ будет сформирован, нажав на кнопку «Сохранить» или через меню «Файл->Сохранить» пользователь может записать табличный документ в файл XLS указав его имя и конечный каталог.

Изображение

Вот и все! Никакой обработки для выгрузки не нужно. Конечно, если у вас достаточно простой случай с выгрузкой данных.

Так все просто?

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

Изображение

Обработку с примером из статьи Вы можете скачать по ссылке .

Многостраничный Excel из 1С

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

С помощью объекта ПакетОтображаемыхДокументов

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

ИмяФайла – имя файла в который будет сохранена книга. Можно перед вызовом функции предлагать пользователю указать каталог, куда будет сохраняться файл, и в параметр передать полный путь до файла, например “D:\Файлы\МойФайлЭксель.xlsx”.

МассивДанных — массив соответствий с данными для формирования книги. Массив собираю на сервере. Соответствие представляет из себя коллекцию значений в связки с ключем. Ключи — Имя (имя листа в книге) и АдресВХранилище (адрес табличного документа во временном хранилище).

В отличие от второго варианта файл сохраняется значительно быстрее.

С помощью COM-объекта Excel.Application

Этот вариант подойдет тем, кому приходится работать со старыми версиями платформы. 1С позволяет сохранять табличный документ в эксель:

Указав в качестве типа файла таблицы ТипФайлаТабличногоДокумента.XLSX в итоге получим файл Эксель, но в нем мы не увидим привычных листов, соответственно и сохранить несколько табличных документов в одну книгу не получится.

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

Читать:
Что делать если файл скачивается не в том формате

Похожие статьи