![]() |
![]() |
![]() |
|
выгрузка из 1с в word или как запретить пользователю менять выгруженный файл | ☑ | ||
---|---|---|---|---|
0
m74y
26.01.10
✎
21:12
|
Такая проблема, выгрузка из 1с в Word работает без проблем, но требуется, что бы пользователь, который и создает этот файл, не мог изменить его. Т.Е. происходит это так, есть шаблоны договоров (допустим это "договор аренды") к которым у пользователей нет доступа (точнее они не знают где он находится), на основании этого шаблона формируется договор с определенным контрагентом, куда заносятся наименование, инн, кпп, сумма и т.д. Договор сохраняется в папке "Договора" (шаблоны находятся в другом месте). Собственно вопрос: "Как пользователю запретить изменять уже созданный вордовский договор?". Возможно ли из 1с как- нибудь поменять владельца файла или программно вводить пароль на изменение файла (в ворде есть такая фишка Сервис- Параметры- Безопасность- пароль разрешения записи).
Платформа 8.1, Управление торговлей |
|||
1
m74y
27.01.10
✎
08:43
|
ап!!!
|
|||
2
Mitriy
27.01.10
✎
08:46
|
(0) запиши макрос и по его мотивам напиши код...
|
|||
3
чувак
27.01.10
✎
08:49
|
// Получаем коллекцию BuiltlnDocumentProperties
Prop = Word.ActiveDocument.BuiltlnDocumentProperties; // Выводим некоторые свойства Сообщить("Название: " + Prop[I].Value); Сообщить("Автор: " + Prop[3].Value); Сообщить("Шаблон: " + Prop[6].Value); Ниже перечислены все возможные индексы коллекции BuiltlnDocumentProperties: П 1— название; П 2 — назначение; П з — автор; П 4 — ключевые слова; О 5 — комментарии; О б — шаблон; П 7 — автор, редактировавший текст последним; П 8 — версия; П 9 — имя приложения; П ю — когда последний раз документ был выведен на устройство печати; Пи — время создания; П 12 — время, когда документ был сохранен в последний раз П 13 — суммарное время редактирования; О 14 — число страниц; О 15 — число слов; П 16 — число символов; П 17 — правила доступа к документу; П 18 — категория; П 19 — формат документа; |
|||
4
m74y
27.01.10
✎
09:47
|
пишет: Получение элемента по индексу для значения не определено...
Хотя в режиме отладки захожу в этот COMобъект и вижу все индексы. |
|||
5
m74y
27.01.10
✎
10:28
|
мWord = Новый COMОбъект("Word.Application");
мDocument = мWord.Documents.Open(ИмяФайла); Prop = мDocument.Application.ActiveDocument.BuiltInDocumentProperties; Сообщить("Автор " + Prop[2].Value); дальше идет ошибка: Получение элемента по индексу для значения не определено... |
|||
6
TeddySlaf
27.01.10
✎
11:46
|
А файлы ворда храните в несжатом виде?
Если да, то можно еще усовершенствовать, пойти дальше. Например, сразу после автоматического формирования и печати, сохранять в архивированном виде. Очень помогает rar.exe из дистрибутива Winrar. Она работает из командной строки, которой неплохо можно управлять из 1С. Дык вот, при сохранении ворда, полученный файл тут же архивировать в rar с паролем на rar. Заодно и место для хранения всей этой лабуды - уменьшается раз в 10-15. |
|||
7
m74y
27.01.10
✎
12:05
|
(6) В этом что - то есть, щас попробую
|
|||
8
TeddySlaf
27.01.10
✎
12:29
|
код для 7.7, но однако:
Свойства бываю такие:
|
|||
9
dk
27.01.10
✎
12:35
|
что-то я не понял, чего все в авторство уперлись?
при чем авторство и право на изменение? |
|||
10
m74y
27.01.10
✎
13:25
|
Вся проблема в том, что бы пользователю запретить изменять уже созданный им вордовский договор. На самом деле нужен не автор, а ВЛАДЕЛЕЦ вордовского файла. А его, я так понимаю, из 1с поменять нельзя. Может у кого будут еще какие идеи как пользователю запретить изменять уже созданный им вордовский договор?
|
|||
11
dk
27.01.10
✎
13:35
|
(10) владельца поменять можно, вот только он в хранилище не полезет
|
|||
12
m74y
27.01.10
✎
14:18
|
(11) в какое хранилище?
|
|||
13
m74y
27.01.10
✎
15:00
|
А во об этом можно поподробнее:
item(17).name = Security. Что за правила доступа к документу? |
|||
14
Kom-off
27.01.10
✎
15:08
|
(0) А поставить атрибут файла "Только чтение" на уровне файловой системы не спасет ситуацию?
|
|||
15
m74y
27.01.10
✎
15:12
|
(14) Как это поставить программно из 1с?
|
|||
16
Kom-off
27.01.10
✎
15:14
|
(15) Из 1С только, насколько я знаю, средствами языка этого сделать нельзя, но можно запустить специально сформированный .bat файл, .cmd файл или написать на скриптах.
|
|||
17
m74y
27.01.10
✎
15:19
|
(16) может и пример подкинешь, а то с системными скриптами я как- то неочень...
|
|||
18
Kom-off
27.01.10
✎
15:23
|
Пуск - Выполнить. Набираешь cmd. В появившемся окне коммандного интерпретатора набираешь help и среди множества комманд находишь команду Attrib, если мне не изменяет память. Далее набираешь Attrib /? и читаешь ее использование...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |