Содержание
Механизм создания табличных документов и печатных форм в 1С достаточно продуман и хорошо проработан, однако, до функциональных возможностей, реализованных в Microsoft Excel, ему, конечно же, далеко. Поэтому многие пользователи предпочитают действовать по следующему алгоритму:
- Сформировать печатную форму в 1С;
- Сохранить данные как лист Excel (Рис.1)или скопировать таблицу;
- Продолжить работу с информацией в другой программе.
Рис.1
И, нередко, у них возникает вопрос: как осуществить непосредственную выгрузку информации из 1С в Excel, минуя дополнительные шаги?
Два главных требования, которые должны быть выполнены
Для безошибочного функционирования нашей обработки, необходимо:
- Чтобы на компьютере пользователя был установлен Microsoft Office и, в частности, Excel (мы будем подключаться к приложению посредством создания COM-объекта);
- Представлять себе структуру хранения данных в Excel (понимать, как формируются имена ячеек, знать, что такое лист, книга и т.д.).
Только убедившись, что два этих пункта выполнены, следует приступать к дальнейшей разработке.
Алгоритм при выгрузке и его реализация в 1С
Последовательность действий при выгрузке из 1С в Excel можно представить следующей последовательностью шагов:
- Формируем набор данных, которые необходимо сохранить в Excel;
- Создаем подключение к приложению (запускаем его);
- Заполняем файл выгружаемыми данными;
- Сохраняем файл;
- Закрываем открытое приложение.
Теперь по этому списку подробнее.
Формирование набора данных
В качестве источника данных может выступать результат выполнения запроса, печатная форма табличного документа, любая выборка элементов. В нашем случае мы будем выгружать реестр документов «Поступление товаров и услуг» за текущий месяц (Рис.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 различаются разделители целой и дробной части в числовых значениях, этот момент следует учитывать при выгрузке во избежание перекоса в данных.
Как выгрузить документ, отчет из 1С 8.3 в 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 на 14 дней бесплатно
Похожие публикации
- В справочник Контрагенты можно загружать данные из таблиц. Это особенно.Иногда возникают ситуации, когда необходимо сделать копию информационной базы 1С.Иногда в работе сталкиваешься с ситуацией, когда возникает необходимость перенести.В справочнике Номенклатура можно загружать цены номенклатуры из подготовленных таблиц.
(10 оценок, среднее: 3,60 из 5)
Обсуждение (3)
Добрый день!
Спасибо за доступ.
Вопрос: как на новой платформе 1С:Предприятие 8.3 (8.3.16.1063) выгрузить отчет в формате Эксель? куда пропала в верхней панеле кнопка — Файл слева. и почему справа — нет возможности ни напечатать отчет ни сохранить его в каком либо другом формате?
Приложение
Вопрос — как сохранить отчет в формате Excel на новой платформе 1С:Предприятие 8.3 (8.3.16.1063).
Спасибо за внимание к нашим материалам и интересный вопрос.
Возможность сохранить документ есть и в платформе 8.3.16. Просто сам процесс оптимизирован и стал удобнее.
Подробнее в обсуждении по ссылке
Платформа 8.3.16, как сохранить табличный документ
.
Вы можете задать еще вопросов
Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>
На чтение 9 мин Просмотров 26.9к. Опубликовано 09.11.2017
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С:Предприятие, если обмен происходит на стороне сервера.
Пример выгрузки:
// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Отключение вывода предупреждений и вопросов
Эксель.DisplayAlerts = Ложь;
// Создание новой книги
Книга = Эксель.WorkBooks.Add();
// Позиционирование на первом листе
Лист = Книга.Worksheets(1);// Запись значения в ячейку
Лист.Cells(НомерСтроки, НомерКолонки).Value = ЗначениеЯчейки;// Сохранение файла
Книга.SaveAs(ИмяФайла);// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;
Примеры чтения:
// —— ВАРИАНТ 1 ——
// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Открытие книги
Книга = Эксель.Workbooks.Open(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;// Закрытие книги
Книга.Close(0);// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;// —— ВАРИАНТ 2 ——
// Открытие книги
Книга = ПолучитьCOMОбъект(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;// Закрытие книги
Книга.Application.Quit();
Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:
// —— ВАРИАНТ 1 ——
КоличествоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;
Для НомерСтроки = 1 По КоличествоСтрок Цикл
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
КонецЦикла;// —— ВАРИАНТ 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:
Действие | Код | Комментарий |
Работа с приложением | ||
Установка видимости окна приложения | Эксель.Visible = Ложь; | |
Установка режима вывода предупреждений (выводить/не выводить) | Эксель.DisplayAlerts = Ложь; | |
Закрытие приложения | Эксель.Quit(); | |
Работа с книгой | ||
Создание новой книги | Книга = Эксель.WorkBooks.Add(); | |
Открытие существующей книги | Книга = Эксель.WorkBooks.Open(ИмяФайла); | |
Сохранение книги | Книга.SaveAs(ИмяФайла); | |
Закрытие книги | Книга.Close(0); | |
Работа с листом | ||
Установка текущего листа | Лист = Книга.WorkSheets(НомерЛиста); | |
Установка имени | Лист.Name = Имя; | |
Установка защиты | Лист.Protect(); | |
Снятие защиты | Лист.UnProtect(); | |
Установка ориентации страницы | Лист.PageSetup.Orientation = 2; | 1 — книжная, 2 — альбомная |
Установка левой границы | Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры); | |
Установка верхней границы | Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры); | |
Установка правой границы | Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры); | |
Установка нижней границы | Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры); | |
Работа со строками, колонками, ячейками | ||
Установка ширины колонки | Лист.Columns(НомерКолонки).ColumnWidth = Ширина; | |
Удаление строки | Лист.Rows(НомерСтроки).Delete(); | |
Удаление колонки | Лист.Columns(НомерКолонки).Delete(); | |
Удаление ячейки | Лист.Cells(НомерСтроки, НомерКолонки).Delete(); | |
Установка значения | Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение; | |
Объединение ячеек | Лист.Range(Лист.Cells(НомерСтроки, НомерКолонки), Лист.Cells(НомерСтроки1, НомерКолонки1)).Merge(); | |
Установка шрифта | Лист.Cells(НомерСтроки, НомерКолонки).Font.Name = ИмяШрифта; | |
Установка размера шрифта | Лист.Cells(НомерСтроки, НомерКолонки).Font.Size = РазмерШрифта; | |
Установка жирного шрифта | Лист.Cells(НомерСтроки, НомерКолонки).Font.Bold = 1; | 1 — жирный шрифт, 0 — нормальный |
Установка курсива | Лист.Cells(НомерСтроки, НомерКолонки).Font.Italic = 1; | 1 — курсив, 0 — нормальный |
Установка подчеркнутого шрифта | Лист.Cells(НомерСтроки, НомерКолонки).Font.Underline = 2; | 2 — подчеркнутый, 1 — нет |
Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.
Использование COMSafeArray
При выгрузке больших объемов данных из 1С в Excel для ускорения можно использовать объект COMSafeArray. Согласно определению из синтакс-помощника, COMSafeArray — объектная оболочка над многомерным массивом SafeArray из COM. Позволяет создавать и использовать SafeArray для обмена данными между COM-объектами. Проще говоря, это массив значений, который можно использовать для обмена между приложениями по технологии OLE.
// Создание COMSafeArray
МассивКом = Новый COMSafeArray(«VT_Variant», ВсегоКолонок, ВсегоСтрок);
// Заполнение COMSafeArray
Для Стр = 0 По ВсегоСтрок — 1 Цикл
Для Кол = 0 По ВсегоКолонок — 1 Цикл
МассивКом.SetValue(Кол, Стр, Значение);
КонецЦикла;
КонецЦикла;
// Присвоение области листа Excel значений из COMSafeArray
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).Value = МассивКом;
Обмен через ADO
Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.
Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.
Пример выгрузки:
// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);// Установка строки соединения
Соединение.ConnectionString = «
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=»+ИмяФайла+«;
|Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
Соединение.Open(); // Открытие соединения// Создание COM-объекта для команды
Команда = Новый COMОбъект(«ADODB.Command»);
Команда.ActiveConnection = Соединение;// Присвоение текста команды для создания таблицы
Команда.CommandText = «CREATE TABLE [Лист1] (Колонка1 char(255), Колонка2 date, Колонка3 int, Колонка4 float)»;
Команда.Execute(); // Выполнение команды// Присвоение текста команды для добавления строки таблицы
Команда.CommandText = «INSERT INTO [Лист1] (Колонка1, Колонка2, Колонка3, Колонка4) values (‘абвгдеё’, ‘8/11/2017’, ‘12345’, ‘12345,6789’)»;
Команда.Execute(); // Выполнение команды// Удаление команды и закрытие соединения
Команда = Неопределено;
Соединение.Close();
Соединение = Неопределено;
Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:
// Создание COM-объекта для работы с книгой
Книга = Новый COMОбъект(«ADOX.Catalog»);
Книга.ActiveConnection = Соединение;// Создание COM-объекта для работы со структурой данных на листе
Таблица = Новый COMОбъект(«ADOX.Table»);
Таблица.Name = «Лист1»;
Таблица.Columns.Append(«Колонка1», 202);
Таблица.Columns.Append(«Колонка2», 7);
Таблица.Columns.Append(«Колонка3», 5);
Таблица.Columns.Append(«Колонка4», 5);// Создание в книге листа с описанной структурой
Книга.Tables.Append(Таблица);
Таблица = Неопределено;
Книга = Неопределено;
В приведенном примере в методе
Таблица.Columns.Append(«Колонка1», 202);
во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:
- 5 — adDouble;
- 6 — adCurrency;
- 7 — adDate;
- 11 — adBoolean;
- 202 — adVarWChar;
- 203 — adLongVarWChar.
Пример чтения:
// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);// Установка строки соединения
Соединение.ConnectionString = «
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=»+ИмяФайла+«;
|Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
Соединение.Open(); // Открытие соединения// Создание COM-объекта для получения выборки
Выборка = Новый COMОбъект(«ADODB.Recordset»);
ТекстЗапроса = «SELECT * FROM [Лист1$]»;// Выполнение запроса
Выборка.Open(ТекстЗапроса, Соединение);// Обход результата выборки
Пока НЕ Выборка.EOF() Цикл
ЗначениеКолонки1 = Выборка.Fields.Item(«Колонка1»).Value; // Обращение по имени колонки
ЗначениеКолонки2 = Выборка.Fields.Item(0).Value; // Обращение по индексу колонки
Выборка.MoveNext();
КонецЦикла;Выборка.Close();
Выборка = Неопределено;
Соединение.Close();
Соединение = Неопределено;
В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:
- YES — первая строка воспринимается как названия колонок. К значениям можно обращаться по имени и по индексу колонки.
- NO — первая строка воспринимается как данные. К значениям можно обращаться только по индексу колонки.
В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:
- Connection;
- Command;
- Recordset;
- Record;
- Fields;
- Stream;
- Errors;
- Parameters;
- Properties.
Выгрузка без программирования
Для сохранения данных из 1С в Excel не всегда целесообразно прибегать к программированию. Если в режиме Предприятия пользователь может отобразить требуемые для выгрузки данные, то, их возможно сохранить в Excel без программирования.
Для сохранения табличного документа (например, результата отчета) можно вызвать команду Сохранить или Сохранить как… главного меню.
В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.
Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:
- Вывести данные в табличный документ при помощи команды Еще ⇒ Вывести список…;
- Сохранить табличный документ в требуемый формат.
+4
Процедура сохраняет табличный документ в файл excel и открывает его
Код 1C v 8.х
Процедура ОткрытьТабличныйДокументВExcel(ТабДокумент,ИмяФайла) Экспорт
ИмяФайла = Строка(ИмяФайла) + ".xls";
Каталог = КаталогВременныхФайлов();
ПолныйПутьКФайлу = Каталог + ИмяФайла;
Попытка
ТабДокумент.Записать(ПолныйПутьКФайлу,ТипФайлаТабличногоДокумента.XLS);
Сообщить("Записан новый файл " + ПолныйПутьКФайлу);
ЗапуститьПриложение(ПолныйПутьКФайлу);
Исключение
СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Содержание
- Выгрузка информации из 1C в Excel
- Способ 1: копирование содержимого ячейки
- Способ 2: вставка списка в существующую книгу Excel
- Способ 3: создание новой книги Excel со списком
- Способ 4: копирование диапазона из списка 1С в Excel
- Способ 5: Сохранение документов в формате Excel
- Вопросы и ответы
Не секрет, что среди офисных работников, в частности тех, которые заняты в расчетной и финансовой сфере, особенно популярны программы Excel и 1С. Поэтому довольно часто приходится производить обмен данными между этими приложениями. Но, к сожалению, далеко не все пользователи знают, как быстро это сделать. Давайте выясним, как выгрузить данные из 1С в документ Excel.
Выгрузка информации из 1C в Excel
Если загрузка данных из Excel в 1С – это довольно сложная процедура, автоматизировать которую можно только с помощью сторонних решений, то обратный процесс, а именно выгрузка из 1С в Эксель – это сравнительно простой набор действий. Его можно легко выполнить с помощью встроенных инструментов вышеуказанных программ, причем сделать это можно несколькими способами, в зависимости от того, что именно пользователю нужно перенести. Рассмотрим, как это выполнить на конкретных примерах в 1С версии 8.3.
Способ 1: копирование содержимого ячейки
Одна единица данных содержится в ячейке 1С. Её можно перенести в Эксель обычным методом копирования.
- Выделяем ячейку в 1С, содержимое которой нужно скопировать. Кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать». Можно воспользоваться также универсальным способом, который действует в большинстве программ, работающих на ОС Windows: просто выделяем содержимое ячейки и набираем комбинацию клавиш на клавиатуре Ctrl+C.
- Открываем чистый лист Excel или документ, куда нужно вставить содержимое. Кликаем правой кнопкой мыши и в появившемся контекстном меню в параметрах вставки выбираем пункт «Сохранить только текст», который изображен в форме пиктограммы в виде большой буквы «А».
Вместо этого действия можно после выделения ячейки, находясь во вкладке «Главная», щелкнуть по значку «Вставить», который расположен на ленте в блоке «Буфер обмена».
Также можно воспользоваться универсальным способом и набрать на клавиатуре сочетание клавиш Ctrl+V после того, как ячейка выделена.
Содержимое ячейки 1С будет вставлено в Excel.
Способ 2: вставка списка в существующую книгу Excel
Но вышеуказанный способ подойдет лишь в том случае, если нужно перенести данные из одной ячейки. Когда же нужно совершить перенос целого списка, то следует воспользоваться другим способом, ведь копирование по одному элементу отберет очень много времени.
- Открываем любой список, журнал или справочник в 1С. Кликаем на кнопку «Все действия», которая должна располагаться вверху от обрабатываемого массива данных. Запускается меню. Выбираем в нем пункт «Вывести список».
- Открывается небольшое окошко вывода списка. Тут можно произвести некоторые настройки.
Поле «Выводить в» имеет два значения:
- Табличный документ;
- Текстовый документ.
По умолчанию установлен первый вариант. Для переноса данных в Эксель он как раз и подходит, так что тут мы ничего не меняем.
В блоке «Выводить колонки» можно указать, какие колонки из списка вы хотите перевести в Excel. Если вы собираетесь производить перенос всех данных, то эту настройку тоже не трогаем. Если же вы хотите произвести конвертацию без какого-то столбца или нескольких столбцов, то снимаем галочку с соответствующих элементов.
После того, как настройки завершены, жмем на кнопку «OK».
- Затем на экран выводится список в табличном виде. Если вы хотите перенести его в готовый файл Excel, то просто выделите в нем все данные курсором с зажатой левой кнопкой мыши, потом кликните по выделению правой кнопкой мышки и в открывшемся меню выберите пункт «Копировать». Можно так же, как и в предыдущем способе использовать сочетание горячих клавиш Ctrl+С.
- Открываем лист Microsoft Excel и выделяем верхнюю левую ячейку диапазона, в который будут вставляться данные. Затем жмем на кнопку «Вставить» на ленте во вкладке «Главная» или набираем сочетание клавиш Ctrl+V.
Список вставлен в документ.
Способ 3: создание новой книги Excel со списком
Также список из программы 1С можно сразу вывести в новый файл Эксель.
- Выполняем все те шаги, которые были указаны в предыдущем способе до формирования списка в 1С в табличном варианте включительно. После этого жмем на кнопку вызова меню, которая расположена в верхней части окна в виде треугольника, вписанного в оранжевый круг. В запустившемся меню последовательно переходим по пунктам «Файл» и «Сохранить как…».
Ещё проще сделать переход, нажав на кнопку «Сохранить», которая имеет вид дискеты и расположена в блоке инструментов 1С в самом верху окна. Но такая возможность доступна только пользователям, которые применяют программу версии 8.3. В ранних версиях можно использовать только предыдущий вариант.
Также в любых версиях программы для запуска окна сохранения можно нажать комбинацию клавиш Ctrl+S.
- Запускается окно сохранение файла. Переходим в ту директорию, в которой планируем сохранить книгу, если место расположения по умолчанию не устраивает. В поле «Тип файла» по умолчанию указано значение «Табличный документ (*.mxl)». Нам это не подходит, поэтому из выпадающего списка выбираем пункт «Лист Excel (*.xls)» или «Лист Excel 2007 — … (*.xlsx)». Также при желании можно выбрать совсем старые форматы – «Лист Excel 95» или «Лист Excel 97». После того, как настройки сохранения произведены, жмем на кнопку «Сохранить».
Весь список будет сохранен отдельной книгой.
Способ 4: копирование диапазона из списка 1С в Excel
Бывают случаи, когда нужно перенести не весь список, а только отдельные строки или диапазон данных. Этот вариант тоже вполне воплотим с помощью встроенных инструментов.
- Выделяем строки или диапазон данных в списке. Для этого зажимаем кнопку Shift и кликаем левой кнопкой мыши по тем строкам, которые нужно перенести. Жмем на кнопку «Все действия». В появившемся меню выбираем пункт «Вывести список…».
- Запускается окошко вывода списка. Настройки в нем производим так же, как и в предыдущих двух способах. Единственный нюанс состоит в том, что нужно установить галочку около параметра «Только выделенные». После этого жмем на кнопку «OK».
- Как видим, список, состоящий исключительно из выделенных строк, выведен. Дальше нам нужно будет выполнить точно такие же действия как в Способе 2 или в Способе 3, в зависимости от того, собираемся мы добавлять список к уже имеющейся книге Excel или создавать новый документ.
Способ 5: Сохранение документов в формате Excel
В Excel иногда нужно сохранять не только списки, но и созданные в 1С документы (счета, накладные платежные поручения и т.д.). Это связано с тем, что для многих пользователей редактировать документ проще в Экселе. К тому же в Excel можно удалить заполненные данные и, распечатав документ, использовать его при необходимости как бланк для ручного заполнения.
- В 1С в форме создания любого документа имеется кнопка печати. На ней расположена пиктограмма в виде изображения принтера. После того, как в документ введены необходимые данные и он сохранен, жмем на этот значок.
- Открывается форма для печати. Но нам, как мы помним, нужно не распечатать документ, а конвертировать его в Эксель. Легче всего в версии 1С 8.3 это сделать, нажав на кнопку «Сохранить» в виде дискеты.
Для более ранних версий используем сочетание горячих клавиш Ctrl+S или, нажав на кнопку вывода меню в виде перевернутого треугольника в верхней части окна, последовательно переходим по пунктам «Файл» и «Сохранить».
- Открывается окно сохранение документа. Как и в предыдущих способах, в нем нужно указать место расположения сохраняемого файла. В поле «Тип файла» следует указать один из форматов Эксель. Не забываем дать название документу в поле «Имя файла». После выполнения всех настроек жмем на кнопку «Сохранить».
Документ будет сохранен в формате Эксель. Этот файл теперь можно открывать в данной программе, и проводить дальнейшую его обработку уже в ней.
Как видим, выгрузка информации из 1С в формат Excel не составляет никаких сложностей. Нужно знать только алгоритм действий, так как, к сожалению, не для всех пользователей он интуитивно понятен. С помощью встроенных инструментов 1С и Эксель можно копировать содержимое ячеек, списков и диапазонов из первого приложения во второе, а также сохранять списки и документы в отдельные книги. Вариантов сохранения достаточно много и для того, чтобы пользователь мог найти подходящий именно для его ситуации, совсем не нужно прибегать к использованию стороннего программного обеспечения или применять сложные комбинации действий.