Имя: Пароль:
1C
1С v8
Макет на ОболочкаActiveDocument - Лист Excel
0 Suxer
 
27.11.12
21:44
1С:Предприятие 8.2 (8.2.16.368)

Вопрос уже подымался, но ответа я так и не нашел
Может у кого есть идеи:

Макте = ПолучитьМакет("КарточкаПоставщика");

MSExcel = Макте.Получить();

MSExcel.Application.Visible = Истина;
MSExcel.Windows(1).Visible = Истина;

Попытка
   Документ = MSExcel.Application.WorkBooks(2);
   Документ.Activate();
   
   Лист = Документ.Sheets(1);
   Лист.Cells(2,2).Value = "XXX";
Исключение
   Сообщить("Не удалось по причине: " + ОписаниеОшибки());
   MSExcel.Application.Quit();
КонецПопытки;    

Макет открывается, все ОК, НО! Когда процедура отрабатывает, то книга закрывается и остается пустое приложение Excel.

Спасибо.
1 Suxer
 
27.11.12
21:49
Если сделать так:

MSExcel.SaveAs("C:\Temp\tmp.xls");

в конце процедуры, то файл получается как правильный.
2 Bigcalm
 
27.11.12
21:57
(1) Ну и пусть сохраняется как где-нить в темповой папке пользователя. Потом задашь пользователю вопрос сохранить уже заполненный макет, там где ему необходимо и программно темповый файл удалишь.
3 Suxer
 
27.11.12
22:04
(2) Хотелось бы разобраться.
Этот вариант пока на случай отступления
4 Suxer
 
28.11.12
12:13
Есть у кого идеи?
5 Suxer
 
28.11.12
12:50
up
6 zladenuw
 
28.11.12
12:56
а что ты хочешь увидеть. ты же взял просто изменил документ и закрыл его. изменения не будут сохранены.
7 Suxer
 
28.11.12
13:26
(6) Где закрыл? Не закрывал
8 Suxer
 
28.11.12
13:45
Люди, а-у
9 Suxer
 
28.11.12
14:57
Никто не делал ActiveDocument Лист Excel?
10 Suxer
 
28.11.12
15:22
up
11 Suxer
 
28.11.12
16:35
2up
12 Suxer
 
28.11.12
17:32
3up
13 sapphire
 
28.11.12
17:38
Макте = ПолучитьМакет("КарточкаПоставщика");

MSExcel = Макте.Получить();

MSExcel.Application.Visible = Истина;
MSExcel.Windows(1).Visible = Истина;

Попытка
   Документ = MSExcel.Application.WorkBooks(2);
   Документ.Activate();
   
   Лист = Документ.Sheets(1);
   Лист.Cells(2,2).Value = "XXX";
Исключение
   Сообщить("Не удалось по причине: " + ОписаниеОшибки());
//  MSExcel.Application.Quit();
КонецПопытки;    

// Если тебе надо закрыть еще и сам Excel
MSExcel.Application.Quit();
14 Suxer
 
28.11.12
17:47
(13) Не, мне не нужно что окно закрывалось!
Мне нужно, чтобы приложение осталось открытым с теми изменениями, кот. я туда внесу.

Т.е. по типу отчета, сформировался и остался. Только как приложение Excel
15 Утконос
 
28.11.12
17:52
вчерась только видел
http://infostart.ru/public/163425/
16 sapphire
 
28.11.12
17:59
(14) Тогда надо записать документ на диск.
И вызвать его как команду системы...
17 Suxer
 
28.11.12
18:01
(15) У Вас случайно нет этой обработки?
Не могу скачать. Денюшку просит
18 Suxer
 
28.11.12
18:02
(16) Но с Вордом прокатывает и без записи!
19 Утконос
 
28.11.12
18:22
(17) пока нет, жду добрых людей
20 Suxer
 
28.11.12
18:27
(19) А можно и меня в рассылку включить.
Буду премного благодарен
21 Suxer
 
28.11.12
18:52
В Нигерии паркур признан общественным транспортом
22 Suxer
 
28.11.12
19:33
Стив Джобс — это как велосипед. Только для нашего сознания. Компьютеры
23 Suxer
 
28.11.12
19:45
Да-Да. Оставайтесь голодными, оставайтесь безрассудными. Роман Абрамович
24 Suxer
 
29.11.12
15:06
7up
25 НЕА123
 
29.11.12
15:12
(0)
Макте убивается. сделай ее переменной модуля.
26 Suxer
 
29.11.12
16:26
(25) Не помогает.
Характерно то, что если поставить бряк до окончания процедуры, то можно увидеть нужный макет. Но когда процедура отрабатывает, остается приложение Excel без открытой книги
27 Suxer
 
29.11.12
16:33
Если сделать:

   Документ = MSExcel.Application.WorkBooks.Add();

То Excel остается с открытой книгой, но конечно не с нужным макетом.

Не хватает какой-то мелочи
28 sapphire
 
29.11.12
17:03
(27) Вы наверное чего-то не понимаете как работает 1С & COM...

см. (16)
29 Suxer
 
29.11.12
17:11
(28) Возможно, но с Вордом-то работает и без записи на диск!
30 Suxer
 
29.11.12
18:18
7up и Mirinda
31 Suxer
 
30.11.12
11:38
8up
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.