Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы !

  • Добавить свою разработку
 
Tatitutu
Связаться с автором
01.05.2012 22:25:55
+1
У кого не вызывало злость следующая ситуация - красиво отформатированная печатная форма - очень элегантно смотрится в 1С (*.mxl) , но НАЧАЛЬНИКУ нужно послать в формате MS EXCEL (*.xls). Что мы делаем - Файл- Сохранить как...- сохраняем в *.xls отправляем ШЕФУ и тут звонок....ты видел что ты мне послал ???
Знакомо :-) ?
Скриншоты
Описание

Сразу предупреждаю это не программа, а рассказ - как пошагово добиться нужного результата - одна из идей, а не панацея (с рабочим примером)

(предложите лучшую буду премного благодарен)

Рассказ для платформы 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 добавится командная панель , как на рисунке.

 

 Если будет интересно для Вас, добавлю другие шаблоны

 


Как удалить панель РАЗ И НАВСЕГДА

е EXCEL правой кнопкой по любой панели инструменов (например по слову "файл")- настройка - Панель инструментов - выбрать "Формат_1С" удалить.

удалить вот этот файл: 

 

"C:\Documents and Settings\ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\EXCEL\XLSTART\PERSONAL.XLS";

или

 Запустить обработку из шапку "Удалить книгу макросов" 

Ключевые слова:   VBA   Excel
Файлы для скачивания