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

Часто у пользователей 1С возникает вопрос: как загрузить (сохранить) документ или отчет в Excel? На самом деле, сделать это довольно просто. Рассмотрим действия на примере 1С 8.3 Бухгалтерия предприятия 3.0.

Как из 1С 8.3 выгрузить в Excel оборотно-сальдовую ведомость

Предположим, нам необходимо сохранить отчет (или другую печатную форму) в формате Excel.

Для примера, сформируем Оборотно-сальдовую ведомость (Отчеты — Стандартные — Оборотно-сальдовая ведомость).

Зайдем в пункт меню Файл — Сохранить (или Сохранить как). Вызвать команду Сохранить можно используя горячие клавиши — Ctrl+S.

Указываем папку — куда сохранить документ, задаем имя файла и выбираем Тип файла — Лист Excel (*.xls) или Лист Excel2007-…(*.xlsx) — это разные версии программы Excel. Можно сохранить в обоих форматах и посмотреть какой вас больше устроит. Также, при сохранении доступны и другие форматы файла. Нажимаем кнопку Сохранить.

В нашем примере мы выбрали папку Документы из 1С и задали имя файла — ОСВ за 9 месяцев. Для примера, сохраняем в разных форматах Excel.

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

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

Выгрузка базы данных 1С целиком

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

Зайдите в нужную информационную базу в режиме конфигуратора.

В меню «Администрирование» выберите пункт «Выгрузить информационную базу».

Укажите при необходимости другое имя файла и путь для сохранения.

Полученный файл выгружаемых данных с расширением *.dt в дальнейшем очень легко загрузить. Для этого в режиме конфигуратора в меню «Администрирование» выберите пункт «Загрузить информационную базу» и откройте полученный ранее файл *.dt.

Назначение инструкции

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

  • Из программы «Баланс-2W» компании «ОВИОНТ ИНФОРМ»,

  • Из системы «Контур-Экстерн»,

  • Из программы «Контур-Экстерн Лайт» (КЭ-Лайт),

  • Из программы «Астрал-Отчет»,

  • Из программы СБиС++ компании Тензор,

  • Из программы АРГОС,

  • Из программы РЕФЕРЕНТ компании Такском,

  • Из 1С: Предприятие,

  • Из программы «Баланс-2: Файловый архив электронных документов».

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

  • приказ ФНС России от 02.11.2009 г. № ММ-7-6/534@ «Об утверждении Методических рекомендаций по организации электронного документооборота при представлении налоговых деклараций (расчетов) в электронном виде по телекоммуникационным каналам связи»;

  • приказ ФНС России от 09.11.2010 № ММВ-7-6/534@ «Об утверждении форматов, используемых в электронном документообороте при представлении налоговых деклараций (расчетов) в электронном виде (на основе XML) (версия 5)».

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

Обмен через OLE

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

  • На компьютере конечного пользователя, если обмен происходит на стороне клиента;
  • На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.

Пример выгрузки:

// Запись значения в ячейку
Лист.Cells(НомерСтроки, НомерКолонки).Value = ЗначениеЯчейки;

// Сохранение файла
Книга.SaveAs(ИмяФайла);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

Примеры чтения:

// —— ВАРИАНТ 1 ——

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Close(0);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

// —— ВАРИАНТ 2 ——

// Открытие книги
Книга = ПолучитьCOMОбъект(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Application.Quit();

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

// —— ВАРИАНТ 2 ——
НомерСтроки = 0;
Пока Истина Цикл
НомерСтроки = НомерСтроки + 1;
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
Если НЕ ЗначениеЗаполнено(ЗначениеЯчейки) Тогда
Прервать;
КонецЕсли;
КонецЦикла;

Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:

ВсегоКолонок = Лист.Cells(1, 1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;

Область = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок));
Данные = Область.Value.Выгрузить();

В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:

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

Использование COMSafeArray

При выгрузке больших объемов данных из 1С в Excel для ускорения можно использовать объект COMSafeArray. Согласно определению из синтакс-помощника, COMSafeArray — объектная оболочка над многомерным массивом SafeArray из COM. Позволяет создавать и использовать SafeArray для обмена данными между COM-объектами. Проще говоря, это массив значений, который можно использовать для обмена между приложениями по технологии OLE.

Обмен через ADO

Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.

Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.

Пример выгрузки:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);

// Создание COM-объекта для команды
Команда = Новый COMОбъект(«ADODB.Command»);
Команда.ActiveConnection = Соединение;

// Удаление команды и закрытие соединения
Команда = Неопределено;
Соединение.Close();
Соединение = Неопределено;

Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:

// Создание COM-объекта для работы с книгой
Книга = Новый COMОбъект(«ADOX.Catalog»);
Книга.ActiveConnection = Соединение;

// Создание в книге листа с описанной структурой
Книга.Tables.Append(Таблица);
Таблица = Неопределено;
Книга = Неопределено;

В приведенном примере в методе

Таблица.Columns.Append(«Колонка1», 202);

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

  • 5 — adDouble;
  • 6 — adCurrency;
  • 7 — adDate;
  • 11 — adBoolean;
  • 202 — adVarWChar;
  • 203 — adLongVarWChar.

Пример чтения:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);

// Выполнение запроса
Выборка.Open(ТекстЗапроса, Соединение);

Выборка.Close();
Выборка = Неопределено;
Соединение.Close();
Соединение = Неопределено;

В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:

  • YES — первая строка воспринимается как названия колонок. К значениям можно обращаться по имени и по индексу колонки.
  • NO — первая строка воспринимается как данные. К значениям можно обращаться только по индексу колонки.

В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:

  • Connection;
  • Command;
  • Recordset;
  • Record;
  • Fields;
  • Stream;
  • Errors;
  • Parameters;
  • Properties.

Как в 1С сохранить документ в Excel

Есть еще один способ как сохранить документ в 1С в формате Excel.

Предположим, нам надо сохранить Счет, Счет-фактуру или Платежное поручение, для распечатки на другом компьютере или отправке по электронной почте.

Рассмотрим сохранение на примере документа Платежное поручение. Сформируем его печатную форму и среди кнопок на панели инструментов видим кнопку с дискетой .

При нажатии, открывается окно сохранения документа, где мы указываем папку — куда сохранить и выбираем нужный формат. В нашем случае это — Лист Microsoft Excel. Устанавливаем галочку и нажимаем кнопку Готово. Документ сохранен в папку.

Выгрузка таблиц из 1С в Эксель

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

Мы хотим вывести список Платежных поручений по уплате налогов и взносов за период.

Для выбора документов можно выделить их, удерживая кнопку Ctrl или Shift, а также используя горячие клавиши для выделения группы строк. После чего нажимаем кнопку Еще и выбираем команду Вывести список.

В открывшемся окне настраиваем, какие колонки нам нужно вывести и выбираем — выводить в Табличный документ. Если мы выделили группу строк в списке, то установим галочку — выводить Только выделенные. Нажимаем ОК и список готов.

Выглядит он следующим образом.

Получившийся отчет можно сохранить в любом формате, в том числе Excel — *.xls. Для этого (как описывалось выше) выбираем команду Сохранить (или Сохранить как) в меню Файл и задаем параметры.

Или же воспользуемся кнопкой Сохранить (в виде дискеты) — она доступна в верхней части окна программы 1С 8.3.

Эти действия можно выполнять с любыми списками программы 1С.

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

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

Как сохранить данные ячеек таблицы из 1С в Excel

Иногда возникаем необходимость скопировать из отчета или документа часть данных. Сделать это можно обычным копированием. Для этого выделяем часть нужных ячеек и нажав правой кнопкой мышки выбираем команду Копировать (или сочетание клавиш Ctrl+C).

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

См. также:

  • Выгрузка в 1С из xml: как выгрузить данные из 1С 8.3 и загрузить в 1С 8.3
  • Загрузка из Excel в 1С 8.3
  • Горячие клавиши в 1С
  • Поиск и замена значений 1С 8.3
  • Групповое перепроведение документов в 1С 8.3 Бухгалтерия 3.0
  • Групповая обработка справочников и документов в 1С 8.3

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *