Имя: Пароль:
1C
 
Как проверить открыт ли файл EXCEL?
0 KlesAlex
 
11.12.08
15:04
Пишу выгрузку данных в существующий файл, который лежит в определённом месте.

Excel = Новый COMОбъект("Excel.Application");
   MyBook = Excel.WorkBooks.open("C:\test.xls");
   List = MyBook.Sheets(4);

далее с ним работаю и в конце

MyBook.Save();
   Excel.WorkBooks.Close();

Вопрос....как с самого начала отследить открыт ли он кем то? Чтобы делать возврат и выдавать предупреждение чтобы закрыли.
1 vde69
 
11.12.08
15:06
может писать и не надо? в инете полно готового, например http://infostart.ru/projects/3060/

правда там просто ошибка вываливает..
2 KlesAlex
 
11.12.08
15:09
(1) вы с ними работали? Мне просто признак открытости надо понять как проверить.
Подозреваю что вместо строки

MyBook = Excel.WorkBooks.open("C:\test.xls");

можно написать что нибудь в духе

MyBook = Excel.WorkBooks.ItsOpen("C:\test.xls");
и получить Истину/Ложь....
3 H A D G E H O G s
 
11.12.08
15:09
(1) Сегодня просто ППЦ, наплыв, особливо с битыми базами.
Имхается, скоро найдешь "отстатыщь" индексированными к будущему курсу..
4 KlesAlex
 
11.12.08
15:13
(1)
Семёрки под рукой нету...прям сейчас не глянуть...

Где синтаксис команд работы с Excel.Application можно посмотреть? На форуме не узрел...поиск не спас
5 H A D G E H O G s
 
11.12.08
15:14
Чтение=Новый ЧтениеТекста();
   Попытка
       Чтение.Открыть("C:\Totals.xls");
   Исключение
       Сообщить("Файл занят. Идите лесом, дятлы, на йух.");
   КонецПопытки;
   Чтение.Закрыть();
6 KlesAlex
 
11.12.08
15:15
(5)
сейчас попробую)))
7 KlesAlex
 
11.12.08
15:17
(5)
Шикарно ) В таком виде и отдам) Спасибо)
8 H A D G E H O G s
 
11.12.08
15:22
** И почему же я пренебрежительно отношусь к фришникам?
Пользователь микроволновок, какая у тебя ставка?
9 smaharbA
 
11.12.08
15:22
балбесы
10 vde69
 
11.12.08
15:22
(7) вообще ошибку в екселе лучше не допускать, ибо конфликты возникают (нпример в память процесс, или файл залочится).

а отладчик семерки вообще плохо не работет если отладчик екселя запустить...
11 H A D G E H O G s
 
11.12.08
15:22
(9) Ай, смахабр, будете скрипты свои писать - я вообще ВК выложу..
12 vde69
 
11.12.08
15:23
(3) да это понятно, особо хитрые работодатели скоро загнуться :)
13 Черный всадник
 
11.12.08
15:33
14 smaharbA
 
11.12.08
15:44
(11) зафига, всеж оно само

   Попытка
       Книга=Ексель.Workbooks.Item(Имя);
       Сообщить("Пля яж ее уже открыл","!!!");
   Исключение
       Перейти ~М1;
   КонецПопытки;
   Попытка
       Книга=Ексель.Workbooks.Open(Путь+Имя);
       Если Книга.ReadOnly=-1 Тогда
           Сообщить(Путь+Имя+" сцука только читается","!");
           Книга.Close(0);
       КонецЕсли;
   Исключение
       Сообщить(ОписаниеОшибки(),"!!!");
   КонецПопытки;
~М1:
15 smaharbA
 
11.12.08
15:45
перейти не там ))
16 H A D G E H O G s
 
11.12.08
15:47
(14) Померяемся?
Сколько попыток, да еще тормозной OLE от офифса.., всякие Перейти.
17 vde69
 
11.12.08
15:51
(16)
ну тогда я с Вами, я буду меряться RecodSet-ами,

а еще можно проверять сам файл на блокировку (скриптиком с параметроми ReadOnly -1 и 0)
18 vde69
 
11.12.08
15:52
(17) только смысла нету :) все равно в конечном случае надо именно сохранить файл
19 H A D G E H O G s
 
11.12.08
15:55
(18) Мне вот интересно, какая ставка у товарисча фришника (0). Нет, может он гуру НУ, но все равно интересно...
А меряться уже неохота, особенно РекордСетами..
20 Ковычки
 
11.12.08
21:55
(16) попытки этож для осознания ))) хотя и без них при случае густо
(17) ну с рекордсетами ты погорячился конечно, они то самые неудобные и неспешные
21 у лю 427
 
11.12.08
22:07
(4) Семёрки под рукой нету...прям сейчас не глянуть...

А причем здесь сЭмь, восЭмь?
Вопрос то экселю

Все ответы есть в самом экселе....

давим в нем алт-ф11, ф1.... и четаем
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший