Имя: Пароль:
1C
1C 7.7
v7: v.7. LibreOffice (или ООо) Есть макрос, как записать его операторы в 1С?
0 aka AMIGO
 
24.08.15
14:24
Есть работающий код:

        scr = СоздатьОбъект("MSScriptControl.ScriptControl");
        scr.language = "javascript";
        scr.eval("MyArray=new Array()");
        ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");
        scr.AddObject("ServiceManager",ServiceManager);
        scr.eval("MyArray[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
        scr.eval("MyArray[0].Name='Hidden'");
        scr.eval("MyArray[0].Value=true");
        Массив = scr.eval("MyArray");
        
        Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
        Document = Desktop.LoadComponentFromURL("file://localhost/"+ИмяФайла, "_blank", 0, Массив);
        
        Листы = Document.getSheets();
        //Лист = Листы.getByIndex(0);
        Лист = Листы.getByIndex(1); // второй лист книги

Мне нужно почистить второй лист книги.
Создал макрос, который этот лист чистит

Вот его начало.

dim document   as object
dim dispatcher as object
----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$I$492"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())


Как представить эти операции макроса в 1С?
Я с утра пытался написать код, но безуспешно. Причина очевидна - вслепую тыкаюсь..

Может быть, в инете есть разъяснения по поводу?
1 aka AMIGO
 
24.08.15
14:27
Могу привести полный код макроса.. Во второй половине его, в конце оператор чистки области.
2 Масянька
 
24.08.15
14:32
(1) Вот ты себе занятие нашел... На старости лет :))))))
3 Злопчинский
 
24.08.15
14:33
(2) ну, если молодые на нуле - надо же кому-то этим заниматься.. ;-)))
4 aka AMIGO
 
24.08.15
14:34
(2) угу, ты права :)
Но это дело нужное, Excel"я нет и не предвидится, а обработки менеджерам - подавай! :)
5 Злопчинский
 
24.08.15
14:34
вот smaharba зря за e-банили, он бы вполпинка рассказал.
(0) поройся в архивах форума - там есть примеры по ОО
6 Масянька
 
24.08.15
14:35
(4) Блин, плохо (про Excel). Не знаю эту хреновину.
7 aka AMIGO
 
24.08.15
14:37
(3) у них дело сложноее: купи-продай :)
(5) знаю, друже.. код сабжа - его рук дело. И искать в форуме умею, но ничего пригодного не встречается :(

ЗЫВ. мне-бы только волшебный пендель - просек-бы сразу :)
8 vde69
 
24.08.15
14:37
очистка листа - это очистка диапазона

2 оператора...
9 aka AMIGO
 
24.08.15
14:39
(8) вот именно..
Есть у меня вариант - почистить в цикле каждую ячейку диапазона, ию.. И никому об этом варианте не говорить, воизбежание :)

Только опять неграмотным останусь :)
10 vde69
 
24.08.15
14:40
Листы = Document.getSheets();
        //Лист = Листы.getByIndex(0);

        Лист = Листы.getByIndex(1);// второй лист книги


  

Лист.Cells.Select
Лист.Selection.Delete (Shift:=xlUp) // здесь нужно число в справке найти
11 vde69
 
24.08.15
14:41
скобки забыл

Лист.Cells.Select()
12 aka AMIGO
 
24.08.15
14:43
(10) спасибо, сейчас включу думалку..
13 Масянька
 
24.08.15
14:45
(12) Nen не рылся - http://catalog.mista.ru/public/87317/?
Вот еще - https://rtzra.ru/wiki/software/1c/1c-excel-openoffice.
Еще - народ пишет, что в этой фигне нумерация строк и колонок с 0 начинается.
14 aka AMIGO
 
24.08.15
15:09
(13) что с нуля - я знаю :)

(10) перебрал несколько вариантов, не срабатывает что-то, ни Select, ни Delete()
15 Масянька
 
24.08.15
15:18
(14) Тут - http://www.cyberforum.ru/post6504147.html есть слово Select :)))