Сразу предупреждаю, что это не программа, а рассказ - как пошагово добиться нужного результата. Одна из идей, а не панацея (с рабочим примером). Предложите лучшую - буду премного благодарен.
Рассказ для платформы 7.7 (результат проверен на WIN XP и MS OFFICE 2003)
Начнем...
Все Вы отличные программисты и всегда в программном коде для вывода на печать печатной формы писали типа...
ТП=СоздатьОбъект("Таблица");
.....
ТП.Опции(,,,,,,,);
ТП.ПовторятьПриПечатиСтроки(,);
ТП.ПовторятьПриПечатиСтолбцы(,);
ТП.ПараметрыСтраницы(,,,,,,,,,,,);
....
Ну и так далее...
Красиво форматировали макет (объединяли строки, столбцы, задавали направление текста вертикальное...), выводили на печать и все это радовало глаз (в 1С). Но, увы, при сохранении в формате *.xls многие форматы новоиспеченный документ забывал. И приходилось опять вручную форматировать таблицу.
Но мы же с Вами программисты! Давайте облегчим нашу работу....
Итак, нужно как-то передавать в EXCEL параметры форматирования (отображения) документа.
Для этого выберем старый проверенный способ - строковой параметр, разделенный запятой.
1. Где его хранить (параметр в сохраненном документе) ?
- Как вариант, записывать в ячейку (пусть будет А1)
- Чтобы не отображался параметр при печати из 1С, цвет шрифта сделаем равным цвету фона таблицы
- А как наш параметр будет отличаться от другого текста? Пусть начинается с префикса "1С,"
2. Как его передавать в нужную таблицу ?
- Для этого напишем процедуру в глобальном модуле или модуле формы объекта
ДобавимПараметрыДляФорматаВЭксель
(Таб, //Макет таблицы в которую нужно поместить метку
ФиксСтрок="", // Число, сколько строк нужно закрепить в окне EXCEL
ФискСтолбцов="", // Число, сколько столбцов нужно закрепить в окон EXCEL
ФлагЗакрепОкна="", // 0 - не закреплять, 1 - закрепить разделитель окна
ПовторСтрНач="", // начальная строка для повтора при выводе на печать
ПовторСтрКон="", // конечная строка для повтора при выводе на печать
ОриенСтр="" // ориентация страницы, 1 - портрет, 2 - ландшафт
) Экспорт
Таким образом мы с Вами добились, что нужные документы в 1С имеют "секретный пакет" для EXCEL, но, а он-то не знает, что со всем этим делать ?
Для этого в MS OFFICE существуют макросы (на языке VBA). Например есть предопределенный макрос Workbook_Open(). Все, что будет написано в его процедуре, будет выполнятся при открытии новой книги EXCEL.
Правда, я думаю, не разумно будет каждый документ проверять на предмет наличия параметра из 1С, поэтому добавим командную панель с кнопочками, при нажатии на которую документ будет моментально "приводиться" к нужному виду.
В прилагаемой обработке НастройкаТаблицыВЕхсель - сама процедура ДобавимПараметрыДляФорматаВЭксель() и пример работы. Отредактируйте ее под себя или просто скопируйте. Запустив обработку, у Вас в Вашем EXCEL добавится командная панель , как на рисунке.
(кстати как она появляется, предлагаю выяснить Вам, как домашнее задание - очень иногда бывает полезный пример - 1 из вариантов я уже описывал //infostart.ru/public/19983/ )
Если будет интересно для Вас, добавлю другие шаблоны.
ОТВЕТ (решение задачи - статья)
Как удалить эту дополнительную панель РАЗ И НАВСЕГДА
- В EXCEL правой кнопкой по любой панели инструментов (например по слову "файл")- настройка - Панель инструментов - выбрать "Формат_1С" удалить.
- Или удалить вот этот файл:
"C:\Documents and Settings\ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\EXCEL\XLSTART\PERSONAL.XLS"; - Или запустить обработку из вложения к этой публикации ("Удалить книгу макросов")