Имя: Пароль:
1C
 
Не получается открыть Active document Excel
0 Viktor Zull
 
07.04.07
19:52
Здравствуйте уважаемые участники форума. Я создаю макет через Active document, работаю с Excel. При выполнении печати, макет заполняется,открывается и сразу закрывается. Подскажите как сделать так чтобы он не закрывался.

АктивныйДокумент = ПолучитьМакет("НарядЗаказ");
MSExcel = АктивныйДокумент.Получить();

Книга = MSExcel.Application.Workbooks(1);    
Страница=Книга.Worksheets(1);
ЛистСданнымиИмя=СокрЛП(Строка(Страница.Name()));
Страница.Range("A6").Value = "ЗНАЧЕНИЕ 1";
Страница.Range("A8").Value = "ЗНАЧЕНИЕ 2";
...
...
MSExcel.Application.Workbooks(1).Windows(1).Visible = true;
MSExcel.Application.Visible = true;
MSExcel.Activate();
1 ТелепатБот
 
гуру
07.04.07
19:52
2 Viktor Zull
 
07.04.07
19:54
Сейчас у меня в конце добавлена строка:
MSExcel.PrintPreview();

Тогда окрывается предварительный просмотр, можно печатать, но сам лист Excel не открывается.
3 vde69
 
07.04.07
22:15
(0) попробуй так:

Создай НОВЫЙ ДОКУМЕНТ ексель, в старов выдели ячейки (не лист) и скопируй, в новый Вставить, НОВЫЙ сохранить...

Пробуешь законектиться к НОВОМУ, если пойдет я обьясню почему...
4 Viktor Zull
 
21.05.07
13:00
Спасибо за совет.
5 Viktor Zull
 
21.05.07
13:03
У меня переменная MSExcel была объявлена в процедуре, наверное, поэтому Com Объект уничтожался при выходе из процедуры.

Когда я сделал переменную MSExcel глобальной:

Перем MSExcel Экспорт;

все стало нормально работать.
6 katherina
 
21.05.07
14:29
а подскажите пожалуйста, как , еслл я выгружаю в Excel данные, задать ширину колонок и границы таблицы?
7 smaharbA
 
21.05.07
14:34
MSExcel.Visible=-1;
8 katherina
 
21.05.07
14:45
(7) почему? нет, наверное, я неправильно сформулировала вопрос: я вывела в Excel таблицу, таблица заполняется правильно по данным из базы, но теперь мне нужно нарисовать в Excel границы и задать ширину, чтобы пользователю не делать двойной работы, не редактировать сам Excel. подскажите методы.
допустим как обвести границей такое значение: Лист.Cells(Стр,2).Value = Выборка.Код; ???
9 smaharbA
 
21.05.07
14:52
(8) это для (0)
Для (6)
Лист.Cells(1, 1).Borders.LineStyle = 1
Лист.Cells(1, 1).Borders.Weight = -4138 (к примеру)
10 katherina
 
21.05.07
15:00
(9) - большое Вам спасибо - работает, но что-то я в синтаксис-помошнике не могу найти такие методы... а скажите пожалуйста, как задается ширина колонки (скажите метод):)
11 Platon
 
21.05.07
15:04
(6)
ТекЛист.Rows(НомерСтроки).RowHeight = 15; //Высота строки;
ТекЛист.Columns(НомерКолонки).ColumnWidth = 14 //Ширина колонки

xlMedium=-4138;
Для ПозицияРамки=7 По 10 Цикл //Обводим рамку
ТекЛист.Cells(Строка,"A").Borders(ПозицияРамки).Weight=xlMedium; //Толщина линии вроде
КонецЦикла;

ТекЛист.PageSetup.PrintArea = "$A$1:$S$42"; //Область печати
12 smaharbA
 
21.05.07
15:04
.columnWidth Ширина
.rowHeight Высота
13 Platon
 
21.05.07
15:07
+(11)
Процедура Рамки()
   РамкаСлева=7;        // 7
   РамкаСправа=10;     // 10
   РамкаСверху=8;     // 8
   РамкаСнизу=9;      // 9
КонецПроцедуры
14 katherina
 
21.05.07
15:08
(11), (12) - спасибо - все понятно :)
15 Platon
 
21.05.07
15:09
(10) Не можешь найти потомучто это методы Excel а не 1с
16 katherina
 
21.05.07
15:46
подскажите пожалуйста - вот, если выборку из справочника осуществляю - то создание нового Excel не вызывает проблем - это я просто так на таком простом примере (выборка из справочника и выведение в Excel) училась работать с COMОбъект.
но в реальности задача следующая: обработка, выполняя запрос, выводит в поле табличного документа результаты. существует макет, в котором уже все оформлено и выведено, так можно ли как-нибудь именно макет сохранить в Excel - именно в том виде, в котором он (макет) формируется?
подскажите пожалуйста, если это возможно сделать?
17 Viktor Zull
 
21.05.07
17:27
(16) Нужно сохранить макет типа Табличный документ в Excel?
Программист всегда исправляет последнюю ошибку.