Для анализа способов записи мы создали обработку, которая записывает файл Excel в двух вариантах. Форма обработки показана ниже:
Обработка выполняет запись 3 строк, в каждой строке 5 значений и одна картинка. Код обработки может выполняться как на клиенте, так и на сервере.
Вы можете скачать обработку и ознакомиться с ее работой по ссылке:
Выгрузка через Табличный документ
Это один из самых простых способов записи в xlsx и xls. В 1С в этом варианте Вы будете работать с объектом ТабличныйДокумент. Ниже показан пример записи в табличный документ, который Вы также можете найти в прилагаемой выше обработке:
&НаКлиенте Процедура ВыполнитьЗаписьЧерезТабличныйДокумент() ТабДок = Новый ТабличныйДокумент; Для СтрокаНомер = 1 По 3 Цикл //Записываем значения строки Для КолонкаНомер = 1 По 5 Цикл Область = ТабДок.Область(СтрокаНомер, КолонкаНомер); Область.Текст = СтрокаНомер * КолонкаНомер; КонецЦикла; //Записываем изображение Область = ТабДок.Область(СтрокаНомер, 6); Область.Картинка = Элементы["Изображение" + СтрокаНомер].Картинка; КонецЦикла; ТипФайла = ТипФайлаТабличногоДокумента.XLSX; //Если запись в формате xls - тип файла ТипФайлаТабличногоДокумента.XLS97 ТабДок.Записать(Каталог + "Тест.xlsx", ТипФайла); КонецПроцедуры
Плюсы данного метода записи:
- Не нужно устанавливать Excel на клиенте/сервере.
- Не нужно реализовывать масштабирование изображений — Вы устанавливаете только ширину/высоту ячейки.
- Высокая скорость записи т.к. не используется прослойка в виде COMОбъекта.
Минусы:
- Нет возможности устанавливать формулы для ячеек.
- Неконтролируемая конвертация табличного документа в документ Excel. Как пример — могут смещаться изображения.
Замер производительности показывает общее время записи 0,28 сек.
Выгрузка через Excel
В этом варианте запись выполняется с помощью COMОбъекта Excel — устанавливаем соединение с Excel, создаем книгу и размещаем данные на ее листах. Обязательно закрываем книгу и соединение!
&НаКлиенте Процедура ВыполнитьЗаписьЧерезExcel() Эксель = Новый COMОбъект("Excel.Application"); Эксель.DisplayAlerts = 0; Эксель.ScreenUpdating = 0; Эксель.EnableEvents = 0; Книга = Эксель.WorkBooks.Add(); Лист = Книга.WorkSheets(1); Для СтрокаНомер = 1 По 3 Цикл //Записываем значения строки Для КолонкаНомер = 1 По 5 Цикл Лист.Cells(СтрокаНомер, КолонкаНомер).Value = СтрокаНомер * КолонкаНомер; КонецЦикла; //Записываем изображение СтрокаКартинка = Элементы["Изображение" + СтрокаНомер].Картинка; ВременныйФайл = ПолучитьИмяВременногоФайла("" + СтрокаКартинка.Формат()); СтрокаКартинка.Записать(ВременныйФайл); ЛистИзображение = Лист.Shapes.AddPicture(ВременныйФайл, Ложь, Истина, Лист.Cells(СтрокаНомер, 6).Left + 1, Лист.Cells(СтрокаНомер, 6).Top + 1, -1, -1); ЛистИзображение.Placement = 1; ЛистИзображение.LockAspectRatio = 0; //Масштабирование изображения ЛистИзображение.Width = 47; ЛистИзображение.Height = 29; Лист.Rows(СтрокаНомер).RowHeight = 33; ЛистИзображение.Height = 29; УдалитьФайлы(ВременныйФайл); КонецЦикла; ТипФайла = 51; //Если запись в формате xls - тип файла -4143 Книга.SaveAs(Каталог + "Тест.xlsx", ТипФайла); Попытка Книга.Close(Ложь); Эксель.DisplayAlerts = 1; Эксель.Quit(); Исключение Информация = ИнформацияОбОшибке(); Сообщить(Информация.Описание); КонецПопытки; КонецПроцедуры
Плюсы данного метода записи:
- Полный контроль над процессом записи.
- Доступ практически ко всем возможностям Excel.
Минусы:
- Нужно устанавливать Excel на клиенте/сервере.
- Нужно реализовывать масштабирование изображений. Алгоритм записи должен позиционировать изображение в ячейке устанавливая ширину и высоту. Также нужно настраивать высоту строки.
- Низкая скорость записи.
Замер производительности показывает общее время записи 0,86 сек. Это в 3 раза медленнее чем запись через Табличный документ. По своему опыту можем отметить — медленнее может быть в 10 и более раз!
Итоги
При выборе варианта выгрузки лучше смотреть на поставленную задачу. Оптимально использовать запись через Табличный документ — многие моменты записи будут упрощены. Можно объединять 2 варианта записи — основу записывать через Табличный документ, а формулы добавлять с использованием Excel. Такая запись будет производительнее чем полная запись через Excel.
Наши разработки:
Обработка «Выгрузка прайс-листа в excel с картинками» в программе Управление торговлей 11
Обработка позволяет из 1С выгружать прайс-лист в формате excel.
Скачать образец (xls)
Обработка «Выгрузка прайс-листа в excel (демо).zip» (скачать)
- Предусмотрена возможность выгружать картинки номенклатуры в заданном формате: можно указать ширину и высоту ячейки, в которую будет вписываться картинка. При чем при уменьшении масштаба, картинка сжимается, что позволяет сжать файл excel до минимальных размеров (чем меньше картинка, тем меньше размер файла).
- Взаимодействие с сайтом. Есть возможность выводить гиперссылку на сайт. Для этого нужно создать дополнительный реквизит номенклатуры с именем «ГиперСсылка» (без пробелов), либо создать в конфигураторе предопределенный реквизит из плана видов характеристик «Дополнительные реквизиты и сведения» с именем «ГиперСсылка».
Содержимое гиперссылки привязывается к картинке номенклатуры, в случае отсутствия картинки гиперссылка записывается в ячейку как текст «Ссылка на фото» за место картинки. При нажатии на Картинку или текст «Ссылка на фото» браузер переходит по соответствующей ссылке. - Вывод номенклатуры в иерархическом виде или списком. Чтобы выводить с иерархией необходимо в настройках обработки установить чек бокс «Выгружать с группировкой».
После выгрузки номенклатура будет выведена иерархически, при чем вложенные элементы можно свернуть/развернуть, нажав на кнопку «+»/»-«. - Вывод заголовка прайс-листа. К прайсу можно привязать любую заголовочную картинку, в которой вы можете прописать логотип фирмы, адрес и прочую необходимую информацию, как вы пожелаете.
- Вывод даты прайс-листа. После заголовка выводится дата, когда был сформирован прайс. Чтобы поменять дату необходимо в настройках обработки указать нужную дату. Кроме того, цены будут сформированы в соответствии с актуальностью заданной даты.
- Возможность указывать произвольное количество полей в прайс-листе. Этими полями могут быть как обычные (например: производитель, объем и т.п.), так и дополнительные (те, что задает пользователь самостоятельно).
Расположением полей можно управлять, задав номер колонки. А так же здесь можно изменять ширину колонок (кроме фотографии, ширина этого поля, как было описано выше, определяется в обработке в настройках картинки).
Так же можно указать служебное поле, которое не заполняется, а выводится пустое (на вкладке «Сопоставление полей» необходимо в «поле номенклатуры 1С» выбрать <Не используется>). - Закрепление области заголовков вместе с итогами. Удобно при просмотре большого списка, чтобы заголовок колонки оставался видимым для пользователя, а не уходил вверх.
- Наличие специальных служебных полей: 2 вида типа цены (Обычно используют оптовую и розничную), остаток номенклатуры, заказ клиента и сумма заказа, Дата ближайшего поступления.
- 5 типов цен. В настройке программы указывается тип цены в соответствии с которым будет выгружаться цена номенклатуры. Можно указать организацию для которой будут анализироваться цены. Либо оставить организацию пустой, тогда будет получена самая актуальная цена на дату отчета.
- Остаток номенклатуры: здесь выводится остаток номенклатуры с учетом резерва (т.е. тот что доступен для продажи). При чем можно указать обработки, выгружать или не выгружать номенклатуру у которого нет свободного остатка. Можно выбирать склад, по которому будет анализироваться остаток номенклатуры. Либо оставить склад пустым, тогда будут рассматриваться общие остатки в базе.
- Дата ближайшего поступления. Если доступная для продажи номенклатура отсутствует на складе, то программа проверяет текущие заказы поставщикам. Если есть оформленный заказ, то выводится ближайшая из дат поступления данной позиции.
- Заказ клиента и сумма заказа. Поле заказ клиента выгружается пустым (предполагается, что сюда клиент будет вбивать количество заказанных позиций). В поле сумма заказа будет записана формула: Сумма заказа = Заказ клиента *<Вторая цена>. Сверху прайс-листа записывается итоговая сумма заказа, которая находится на закрепляемой области, т.е. после заполнения каждой ячейки заказа можно оперативно отслеживать получившуюся сумму заказа клиента.
- Поля «Объем» и «Вес». Сюда записается следующая формула: <Значение объема> * Заказ клиента и <Значние веса> * Заказ клиента. Т.е. после того, как клиент заполнил ячейку заказу нужным количеством, вес и объем пересчитываются. Сверху записывается итоговая сумма объема и веса, которая находится на закрепляемой области.
- Отбор выгружаемой номенклатуры. Можно как выгрузить полный прайс-лист, так и отдельные позици, формируемые в соответствии с отбором. Отбор использует типовые возможности платформы 1С. Т.е. можно отобрать как позиции из нужной группы с видом сравнений (в группе, не в группе, в списке групп и т.п.); можно отобрать отдельнные конкретные позиции, можно отобрать позиции с нужным свойством, допустим те, у которых производитель «Россия» или, допустим, все, кроме производитель «Китай». Или те, у котрых вес меньше 10 кг. И т.п.
Так же можно устанавливать отбор по дополнительным реквизитам. Для этого в «Номенклатура» после раскрытия списка знаком «+» нужно выбрать «дополнительные реквизиты.Свойство» «Равно» <дополнительный реквизит>, далее добавить в отборе новую строку и выбрать в «Номенклатура» после раскрытия списка знаком «+» «Дополнительные реквизиты.Значение» «Равно/Не равно и т.п.» в «Значениие» выбрать «Значение свойства объектов» (если тип реквизита не строка, дата и т.п.) и уже выбрать нужное значение для отбора. - Предусмотрена возможность работы с характеристиками
- Можно выгружать штрихкоды номенклатуры.
- Чтобы можно было запускать обработку пользователям с ограниченными правами, то эту обработку нужно сохранить в базе в разделе НСИ и Администрирование / Печатные формы отчеты и обработки / Дополнительные отчеты и обработки. Это нужно сделать один раз под пользователем с полными правами.
Образец выгруженного прайса здесь.
Примечание. Данная обработка совместима с программой Управление торговлей версий 11.0, 11.1, 11.2, 11.3 и Excel версиях 2007,2010 (необходимо наличие этой программы на компьютере в котором происходит выгрузка). Внимание! С релиза платформы 1С 8.3.9 при первом запуске внешних обработок появилось предупреждение безопасности. Данная обработка абсолютно безопасна. Выбираем вариант «Да», Разрешить открывать обработку. Кроме того при первой попытке сформировать прайс всплывет второе предупреждение безопасности, сообщающее о подключении исполнимого бинарного файла Excel.Application. Выбираем Да, Разрешить, это безопасно, т.к. обработка пытается наладить общение с программой Excel, чтобы совместно с ней построить нужный прайс лист.Содержание
- Выгрузка информации из 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С и Эксель можно копировать содержимое ячеек, списков и диапазонов из первого приложения во второе, а также сохранять списки и документы в отдельные книги. Вариантов сохранения достаточно много и для того, чтобы пользователь мог найти подходящий именно для его ситуации, совсем не нужно прибегать к использованию стороннего программного обеспечения или применять сложные комбинации действий.
Конструктор прайс листов из 1C в Excel
О ПРОГРАММЕОбработка предназначена для быстрого создания прайс листов в Excel из 1С. Прайс лист содержит с логотип и контакты компании. Несколько цен. Картинки товаров. Прайс защищен паролем и для редактирования доступны только ввод количества и контакты покупателя. Сформированный прайс-лист удобен для выкладывания на сайте для скачивания и рассылки клиентам как оффлайн каталог. |
Пользователь сам выбирает какие колонки вывести
Конструктор колонок
|
Форма заказа внутри прайса
ВЫГРУЗКА НЕСКОЛЬКИХ ЦЕН
В прайс возможно выгрузить несколько видов цен.
Каждая цена будет действовать в зависимости от суммы заказа.
Чем больше заказ, тем меньше цена.
Каждая цена для удобства оформляется своим цветом.
Автоматический расчет суммы заказа прямо в прайсе.
Работает во всех типовых конфигурациях 1С 8.3
СОВМЕСТИМОСТЬ С КОНФИГУРАЦИЯМИ 1С
- 1С: Управление торговлей 10
- 1С: Управление торговлей 11
- 1С: Управление небольшой фирмой
- 1С: Комплексная автоматизация (все редакции)
- 1С: УПП (все редакции)
- 1С: ERP
- 1С: Розница 2
- Конфигурации 1С для других стран
Выгрузка из УТ 10.3 в Excel прайс-лист вместе с фотографиями, остатками и ценами.
Обработка позволяет выгружать из УТ 10.3 в Excel прайс-лист вместе с фотографиями, остатками и ценами. В форме обработки можно задать условия по группам выгружаемых товаров, складам для остатков, типам цен. Помимо этого обработка позволяет рассчитывать сумму заказа в выгруженном прайс-листе и устанавливать скидку.