Имя: Пароль:
1C
1С v8
Блокировка документа Excel
0 DJZT
 
09.10.13
14:46
Во время заполнения Excel документа из 1С юзверг может клацать по ячейкам в доке и тем самым сбивая заполнение. Сразу же вылетает ошибка. Как можно заблокировать документ на время выполнения? Visible не предлагать!
1 dk
 
09.10.13
14:56
Попытка
        Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
        Скрипт.language="javascript";
        AppExcel=Скрипт.Eval("new ActiveXObject('Excel.Application')");
    Исключение
        Попытка
            AppExcel=СоздатьОбъект("Excel.Application");
        Исключение
            Сообщить("Не удалось открыть Excel");
            Возврат;
        КонецПопытки;
    КонецПопытки;
2 Рэйв
 
09.10.13
14:58
(0)А зачем ты его в открытом виде заполняешь? Заполни и в конце открой.  И пусть себе клацает сколько хочет.
3 Fish
 
09.10.13
15:00
(2) +100. ИМХО это изврат, заполнять документ, который открыт у пользователя.
4 DJZT
 
09.10.13
15:02
(2) пользователи нынче нервные. Документ заполняется долго. может достигать 20-25 минут. Хотят видеть, что происходит. Служебных сообщений им видите ли не хватает))
(1) Интересная штука. Такого не видел. AppExcel - Это я так понял ссылка на эксель?  Я делаю
Эксель = Новый COMОбъект("Excel.Application");
Так прокатит?
5 DJZT
 
09.10.13
15:05
(1) Чёт я вообще не понял. Это не блокировка. Это просто открытие. Только через "другое место".
6 Рэйв
 
09.10.13
15:05
(4)Мало ли что они хотят. Ты им еще код выведи на экран пусть любуются раз такие любопытные:-)
Сделай в строке состояния строку "Идет заполнение документа "+счетчик.
Пусть медитируют
7 Fish
 
09.10.13
15:07
(4) "Документ заполняется долго. может достигать 20-25 минут" - это что же за документ такой? Может, лучше подумать над оптимизацией заполнения?
8 DJZT
 
09.10.13
15:08
(6) Да есть такое дело. И счетчиков много)) Бухгалтера - они же нервные)) ладно. Что нить придумаю с Visible.
9 DJZT
 
09.10.13
15:09
(7) Оптимизация - это одно. А вот заполнение 1200+ ячек через термина это другое. Сервера разнесены.
10 DJZT
 
09.10.13
15:10
(7) И это только шаблон. ещё есть вспомогательный. ТВ нем примерно (5000+)*5
11 Рэйв
 
09.10.13
15:10
(8)Я обычно стараюсь для самых нервных делать не просто счетчик, а типа

"Обработано "+ТекСчетчик+" из "+Всего

Тогда они хоть видят сколько осталось и не бухтят так
12 Сисой
 
09.10.13
15:10
(0) У меня на этот случай есть форма с индикатором процесса.
Пока идет заполнение пользователь видит изменение индикатора с комментариями. И все нормально.
13 DJZT
 
09.10.13
15:11
(11) У меня и так 2 счетчика. Один в строке состояния - другой в виде служебных сообщений. В служебке инфа про что ,что и где заполняется. В строке сост - просто процентное состояние
14 Fish
 
09.10.13
15:12
(9) И что? У меня есть отчёт, выгружается в Эксель на 13 листов. При этом данные собираются с 5-ти файловых баз по ОЛЕ + ещё куча всяких постобработок напихана. И то отрабатывает максимум за 5 минут.
15 Рэйв
 
09.10.13
15:12
(13)Ну тогда их нервность- их проблемы. Забей и делай как правильно.
16 DJZT
 
09.10.13
15:12
(12) А индикатор будет работать? Во время обработки у меня вся форма виснет. То есть не отвечает как бы. единственные динамичные места - "Окно служебных сообщений" и Строка состояния
17 DJZT
 
09.10.13
15:13
(14) 97 листов олололол
18 Fish
 
09.10.13
15:13
(16) "Во время обработки у меня вся форма виснет." Значит, ты что-то делаешь не так.
19 Сисой
 
09.10.13
15:14
(16) А это уж как обработка написана.
20 Масянька
 
09.10.13
15:14
(16) Вообще-то - окно служебных сообщений добавляет тормоза.
21 DJZT
 
09.10.13
15:14
(14) + учти это не локально на одном компе. БД на одном сервере. Сервер 1С - на другом. Клиент на терминале на третем.
22 Fish
 
09.10.13
15:15
(21) Ты не поверишь :)
23 DJZT
 
09.10.13
15:15
(18) (19) Я думал попробывать через модуль обработки написать, но уже поздно. Да и не дружу с этими модулями. В общем всё в форме напихано