Довольно много примеров формирования 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?
похожий проект: //infostart.ru/public/16466/