Из этой записи Вы узнаете 2 самых распространенных способа выгрузки данных в Excel. Мы рассмотрим эффективность и ограничения каждого метода, разберем нюансы записи, затронем некоторые моменты клиент-серверного взаимодействия.
Это один из самых простых способов записи в xlsx и xls. В 1С в этом варианте Вы будете работать с объектом ТабличныйДокумент. Ниже показан пример записи в табличный документ, который Вы также можете найти в прилагаемой выше обработке:
&НаКлиентеПроцедура ВыполнитьЗаписьЧерезТабличныйДокумент()
ТабДок =Новый ТабличныйДокумент;Для СтрокаНомер =1По3Цикл//Записываем значения строкиДля КолонкаНомер =1По5Цикл
Область = ТабДок.Область(СтрокаНомер, КолонкаНомер);
Область.Текст = СтрокаНомер * КолонкаНомер;КонецЦикла;//Записываем изображение
Область = ТабДок.Область(СтрокаНомер,6);
Область.Картинка = Элементы["Изображение"+ СтрокаНомер].Картинка;КонецЦикла;
ТипФайла = ТипФайлаТабличногоДокумента.XLSX;//Если запись в формате xls - тип файла ТипФайлаТабличногоДокумента.XLS97
ТабДок.Записать(Каталог +"\Тест.xlsx", ТипФайла);КонецПроцедуры
Плюсы данного метода записи:
Не нужно устанавливать Excel на клиенте/сервере.
Не нужно реализовывать масштабирование изображений — Вы устанавливаете только ширину/высоту ячейки.
Высокая скорость записи т.к. не используется прослойка в виде COMОбъекта.
Минусы:
Нет возможности устанавливать формулы для ячеек.
Неконтролируемая конвертация табличного документа в документ Excel. Как пример — могут смещаться изображения.
Замер производительности показывает общее время записи 0,28 сек.
Выгрузка через Excel
В этом варианте запись выполняется с помощью COMОбъекта Excel — устанавливаем соединение с Excel, создаем книгу и размещаем данные на ее листах. Обязательно закрываем книгу и соединение!
Нужно реализовывать масштабирование изображений. Алгоритм записи должен позиционировать изображение в ячейке устанавливая ширину и высоту. Также нужно настраивать высоту строки.
Низкая скорость записи.
Замер производительности показывает общее время записи 0,86 сек. Это в 3 раза медленнее чем запись через Табличный документ. По своему опыту можем отметить — медленнее может быть в 10 и более раз!
Итоги
При выборе варианта выгрузки лучше смотреть на поставленную задачу. Оптимально использовать запись через Табличный документ — многие моменты записи будут упрощены. Можно объединять 2 варианта записи — основу записывать через Табличный документ, а формулы добавлять с использованием Excel. Такая запись будет производительнее чем полная запись через Excel.
В свою очередь мы в своем Конструкторе прайс-листов отказались от обоих вариантов и разрабатывали свой. Нужна была максимальная производительность, полное управление процессом записи, сжатие изображений. Ознакомиться с его возможностями Вы можете по ссылке — Конструктор прайс-листов (прайс-заказов) для УТ11, КА2, ERP2, УНФ, Розница.
Расширение позволяет формировать произвольные прайс-листы с выгрузкой в Excel и обратной загрузкой в 1С (после обработки прайс-листа клиентом). Конструктор также ...
Помощник продаж выполнен в виде расширения конфигурации 1С, которое существенно дополняет возможности стандартного списка номенклатуры, превращая его в полноценное рабочее ...
Расширение конфигурации позволяет выводить остатки по всем необходимым складам, отображать цены номенклатуры в списке и применять различные отборы. После установки ...
Расширение конфигурации дорабатывает рабочее место кассира (РМК) и добавляет в нее удобные инструменты для просмотра остатков по складам, остатков по ...
Расширение конфигурации изменяет форму списка номенклатуры и добавляет в него функционал, позволяющий выводить остатки по любому складу, цены номенклатуры и ...
Расширение конфигурации позволяет быстро решить проблему продажи товара по цене ниже закупочной или цены себестоимости. Контроль будет работать в разрезе ...