gifts2017

Вывод в xls из 1С используя шаблон excel (печать упаковочного листа для ОБИ)

Опубликовал Илья (i132) в раздел Обмен - Загрузка и выгрузка в Excel

Формирование Excel упаковочного листа с штрихкодом для ОБИ,
Натройки печати, макросы, формулы, оформление ячеек берутся из шаблона в формате Excel

Довольно много примеров формирования excel файлов из 1С. Самый простой способ сформировать mxl таблицу и сохранить как xls.

Но если надо выводить на несколько листов, с определенными именами, с формулами связывающими листы между собой, то приходится обращаться непосредственно к excel.

Сразу хочется воспользоваться привычными из 1С методами: вывести секцию на основании заранее оформленного шаблона.

(Самый быстрый вариант заполнения отформатированного excel файла это заполнение шаблона с помощью макроса которому передаются причесанные данные, но для этого надо знать VBA, пожалуста дайте ссылку на такой пример.)

Насколько я знаю в excel секций нет, но есть именованные области.

Вместо задания имен областей в шаблон файла я добавил отдельную закладку "ПараметрыШаблона" и оттуда беру номера начальной строки секции, и количество строк в ней.

параметры шаблона

команда excel ДиапозонИсточник.Copy(ДиапозонПриемник) переносит все оформление и формулы выбранных ячеек, осталось только подставить значения из 1с. чтобы различить постоянный текст и значения для подставновки я использую угловые скобки в которых пишу выражения 1С. Заполнение ячеек в коде 1С выглядит так:

ДобавитьСтрокуПоШаблону(текЛист,ЛистШаблона,СтрокаТаблицыШаблона,ТекСтрокаЛиста,ИсточникДанных)

формулы в шаблоне лучше писать в формате относительных ссылок RC: ReferenceStyle = 0 - тогда можно копировать формулу подсчета суммы в строке из шаблонной строки табличной части.

Когда мы открываем новую книгу на основании шаблона в нее переходят макросы из шаблона:

НоваяКнига = Приложение.Workbooks.Add(ПолноеИмяШаблона)

Если нам нужен только один лист -он уже есть в новой книге, осталось удалить строки шаблона --ширина колонок уже настроенна.

 

 

В прикрепленном архиве лежат:

шрифт Barcode.ttf

обарботка ПакЛист_ОБИ_xls.epf -- для 8.2, обычные оформы, проверялась работа на УТ 10.3

Внешняя печатная форма ПакЛист_ОБИ_xls.ert -- для 7.7 ТиС 9.2 (компл 4.X)

Шаблон ШаблонПакЛистОБИ.xls

 

Формирование ШтрихКОда взято у Рябочкина Максима http://code128.narod.ru/.

Я не смог по 7.7 отключить вопросы по сохранеию изменений шаблона -- буду рад советам, как этот вопрос отключить.

Подскажите, как присвоить имя по умолчанию еще не сохраненному файлу excel?

 

похожий проект: http://infostart.ru/public/16466/

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ПакЛистОби.zip
.zip 58,04Kb
06.03.13
129
.zip 58,04Kb 129 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Анатолий Бычин (tolyan_ekb) 28.02.13 07:22
Орфография и стиль изложения не на высоте, к сожалению. В архиве обработки для 1с 8.1 и 7.7 или тоже ошибка в описании?
2. Илья (i132) 28.02.13 10:37
В архиве обработки для 7.7 и для 8.2 - проверял работу на типовых ТиС 7.7 и УТ 10.3 -вы правы конфигурации на которых работает надо уточнить.
3. Макас (makas) 04.03.13 10:48
Взял на заметку для своей коллекции!
5. dndw dndw (dndw) 12.04.13 19:42
каким образом можно загрузить в табличную часть документа "оприходование товаров" из xls, xml или напрямую из базы. Возникла проблема с переносом остатков.
6. Илья (i132) 15.04.13 11:08
Для загрузки в табличную чать документа 1с их xls, много обработок, например ЗагрузкаДанныхИзТабличногоДокумента.epf с диска ИТС, или поискать на этом сайте.
если напрямую из базы -воспользуйтесь конвертацией данных, то же есть примеры на инфостерте, например http://infostart.ru/public/170466/
еще вариант сделайте копию нужного документа в исходной базе и перенесите его 1:1 в новую базу.

При загрузке подключите мою обработку http://infostart.ru/public/98910/ которая покажет что изменилось в новой базе.

моя обработка про другое: как из 1с сделать красивый "живой" xls, с макросами и формулами.
7. Gina Ivanova (lola_iv) 14.07.14 15:02
Попробуйте Excel.DisplayAlerts = 0;
8. Александр Лопатин (lopatin) 14.11.15 18:33
Ширина и высота ячеек(колонок и строк) не сохраняется.. Как бы сделать, так чтобы они сохранялись и копировались из шаблона?
Прикрепленные файлы:
9. Александр Лопатин (lopatin) 14.11.15 18:36
Excel поддерживает именованные области, можно Range выделять обращаясь к именованной области. Что позволит отказаться от листа с параметрами шаблона.

Например можно выделить, шапку в шаблоне задать её имя: Шапка.

В коде обращаться: ЛистШаблона.Range("Шапка")
ilya.don; Светлый ум; +2 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа