|
v7: 1с77 + open office | ☑ | ||
---|---|---|---|---|
0
Z_Z
24.03.15
✎
11:56
|
Добрый день. Необходимо из 1с открыть файлы в опен офис только на чтение(без возможности редактирования). Нашел код :
// Открыть OpenOffice ServiceManager = СоздатьОбъект("com.sun.star.ServiceManager"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства.Name = "ReadOnly"; Свойства.Value = 0; Scr = СоздатьОбъект("MSScriptControl.ScriptControl"); Scr.Language="javascript"; Scr.Eval("Args=new Array()"); Args = Scr.Eval("Args"); Scr.AddObject("ServiceManager", ServiceManager); // Откроем шаблон ТекстовыйПроцессор = Desktop.LoadComponentFromURL(ПреобразоватьВURL(ИмяФайла), "_blank", 0, Args); А у меня этот код ругается : Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); {Документ.Договор.Форма.Модуль(288)}: Поле агрегатного объекта не обнаружено (Bridge_GetStruct). Что может быть? |
|||
1
Z_Z
24.03.15
✎
12:00
|
А без этого кода работает, но есть возможно редактировать:
Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства.Name = "ReadOnly"; Свойства.Value = 0; |
|||
2
Z_Z
24.03.15
✎
12:11
|
нашел рабочий код, но все равно открвается документ с возможность редактировать(
SaveParam = scr.Eval("ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); SaveParam.Name = "ReadOnly"; SaveParam.Value = 0; |
|||
3
Oxygen-so
24.03.15
✎
12:14
|
А не проще у открываемого файла ReadOnly выставить?
|
|||
4
Gangar
24.03.15
✎
12:16
|
||||
5
Z_Z
24.03.15
✎
12:23
|
(3) нет. Он же при открытие заполняется данными из 1с.
|
|||
6
Z_Z
24.03.15
✎
12:35
|
не хочется 10 страниц договора переносить в мхл и там его форматировать(((
|
|||
7
Oxygen-so
24.03.15
✎
13:00
|
(5) Создать, заполнить из 1С, записать, закрыть. Установить атрибут RO. Открыть. Не?
|
|||
8
Z_Z
24.03.15
✎
13:15
|
(7) вариант, есть пример как это сделать?:)
|
|||
9
Z_Z
24.03.15
✎
14:06
|
Уперся в изменение атрибута файла. Можно вообще изменить атрибут файла из 1с77?
|
|||
10
Oxygen-so
24.03.15
✎
14:11
|
(9) Из 1С 7.7 можно сделать все, вызывая внешние команды или скрипты (через объект).
Для справки: КомандаСистемы Вызывает на исполнение команду DOS. Синтаксис: КомандаСистемы(<СтрокаКоманды>) Англоязычный синоним: System Параметры: <СтрокаКоманды> Строковое выражение, содержащее строку команды. Описание: Процедура КомандаСистемы вызывает на исполнение команду, как если бы она была введена в командной строке DOS. При выполнении команды загружается исполняемый файл как «верхняя», активная программа. Если загружается Windows-приложение, то управление немедленно возвращается в систему 1С:Предприятие на следующий за оператором КомандаСистемы оператор и система продолжает выполняться как фоновая прикладная программа. Пользователь может возвратиться в запускающую программу или закончив выполнение запущенной, или переключившись обратно посредством списка задач Windows. Если в параметре <СтрокаКоманды> не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности: - текущий системный каталог; - каталог Windows; - системный каталог Windows; - все каталоги, указанные в переменной PATH; Пример: * В данном примере запускается редактор текста notepad.exe и в него загружается файл textl. txt. КомандаСистемы("notepad textl.txt"); |
|||
11
Oxygen-so
24.03.15
✎
14:11
|
(9) Команду attrib сам посмотришь, надеюсь.
|
|||
12
Z_Z
24.03.15
✎
14:17
|
(11)гениально!!! Работает:)
КомандаСистемы("attrib +r c:\Test.doc"); |
|||
13
Oxygen-so
24.03.15
✎
14:47
|
(12) Бинго? ;-)
|
|||
14
Z_Z
24.03.15
✎
14:56
|
(13)ага!))))Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |