Натройки печати, макросы, формулы, оформление ячеек берутся из шаблона в формате 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?
похожий проект: //infostart.ru/public/16466/
Орфография и стиль изложения не на высоте, к сожалению. В архиве обработки для 1с 8.1 и 7.7 или тоже ошибка в описании?
В архиве обработки для 7.7 и для 8.2 — проверял работу на типовых ТиС 7.7 и УТ 10.3 -вы правы конфигурации на которых работает надо уточнить.
Взял на заметку для своей коллекции!
каким образом можно загрузить в табличную часть документа «оприходование товаров» из xls, xml или напрямую из базы. Возникла проблема с переносом остатков.
Для загрузки в табличную чать документа 1с их xls, много обработок, например ЗагрузкаДанныхИзТабличногоДокумента.epf с диска ИТС, или поискать на этом сайте.
http://infostart.ru/public/170466/
если напрямую из базы -воспользуйтесь конвертацией данных, то же есть примеры на инфостерте, например
еще вариант сделайте копию нужного документа в исходной базе и перенесите его 1:1 в новую базу.
При загрузке подключите мою обработкуhttp://infostart.ru/public/98910/ которая покажет что изменилось в новой базе.
моя обработка про другое: как из 1с сделать красивый «живой» xls, с макросами и формулами.
Попробуйте Excel.DisplayAlerts = 0;
Ширина и высота ячеек(колонок и строк) не сохраняется.. Как бы сделать, так чтобы они сохранялись и копировались из шаблона?
Excel поддерживает именованные области, можно Range выделять обращаясь к именованной области. Что позволит отказаться от листа с параметрами шаблона.
Например можно выделить, шапку в шаблоне задать её имя: Шапка.
В коде обращаться: ЛистШаблона.Range(«Шапка»)