Из 1 с в эксель

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

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

1.Как сохранить из 1С в Excel данные ячейки?

Самый простой способ сохранить из 1С в Excel данные — это выбрать в документе или журнале одну ячейку и нажать ctrl+c (копировать), затем в Excel выделить ячейку, куда нужно сохранить данные, и нажать ctrl+v. Таким образом, вы сохраните содержание этой ячейки. Для примера, картинки — это будет 42 289,23

Этот способ действует для любой версии 1С.

2. Как выгрузить из 1С в Excel большое количество данных?

Предыдущий способ хорош, но большой объем данных так не накопируешься. Поэтому лучше пользоваться инструментом Вывести список.

Почти в любом журнале документов, справочнике или документе нажмите правой кнопкой мыши и найдите пункт Вывести список.

Для версий 8.3 и интерфейса «Такси» кнопка вывести список, есть в меню Еще

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

Затем выбираем нужный формат файла.

Все, файл сохранен в нужном формате.

Этот способ так же действует для любой версии 1С.

Для версии 1с 8.2 и выше в тонком клиенте или интерфейсе Такси инструмент Файл — Сохранить как, доступен на панели в верхнем правом углу в виде дискеты

3. Как выгрузить из 1С в Excel печатные формы документов?

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

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

1 — Снимите кнопку Только просмотр, чтобы иметь возможность изменять печатную форму

2 — Сохраните документ в нужный формат, см. пункт 2

А так же содержимое печатной формы вы сможете сохранить как любые текстовые данные, как в Word’e.

Часто печатную форму или форму отчета можно сохранить простым Копировать-Вставить в Excel.

Для более глубокого изучения 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:

Данный метод обладает гораздо большей производительностью и простотой, чем банальный объектный метод через COM соединение.

Все что потребуется это создание 2 объектов

  • ADODB.Connection
  • ADODB.Recordset

Здесь универсальная обработка по загрузке Номенклатуры из Excel:

// Функция для Платформы 1С 8.0 или 8.1 // Выполняет загрузку из файла Excel // // Параметры // ПутьКФайлу — <Строка> — путь к файлу xls // // —%%%Gmix 16.03.2006 12:38:48 // // Возвращаемое значение: // <Булево> – Истина загрузка произошла // — Ложь загрузки не было // Функция ВыполнитьЗагрузку(ПутьКФайлу) Экспорт Файл=Новый Файл(ПутьКФайлу); Если Файл.Существует() Тогда Стр_Файл=Файл.ПолноеИмя; // Отрезаем слеш если он есть в конце пути Стр_Путь=Файл.Путь; Если Прав(Стр_Путь,1)=»\» Тогда Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1); КонецЕсли; // Строка корнекта Стр_Конект = «Driver={Microsoft Excel Driver (*.xls)}; |DriverId=790; |Dbq=»+Стр_Файл+»; |DefaultDir=»+Стр_Путь+»;»; Об_Конект = Новый COMОбъект(«ADODB.Connection»); Попытка Об_Конект.Open(Стр_Конект); Исключение Сообщить («Не возможно подключится к Microsoft Excel Driver!!! |Возможно файл открыт другим пользователем.»); Возврат Ложь; КонецПопытки; // формируем запрос // Здесь есть нюанс первая строка данных всегда будет являться заголовком // если она пустая то имена клонок формируются следующим образом F<Номер колонки> Стр_SQL = «select | F1 as Артикул, | F2 as Наименование, | F3 as ПолноеНаименование | FROM | WHERE ((F1 Is Not Null) AND (F1 <>»))»; Об_РекордСет = Новый COMОбъект(«ADODB.Recordset»); Попытка Об_РекордСет=Об_Конект.Execute(Стр_SQL); Исключение Сообщить(«Не удадлось выполнить запрос к файлу Excel |»+ ОписаниеОшибки(),СтатусСообщения.Важное); Возврат Ложь; КонецПопытки; Пока НЕ Об_РекордСет.EOF Цикл // Получаем данные из Об_РекордСет // … Сообщить(«»); Для каждого ОБ_Поле Из Об_РекордСет.Fields Цикл // Пример вывода информации Сообщить(ОБ_Поле.Name,Об_РекордСет.Fields(ОБ_Поле.Name).value); КонецЦикла; // … Об_РекордСет.MoveNext(); КонецЦикла; Об_Конект.Close(); // Закрываем конект Об_Конект=Неопределено; Об_РекордСет=Неопределено; Возврат Истина; Иначе Сообщить(«Файл «+ПутьКФайлу+» не найден!»); Возврат Ложь; КонецЕсли; КонецФункции

Чтение данных из Excel

Доступ из 1С к Excel производится посредством OLE. Создание COM-объекта: Попытка Эксель = СоздатьОбъект(«Excel.Application»); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки;
Теперь используя переменную Эксель можно управлять приложением Excel.

  • Внимание! Microsoft Excel должен быть установлен на компьютере!

Следующая команда откроет книгу: Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
Перед тем, как начать считывание данных, укажем лист книги, с которого будем считывать данные: Лист = Книга.WorkSheets(НомерЛиста);
Нумерация листов книги начинается с 1. Общее количество листов можно получить, используя следующую команду: КоличествоЛистов = Книга.Sheets.Count;
Лист можно выбрать по имени листа в книге: Лист = Книга.WorkSheets(ИмяЛиста);
Имя листа в книге можно получить по номеру: ИмяЛиста = Книга.Sheets(НомерЛиста).Name;
Итак, мы открыли книгу и выбрали лист, теперь посмотрим, сколько строк и колонок на выбранном листе: ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
Получим значения ячейки листа в строке НомерСтроки и в колонке НомерКолонки: Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;
Ниже приведен отрывок кода, запустив который мы прочитаем все данные с первой страницы: Эксель = СоздатьОбъект(«Excel.Application»); Книга = Эксель.WorkBooks.Open(ПутьКФайлу); Лист = Книга.WorkSheets(1); ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; для Строка = 1 по ВсегоСтрок цикл для Колонка = 1 по ВсегоКолонок цикл Значение = СокрЛП(Лист.Cells(Строка,Колонка).Value); КонецЦикла; КонецЦикла;
Где ПутьКФайлу — полный путь к файлу книги Excel (включая имя).
После выполнения действий необходимо закрыть книгу: Эксель.Application.Quit();

Выгрузка данных в Excel

Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных.
Для создания новой книги можно использовать следующий код: Попытка Эксель = СоздатьОбъект(«Excel.Application»); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Книга = Эксель.WorkBooks.Add();
При создании книги автоматически создаются листы (по умолчанию 3). Нам остается только выбрать нужный: Лист = Книга.WorkSheets(НомерЛиста);
Или добавить в книгу новый лист: Лист = Книга.Sheets.Add();
Добавим в ячейку на листе значение: Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;
Запишем книгу: Попытка Книга.SaveAs(ПутьКФайлу); Исключение Сообщить(ОписаниеОшибки()+» Файл не сохранен!»); КонецПопытки;
Где ПутьКФайлу — полный путь к файлу книги Excel (включая имя).
После выполнения действий необходимо закрыть книгу: Эксель.Application.Quit();

Часто используемые методы Excel

Как выборочно разрешить / запретить редактирование ячеек листа

//Создаем объект EXCEL Эксель = СоздатьОбъект(«Excel.Application»); Книга = Эксель.WorkBooks.Open(ФайлВыгрузки); Лист =Книга.Worksheets(«Список сотрудников»); // Выбор листа Книга.ActiveSheet.UnProtect(); //делаем шаблон незащищенным // Заполняем лист …………………………….. // Снимаем защиту с области ввода сумм Для Перем = 1 По 10 Цикл // Прописываем, какие ячейки будут доступными Книга.ActiveSheet.Cells(Перем, 2).Locked=0; КонецЦикла; Книга.ActiveSheet.Protect(); // ставим защиту на лист

Как осуществить поиск / замену значений ячеек на листе

//Выбираем область поиска — весь лист ОбластьПоиска = Лист.Cells; // Укажем начало листа НачалоЛиста = Диапазон.Cells(1, 1); // Ищем ячейку с текстом, указанным в переменной ТекстДляПоиска, //укажем откуда искать — с начала листа ОбластьПараметр = ОбластьПоиска.Find(ТекстДляПоиска, НачалоЛиста); // Если нашли, заполняем значением из переменной Значение Если ОбластьПараметр <> неопределено Тогда ОбластьПараметр.Value = Значение; КонецЕсли; Замечание. Текст для замены лучше выделять, например, в угловые скобки, аналогично параметрам макета в 1С. Это улучшит наглядность, визуально отделит от рабочего текста. Текст для поиска в этом случае будет выглядеть так: ТекстДляПоиска = «»

Как скопировать / удалить строку

//Выбираем область поиска — весь лист ОбластьПоиска = Лист.Cells; // Найдем нужную нам ячейку // Если не указываем откуда искать — то с текущей ячейки, это первая ячейка на листе НайденнаяОбласть = ОбластьПоиска.Find(«Текст для поиска»); // Выделяем всю строку НайденнаяОбласть.EntireRow.Select(); // Копируем выделенное НайденнаяОбласть.EntireRow.Copy(); // Вставляем (новая строка будет вставлена тут же) НайденнаяОбласть.EntireRow.Insert(); // Теперь как удалить строку. Найдем область НайденнаяОбласть = ОбластьПоиска.Find(«Текст для поиска», НачалоЛиста); НайденнаяОбласть.EntireRow.Delete(); Замечание. Приведенные выше примеры позволят, например, организвать работу с шаблонами на основании листов Excel.

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

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