Сразу предупреждаю это не программа, а рассказ - как пошагово добиться нужного результата - одна из идей, а не панацея (с рабочим примером)
(предложите лучшую буду премного благодарен)
Рассказ для платформы 7.7 (результат проверен на WIN XP и MS OFFICE 2003)
Начнем...
Все Вы отличные программисты и всегда в программном коде для вывода на печать печатной формы писали типа...
ТП=СоздатьОбъект("Таблица"); ..... ТП.Опции(,,,,,,,); ТП.ПовторятьПриПечатиСтроки(,); ТП.ПовторятьПриПечатиСтолбцы(,); ТП.ПараметрыСтраницы(,,,,,,,,,,,); ....
ну и так далее
красиво форматировали макет (объединяли строки, столбцы, задавали направление текста вертикальное...)
Выводили на печать и все это радовало глаз (в 1С) , но увы при сохранении в формате *.xls многие форматы новоиспеченный документ забывал. И приходилось опять вручнуюформатировать таблицу. Но мы же с Вами программисты ! Давай те облегчим нашу работу....
И так.
1. Нужно как то передавать в EXCEL параметры форматирования (отображения) документа.
- выберем старый проверенный способ - строковой параметр, разделенный запятой.
1.1. Где его хранить (параметр в сохраненном документе) ?
- как вариант записывать в ячейку (пусть будет А1)
- чтобы не отображался параметр при печати из 1С , цвет шрифта сделаем равным цвету фона таблицы
- а как отличаться наш параметр будет от другого текста ? пусть начинается с префикса "1С,"
1.2. Как его передавать в нужную таблицу ?
- напишем процедуру в глобальном модуле или модуле формы объекта
ДобавимПараметрыДляФорматаВЭксель
(Таб, //Макет таблицы в которую нужно поместить метку
ФиксСтрок="", - Число, сколько строк нужно закрепить в окне EXCEL
ФискСтолбцов="", - Число, сколько столбцов нужно закрепить в окон EXCEL
ФлагЗакрепОкна="",-0 не закреплять, 1 закрепить разделитель окна
ПовторСтрНач="", начальная строка для повтора при выводе на печать
ПовторСтрКон="", конечная строка для повтора при выводе на печать
ОриенСтр="" ориентация страницы 1- портрет, 2 - ландшафт
) Экспорт
Все мы с Вами добились , что нужные документы в 1С имеют "секретный пакет" для EXCEL, но, а он то не знает , что со всем этим делать ?
Для этого в MS OFFICE существуют макросы (на языке VBA)
есть предопределенные : например Workbook_Open()
все что будет написано в процедуре будет выполнятся при открытии новой книге EXCEL , но я думаю не разумно будет каждый документ проверять на предмет наличия параметра из 1С.
Поэтому добавим командную панель с кнопочками, при нажатии на которую документ моментально "приводится" к нужному виду.
В прилагаемой обработке - сама процедура , пример работы
ДобавимПараметрыДляФорматаВЭксель()
отредактируйте ее под себя или просто скопируйте
запустив обработку, у Вас в Вашем EXCEL добавится командная панель , как на рисунке.