Запуск Open Office макроса из 1С #350235


#0 by Дровосек
Добрый день. Мне необходимо сформировать из 1С некий Open Office файл. В процессе формирования я вызываю OO скрипты. Проблема в том, что мне не удаётся программно запустить OO макросы, я ловлю ошибку: "BasicProviderImpl::getScript: no script!". Для наглядности привожу код в виде OOo Basic: так короче и можно запихнуть в любой ОО файл, чтобы проверить. 'Этот код у меня расположен чётко по тому пути, по которому вызывается: "Library1.Module1", - но всё равно вылетает =( Public Sub Foo Может кто-то уже сталкивался с этим? Буду очень признателен за помощь.
#1 by smaharbA
1. а накой их туда запихивать ? 2. а знаешь, что можно и из командной строки эти макросы вызвать (только всеравно нах)
#2 by Дровосек
1. надо 2. из командной строки я не получу результата макроса
#3 by smaharbA
а что значит надо ? скорее всего все твои макросы можно реализовать в адинес
#4 by Дровосек
две причины: 1. Передавать массивы в качестве параметров методам Open Office из 1С - дело жутко геморное 2. Мне нужен вызов функций ConvertToURL и, vice-versa (наоборот т.е.), ConvertFromURL. Сразу говорю, приписать "file:///" к имени файла и заменить "" на "/" для эмуляции работы ConvertToURL прокатит. А вот аналогично имитировать ConvertFromURL не получится. Поэтому мне нужен ConvertFromURL.
#5 by Дровосек
Хотя я тут подумал... Можешь на всякий случай привести пример параметров запуска макроса (допустим, того же Foo) из командной строки? Чтобы, если через OLE не удастся вовремя узнать, как запустить, не остаться у разбитого корыта.
#6 by smaharbA
а в чем геморность передачи массива ? Кстати чтобы сделать вернуу ConvertToURL не достаточно замены слешей и прибавки file:// хотя и для верной функции на 1с всего надо 3 строчки кода Для обратной ConvertFromURL надо 4 строчки кода... И причем ОО тут вообще ни причем и нафих ненужен...
#7 by Дровосек
(Запуск макроса через командную строку): Спасибо! (Геморность с массивом): (Про конвертацию в URL и обратно): OO хранит URLs в кодировке ISO 8859-1 (ISO-Latin) (, гл 5. -> Имена файлов в URL нотации). Т.е., грубо говоря, русские символы представлены некими хексами с процентом слева. Поэтому, если такое преобразование можно полноценно имитировать тремя-четырьмя строчками кода 1С, код в студию. Предваряя вопрос, нафига мне это надо: для принудительного закрытия старой версии формируемого OO файла, если файл открыт в данный момент (иначе летаем - исключение при попытке создания, а спамить новыми файлами, делая имя файла уникальным - некрасивый вариант). Да и в целом, вывести по возможности OO код именно в него (а не вызывать целиком из 1С) мне кажется удобным для отладки / поддержки. Но о вкусах спорят, сказанное - только ИМХО.
#8 by smaharbA
ссылку на КЗ можно было и не кидать ))) а способ передачи массива савсем не гиморный, да и есть несколько иной чем в ссылке, покрасивше... А код по поводу конвертФромУРЛ ищите или додумывайтесь сами, одно подскажу 2-е строчки кода есть уже в указанной Вами ссылке...
#9 by Дровосек
Самостоятельно решил проблему. Рабочий код: (надеюсь, поможет кому-нибудь избежать моих граблей) Способ покрасивше в студию! 8) Т.к. проблема решена, додумывать не буду: необходимость имитации ConvertFromURL отпала - могу её саму вызывать.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С