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С сохранить документ в 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 дней бесплатно

Часто возникает потребность прочитать данные из таблицы MS Excel или из источника 1С записать (выгрузить) данные в книгу MS Excel. Можно ли средствами 1С решить эти задачи? Ответ прост — можно и это не особо затруднительно. Чтение данных по большому счету вообще не представляет больших проблем. При выгрузке данных в MS Excel возможны некоторые трудности, что может быть связано с особенностями VBA. Для выгрузки данных из 1С в MS Excel можно воспользоваться заранее созданным шаблоном или, если состав данных не известен до самой выгрузки, создать файл MS Excel на ходу. Здесь будет приведен пример чтения данных из файла MS Excel и выгрузки данных с созданием файла.
Допустим, стоит задача прочитать данные из файла MS Excel, каким-то образом их обработать и выгрузить полученный результат в другой файл MS Excel.
Открываем конфигуратор и создаем новую внешнюю обработку.
Добавляем форму обработку и на нее помещаем две кнопки: Загрузить данные и Выгрузить данные. Поскольку цель данного примера показать приемы работы с загрузкой и выгрузкой данных в файл MS Excel, то на форму промежуточные данные выводить не будем. Они будут помещены в таблицу значений и затем выгружены из нее.
Теперь поместим в обработчики кнопкок «Загрузить данные» и «Выгрузить данные»функционал чтения данных из файла MS Excel.
В обработчиках кнопок получается следующий код:

Процедура ЗагрузитьДанныеНажатие(Элемент) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = «Выберите имя файла для чтения»; Диалог.МножественныйВыбор = Ложь; Диалог.Фильтр = «Файл MS Excel (.xlsx)| *.xlsx»; //Диалог.Фильтр = «Все файлы (*.*)| *.*»; Если Не Диалог.Выбрать() Тогда Сообщить(«Файл для обработки не выбран!»); Иначе //подключаемся к Excel ФайлДанных = Диалог.ПолноеИмяФайла; Попытка Excel = Новый COMОбъект(«Excel.Application»); Excel.WorkBooks.Open(ФайлДанных); Состояние(«Обработка файла Microsoft Excel…»); Исключение Сообщить(«Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!»); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка //Открываем необходимый лист Excel.Sheets(1).Select(); // лист 1, по умолчанию Исключение //Закрываем Excel Excel.ActiveWorkbook.Close(); Excel = 0; Сообщить(«Файл » + Строка(ФайлДанных) + » не соответствует необходимому формату! Первый лист не найден!»); Возврат; КонецПопытки; //Получим количество строк и колонок. //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel Версия = Лев(Excel.Version,Найти(Excel.Version,».»)-1); Если Версия = «8» Тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); Иначе ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; КонецЕсли; ТЗ.Очистить(); Попытка //Если случится ошибка, то закроем файл, чтобы не висел в процессах Для Сч = 2 По ФайлСтрок Цикл Состояние(«Обрабатывается строка » + Строка(Сч) + » из » + Строка(ФайлСтрок)); Если НЕ СокрЛП(Excel.Cells(Сч, 1).Value) = «» Тогда НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.НомерПоПорядку = СокрЛП(Excel.Cells(Сч, 1).Value); НоваяСтрока.ТестовыйТекст = СокрЛП(Excel.Cells(Сч, 2).Text); НоваяСтрока.ТестовоеЧисло1 = СокрЛП(Excel.Cells(Сч, 3).Value); НоваяСтрока.ТестовоеЧисло2 = СокрЛП(Excel.Cells(Сч, 4).Value); НоваяСтрока.ТестовоеЧисло3 = СокрЛП(Excel.Cells(Сч, 5).Value); НоваяСтрока.ТестовоеЧисло4 = СокрЛП(Excel.Cells(Сч, 6).Value); НоваяСтрока.ТестовоеЧисло5 = СокрЛП(Excel.Cells(Сч, 7).Value); НоваяСтрока.ТестовоеЧисло6 = СокрЛП(Excel.Cells(Сч, 8).Value); НоваяСтрока.ТестовоеЧисло7 = СокрЛП(Excel.Cells(Сч, 9).Value); НоваяСтрока.ТестоваяДата = СокрЛП(Excel.Cells(Сч, 10).Value); КонецЕсли; КонецЦикла; Исключение //Закрываем Excel Excel.ActiveWorkbook.Close(); Excel.Quit(); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка Сообщить(«Файл Excel прочитан!»); Excel.Quit(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецЕсли; КонецПроцедуры //ЗагрузитьДанныеНажатие() Процедура ВыгрузитьДанныеНажатие() Для Каждого ТекСтрока Из ТЗ Цикл // Какая-то задача по обработке прочитанных данных ТекСтрока.ТестовоеЧисло5 = ТекСтрока.ТестовоеЧисло5 — Число(ТекСтрока.НомерПоПорядку); КонецЦикла; //Теперь выгрузим результат в файл MS Excel Если ТЗ.Количество() = 0 Тогда Возврат; КонецЕсли; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Заголовок = «Выберите имя файла для сохранения»; Диалог.МножественныйВыбор = Ложь; Диалог.Фильтр = «Файл MS Excel *.xlsx)| *.xlsx»; //Диалог.Фильтр = «Все файлы (*.*)| *.*»; Если Диалог.Выбрать() Тогда ФайлДанных = Диалог.ПолноеИмяФайла; //подключаемся к MS Excel Попытка Excel = Новый COMОбъект(«Excel.Application»); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка Книга = Excel.WorkBooks.Add(); //Зададим первому листу имя Лист = Книга.WorkSheets(1); Лист.Name = «Выгрузка данных»; Excel.ActiveWindow.View = 2; // Режим страничного просмотра Excel.ActiveWindow.Zoom = 100; // Масштаб Лист.PageSetup.Orientation = 2; // Альбомная ориентация Лист.Columns(1).ColumnWidth = 10; // Ширина первой колонки Лист.Columns(2).ColumnWidth = 25; // Ширина второй колонки Лист.Columns(10).ColumnWidth = 13; Лист.Columns(11).ColumnWidth = 13; //Изготовим шапку Лист.Cells(1, 1).Value = «Номер по порядку»; Лист.Cells(1, 2).Value = «Выгружаемый текст»; Лист.Cells(1, 3).Value = «Выгружаемые числа»; Лист.Cells(1, 10).Value = «Выгружаемая дата»; Лист.Cells(1, 11).Value = «Программная формула»; Лист.Cells(2, 3).Value = «Число 1»; Лист.Cells(2, 4).Value = «Число 2»; Лист.Cells(2, 5).Value = «Число 3»; Лист.Cells(2, 6).Value = «Число 4»; Лист.Cells(2, 7).Value = «Число 5»; Лист.Cells(2, 8).Value = «Число 6»; Лист.Cells(2, 9).Value = «Число 7»; Лист.Range(«A1:A2»).MergeCells = Истина; Лист.Range(«A1:A2»).WrapText = Истина; Лист.Range(«B1:B2»).MergeCells = Истина; Лист.Range(«B1:B2»).WrapText = Истина; Лист.Range(«J1:J2»).MergeCells = Истина; Лист.Range(«J1:J2»).WrapText = Истина; Лист.Range(«K1:K2»).MergeCells = Истина; Лист.Range(«K1:K2»).WrapText = Истина; Лист.Range(«C1:I1»).MergeCells = Истина; Лист.Range(«C1:I1»).WrapText = Истина; Лист.Range(«A1:K2»).Borders.Linestyle = 1; //Линия границы Лист.Range(«A1:K2»).HorizontalAlignment = 3; //Выравнивание по горизонтали Лист.Range(«A1:K2»).VerticalAlignment = 2; //Выравнивание по вертикали Лист.Range(«A1:K2»).Font.Bold = 1; //Установим жирный шрифт в шапке // Шапка готова, выгружаем данные в таблицу СчетчикСтрок = 3; //Заполнение ТЧ начинаем с третьей строки Для Каждого ТекСтрока Из ТЗ Цикл Лист.Cells(СчетчикСтрок, 1).Value = ТекСтрока.НомерПоПорядку; Лист.Cells(СчетчикСтрок, 2).Value = ТекСтрока.ТестовыйТекст; Лист.Cells(СчетчикСтрок, 3).Value = ТекСтрока.ТестовоеЧисло1; Лист.Cells(СчетчикСтрок, 4).Value = ТекСтрока.ТестовоеЧисло2; Лист.Cells(СчетчикСтрок, 5).Value = ТекСтрока.ТестовоеЧисло3; Лист.Cells(СчетчикСтрок, 6).Value = ТекСтрока.ТестовоеЧисло4; Лист.Cells(СчетчикСтрок, 7).Value = ТекСтрока.ТестовоеЧисло5; Лист.Cells(СчетчикСтрок, 8).Value = ТекСтрока.ТестовоеЧисло6; Лист.Cells(СчетчикСтрок, 9).Value = ТекСтрока.ТестовоеЧисло7; Лист.Cells(СчетчикСтрок, 10).Value = ТекСтрока.ТестоваяДата; Лист.Cells(СчетчикСтрок, 11).Formula = «=F» + Строка(СчетчикСтрок) + «+G» + Строка(СчетчикСтрок); СчетчикСтрок = СчетчикСтрок + 1; КонецЦикла; СчетчикСтрок = СчетчикСтрок — 1; //Завершающая строка для форматирования Лист.Range(«A3:K» + Строка(СчетчикСтрок)).Borders.Linestyle = 1; //Линия границы Лист.Range(«A3:K» + Строка(СчетчикСтрок)).VerticalAlignment = 2; //Выравнивание по вертикали Для НомерСтроки = 3 По СчетчикСтрок Цикл //Установим числовой формат Для Столбец = 4 По 9 Цикл Лист.Cells(НомерСтроки, Столбец).NumberFormat = «0.00»; КонецЦикла; Лист.Cells(НомерСтроки, 11).NumberFormat = «0.00»; КонецЦикла; Исключение Excel.Quit(); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка Книга.SaveAs(ФайлДанных); Сообщить(«Файл » + ФайлДанных + » успешно сохранен»); Исключение Сообщить(ОписаниеОшибки() + » Файл не сохранен!»); Возврат; КонецПопытки; Попытка Excel.Quit(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецЕсли; КонецПроцедуры //ВыгрузитьДанныеНажатие() В результате получилась обработка, в которой сначала из файл считываются данные, а затем — по нажатию кнопки выгрузки данных как-то обрабатываются и выгружаются в файл. Либо в пустой, либо указанный пользователем. При этом существующий файл пересоздается. При выгрузке показаны некоторые примеры форматирования файла.
На этом пока все.

Пример обработки и файла для чтения данных можно скачать

Для более глубокого изучения 1С скачайте книгу «Разработка оперативного учёта в 1С 8.3»

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

Формат сохранения

В 1С доступно сохранение данных в пяти форматах:

  • .mxl – специально создан для сохранения таблиц в 1С. Можно сразу загружать в базу данных, расположенную на другом компьютере;
  • .xls – стандартный формат MS Excel;
  • .pdf – предназначен для работы с фалами Adobe Reader;
  • .html – веб-формат, для размещения на сайте;
  • .txt – обычный текстовый документ.

У каждого формата есть свои особенности, которые влияют на параметры сохранения. Например, если выгрузить группу в первых из двух перечисленных форматах, то в таблице отобразится исходная иерархия, и можно будет сворачивать/разворачивать группы. В остальных вариантах база выгружается обычным списком.

Сохраняем документ

Откроем базу, которой требуется выгрузка MS Excel. Затем выберем «Операции – Справочники – Номенклатура». Или выполните сохранение не всего документа, а отдельной его части. Если объём таблицы большой, то обычно каждая группа выгружается в отдельный файл, чтобы затем было удобней работать.

Дальнейший порядок действий:

  • Щёлкните правой клавишей мыши по любой строчке и нажмите «Вывести список», откроется меню установок.
  • Пометьте галочками те поля, которым требуется выгрузка MS Excel;
  • В строчке «Выводить в …» оставьте галочку «Табличный (или текстовый) документ»;
  • Нажмите «Enter»;
  • Откроется таблица, щёлкните в любом её месте один раз, чтобы она выделилась;
  • Выберите «Файл – Сохранить»;
  • Укажите требуемый формат и дайте название документу.

Объёмные таблицы лучше сохранять в mxl или xls-форматах. Для таблиц с объёмом более 10000 строк предпочтительнее первый вариант.

Максимальное количество строк, доступное для сохранения в MS Excel:

  • До версии 97 – не более 16000 строк;
  • В версиях 97-2003 – не более 65000 строк;
  • В версиях от 2007-ой – не более 1048000 строк.

Загрузка таблицы MS Excel в новую платформу 1С должна выполняться только профессионалом, чтобы при необходимости суметь исправить ошибки загрузки (особенно это касается объёмных документов). Перед началом работы также нужно выполнить архивное копирование базы данных.

Нравится статья? Подпишитесь прямо сейчас и получайте обновления на свой E-Mail:

MS Excel давно стал стандартом для работы с электронными таблицами. В статье рассматриваются способы программной выгрузки и загрузки из 1С в файлы Excel.

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

Обмен через табличный документ
Обмен через OLE
Использование COMSafeArray
Обмен через ADO
Выгрузка без программирования

Обмен через табличный документ

Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:

Внимание!

Метод Записать() доступен как на клиенте, так и на сервере. Метод Прочитать() доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.

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

ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);

Здесь ТабДок — сформированный табличный документ, ПутьКФайлу — имя файла для выгрузки, ТипФайлаТабличногоДокумента.XLSX — формат создаваемого файла. Поддерживаются следующие форматы Excel:

  • XLS95 — формат Excel 95;
  • XLS97 — формат Excel 97;
  • XLSX — формат Excel 2007.

Загрузка из файла осуществляется также достаточно просто:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);

Здесь ПутьКФайлу — путь к загружаемому файлу Excel. СпособЧтенияЗначенийТабличногоДокумента.Значение определяет, каким образом нужно интерпретировать данные, считываемые из исходного документа. Доступны варианты:

  • Значение;
  • Текст.

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

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

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

Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:

  1. Вывести данные в табличный документ при помощи команды Еще ⇒ Вывести список…;
  2. Сохранить табличный документ в требуемый формат.

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

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