Имя: Пароль:
1C
 
выгрузка из 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, но однако:

   Ворд = Создатьобъект("Word.Application");
   док = Ворд.Documents.Open(ПутьДок);
   Проп = док.BuiltinDocumentProperties;
   сообщить("Проп.items().count="+Проп.count);
   для сч = 1 по Проп.count цикл
       Сообщить("item("+сч+").name = " +Проп.item(сч).name + ", знач="+Проп.item(сч).value+".");
   конецЦикла;



Свойства бываю такие:

item(1).name = Title.
item(2).name = Subject.
item(3).name = Author.
item(4).name = Keywords.
item(5).name = Comments.
item(6).name = Template.
item(7).name = Last author.
item(8).name = Revision number.
item(9).name = Application name.
item(10).name = Last print date.
item(11).name = Creation date.
item(12).name = Last save time.
item(13).name = Total editing time.
item(14).name = Number of pages.
item(15).name = Number of words.
item(16).name = Number of characters.
item(17).name = Security.
item(18).name = Category.
item(19).name = Format.
item(20).name = Manager.
item(21).name = Company.
item(22).name = Number of bytes.
item(23).name = Number of lines.
item(24).name = Number of paragraphs.
item(25).name = Number of slides.
item(26).name = Number of notes.
item(27).name = Number of hidden Slides.
item(28).name = Number of multimedia clips.
item(29).name = Hyperlink base.
item(30).name = Number of characters (with spaces).
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 /? и читаешь ее использование...
Программист всегда исправляет последнюю ошибку.