![]() |
|
Ошибка загрузки xlsx-файла в клиенте 1С x64 через LibreOffice Calc x32 | ☑ | ||
---|---|---|---|---|
0
jk3
02.07.20
✎
22:35
|
Имеется Клиент 1С x64, LibreOffice Calc x32.
Вот такой код, который прекрасно отрабатывает на клиенте 1С x32, падает на клиенте 1С x64 в ошибкой: "Произошла исключительная ситуация (Ошибка выполнения Microsoft JScript): Разрешение отклонено" ServiceManager = New COMObject("com.sun.star.ServiceManager");
|
|||
1
Фрэнки
02.07.20
✎
23:16
|
Религия запрещает использование 64 бит в LibreOffice Calc ?
|
|||
2
spectre1978
03.07.20
✎
06:24
|
(0) скорее всего что-то пытается выполнить 32-битный код в адресном пространстве 64-битного процесса. Попробуйте перейти на 64-битный либреофис.
|
|||
3
jk3
03.07.20
✎
23:18
|
(1) (2)
Снёс x32 LibreOffice, установил x64 LibreOffice. Ошибка та же самая. Тут дело в том, что вызывающий процесс x64, а MSScriptControl.ScriptControl -- x32. В службах компонентов прописал по статье: https://osergey.ru/ru/call-32-bit-com-objects-to-side-64-bi/#more-508 Но не взлетает. Почему-то у самого MSScriptControl.ScriptControl при выполнении нет доступа к ServiceManager.Bridge_GetStruct. |
|||
4
acht
03.07.20
✎
23:35
|
А зачем там MSScriptControl.ScriptControl вообще?
|
|||
5
spectre1978
05.07.20
✎
09:12
|
Я так понимаю, код был утащен из-под клюшек и скриптконтрол был использован из-за неумения клюшек работать с COMSafeArray. Под восьмёркой ведь этот кусок можно попробовать переписать без скриптконтрола?
|
|||
6
NorthWind
05.07.20
✎
09:27
|
вот здесь с Bridge_GetStruct работают напрямую Выгрузка данных в Оpen Office
|
|||
7
pechkin
05.07.20
✎
10:13
|
1с сама умеет читать xlsx
|
|||
8
spectre1978
05.07.20
✎
11:13
|
(7) может быть, ods читать нужно.
|
|||
9
jk3
05.07.20
✎
23:23
|
(4) Для запуска LibreCalc в скрытом режиме (Hidden = True).
(5) Да, код старый. (6) Спасибо, помогло. Переписал кусок вместо MSScriptControl.ScriptControl вот так:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |