Имя: Пароль:
1C
1С v8
Формирование документа ecxel из макета.
0 ks-78
 
07.11.14
12:25
Подскажите пожалуйста, столкнулся с проблемой. Сделал внешнюю печатную форму, которая должна заполнять Excel файл. Файл-шаблон лежит в макете. Все заполняется, сохраняется. Но вот после этого Excel сразу закрывается. Не пойму, как с этим бороться. Конфа УТ 11.1. Печатаю на клиенте. Код:
    ФайлЕксель =     ПолучитьИзВременногоХранилища(АдресФайлаЕксельВХранилище);
    ПутьКФайлуНаКлиенте = ПолучитьИмяВременногоФайла("xls");
    ФайлЕксель.Записать(ПутьКФайлуНаКлиенте);
    Эксель = ПолучитьCOMОбъект(ПутьКФайлуНаКлиенте);
    Лист = Эксель.WorkSheets(1);
//тут происходит заполнение
    Эксель.Application.Visible = Истина;
    Эксель.Activate();
    Эксель = 0;
1 vicof
 
07.11.14
12:27
Эксель.Activate();
Эксель = 0;
2 vicof
 
07.11.14
12:29
Ничего подозрительного не видишь?
3 ks-78
 
07.11.14
12:30
вроде нет. а что не так? Quit же не делается
4 vicof
 
07.11.14
12:31
(3) мдаа...Ну попробуй закомментировать последнюю строчку.
5 ks-78
 
07.11.14
12:35
ничего не меняется. в общем то, на мой взгляд, смысл в этой строке - отключиться от ком объекта. при этом само приложение excel не закрывается. таким же образом в бсп работа с word организована. разве нет?
6 ks-78
 
07.11.14
12:37
ком живет, пока открыта форма. при печати после формирования документа она закрывается. ком, соответственно, прибивается. и вот ексель=0, как я понимаю, призван избежать закрытия приложения. поправьте, если ошибаюсь.
7 vicof
 
07.11.14
12:49
По логике вещей, если переменная сначала является ком-объектом, а потом нулем, то ком-объект должен уничтожиться. Может, ошибаюсь.
Программист всегда исправляет последнюю ошибку.