Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

При вызове методов COM-объектов не учитвывается доступность параметров для записи #1331

Closed
Mr-Rm opened this issue Sep 5, 2023 · 1 comment

Comments

@Mr-Rm
Copy link
Collaborator

Mr-Rm commented Sep 5, 2023

Опишите ошибку

  1. После исправления issue Похоже выходные параметры методов COM объектов не считываются #1324 все передаваемые как параметры в метод COM-объекта переменные считаются получающими возвращаемое значение и доступными для записи, а это не всегда верно

Воспроизведение ошибки

Рег = Новый ФиксированнаяСтруктура("HKEY_LOCAL_MACHINE", "2147483650"); 
ИмяФайлаКласса = "";
РеестрОС = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv");
Рез=РеестрОС.GetStringValue(Рег.HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion","DevicePath", ИмяФайлаКласса);
Сообщить("Рез="+Рез+" Имя="+ИмяФайлаКласса);

Ошибка в строке: 4 / Свойство недоступно для записи
(из-за попытки записи в Рег.HKEY_LOCAL_MACHINE)

  1. Все свойства COM-объектов считаются доступными для записи
    Воспроизведение ошибки
Путь = C:\1S\DB7\";
Пользователь = "Администратор";
База = Новый COMОбъект("V77.Application");
Рез = База.Initialize(База.RMTrade, "/d"""+Путь+"""  /N"+ Пользователь, "NO_SPLASH_SHOW");

Ошибка в строке: 4 / Внешнее исключение (System.ArgumentException): Значение не попадает в ожидаемый диапазон.
(из-за попытки записи в База.RMTrade)

Ожидаемое поведение
1С нормально отрабатывает оба примера.

Окружение

  • ОС: Windows 10 x64
  • Версия: latest

Дополнительная информация
Требуется получать больше информации, чем дает DispatchUtility.

@EvilBeaver
Copy link
Owner

Да, я так и пробовал сделать, но:

  • не все COM-объекты имеют TypeInfo
  • какой-то дикий головняк с получением флагов доступа к параметрам, включающий в себя черную магию COM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants