Показать сообщение отдельно
Старый 01.02.2007, 17:12   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
2 olesh

Проблема в том, что новый файл открывается в том же процессе, где идет обработка. В результате, при появлении окна с пользовательским запросом, блокируются обращения через COM-интерфейсы. Как только окно закрывается обработка может быть продолжена.

В принципе, можно настроить таким образом, что бы экселевские файлы открывались в отдельных процессах. Минусы - если пользователь откроет файл и затем снова это сделает (из проводника), то переключения на уже открытый не произойдет и появится окошко с сообщением об открытии только для чтения и т.д.

В общем что надо сделать:
Открыть regedit.exe. Найти ветку "HKEY_CLASSES_ROOT\Excel.Sheet.*\shell\Open" (вместо звездочки - номер версии. У меня Excel 2003 и стоит 8. В общем, найти с таким номером, что бы была подветка shell). В ветке Open будут две подветки: Command и ddeexec. ddeexec надо будет удалить. В ветке Command изменить значение строкового ключа command (у меня ?r=^Vn-}f(ZXfeAR6.jiEXCELFiles>!De@]Vz(r=f`1lfq`?R& /e) - в конце после /e приписать " %1". Если ключа command не будет - добавьте " %1" в значение по умолчанию

После этого файлы должны открываться в раздельных процессах.
Перед изменениями экспортируйте эту ветку, что бы восстановить значения в случае проблем.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: olesh (1).