Показать сообщение отдельно
Старый 24.12.2016, 12:14   #1  
poul_and is offline
poul_and
Участник
 
56 / 12 (1) ++
Регистрация: 08.04.2003
Проблема с 412 Codeunit - чем возможно его заменить?
NAV 3.7 и 2009R2 Classic, SQL база

На Windows Server 2012 столкнулись с проблемой аналогичной
comdlg32.ocx на Server 2008 R2
Не виден ОСХ и не работает кодюнит
Та же проблема постоянно всплывала на локальных машинах под Win10, там решалось прописыванием ручками comdlg32.ocx в регистр. На одном из серверов такой способ не работает ни в какую.
Поэтому появилась мысль изменить 412 кодюнит под использование другого способа открытия файлов.
К сожалению в классическом клиенте не работают .NET компоненты и этот способ не походит
Может кто посоветовать другое решение?

Нечто вроде кода для выбора папки:

OpenFolder(WindowTitle : Text[50];HighestFolder : Text[500]) : Text[1024]

IF ISCLEAR(ShellControl) THEN
CREATE(ShellControl);

Folder := ShellControl.BrowseForFolder(0,WindowTitle,0,HighestFolder);
IF NOT ISCLEAR(Folder) THEN
FolderText := Folder.Items().Item.Path;
CLEAR(ShellControl);
EXIT(FolderText);

the variables required are:
Var Name DataType
No WindowTitle Text 50
No HighestFolder Text 500

Name DataType Subtype
ShellControl Automation 'Microsoft Shell Controls And Automation'.Shell
Folder Automation 'Microsoft Shell Controls And Automation'.Folder3
FolderText Text 1024


UPD: проблема на сервере решилась, помогло сначала стереть ключ в регистре, а потом вписать заново:
regsvr32 /u comdlg32.ocx
regsvr32 comdlg32.ocx
(через cmd с правами админа)

Но вопрос остаётся, не факт что подобный глюк не выскочит в будущем

Последний раз редактировалось poul_and; 24.12.2016 в 13:23.