Имя: Пароль:
1C
 
Перевод в структуру документа excel документа созданного word
0 falselight
 
01.08.17
11:40
Необходимо сделать макетами документы созданные в word.
Для последующей печати их из 1с.
Если бы они были созданы в excel то перенести из excel документ
в макет было бы просто, со всей иерархией табличного документа.
Из word придется либо создавать построчно, по секционный вывод.
Или искать метод, что бы перенести в макет и он там встал бы на место. Примерно хоть. По столбцам и строкам. Не известен ни кому
подобный метод переноса документа из word в excel?
1 МихаилМ
 
01.08.17
11:52
2 Fish
 
гуру
01.08.17
11:55
(0) Для некоторых документов (если это не таблицы), лучше Ворд использовать.
3 falselight
 
01.08.17
12:00
(1) Так мне нужно из excel в word .

(2) Таи и с таблицами и без. Как потом из ворда в макет 1с
переносить? Детально только если. А из excel копированием всего.
4 falselight
 
01.08.17
12:01
(3) Точнее нужно из word в excel, а там наоборот.
5 Fish
 
гуру
01.08.17
12:02
(3) "Как потом из ворда в макет 1с переносить? " - А зачем? Заполняй прямо в Ворде. Механизмы по заполнению макетов Ворда есть в некоторых типовых, например в ДО.
6 catena
 
01.08.17
12:03
Делай макет ворд, зачем его переносить-то?
7 falselight
 
01.08.17
12:04
(1) А есть вижу и так есть, попробую.

(5) как то привык делать макетами.
А так же нужно что бы где то шаблон что бы лежал, или
грузить его в 1с. Там ещё в механизмах нужно разбираться будет.
8 falselight
 
01.08.17
12:04
(6) Не совсем знаком что ли, хотя делал такое.
Ну а можно пример, на основе чего что бы начать делать?
Макет на диске должен лежать, word?
9 Fish
 
гуру
01.08.17
12:05
(8) Да где угодно. Хоть в специальном справочнике, хоть в макете, как двоичные данные.
10 Масянька
 
01.08.17
12:07
(8)     // формируем файл
    мWord = СоздатьОбъект("Word.Application");

    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка(КаталогШаблонов + мШаблон));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
        
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      

Код - семерочный.
Шаблон лежит в КаталогШаблонов, имя шаблона мШаблон (шаблон Word). Как вариант - в макете, в справочнике (см. 9).
11 МихаилМ
 
01.08.17
12:11
12 Fish
 
гуру
01.08.17
12:11
(10) Единственный нюанс. Find.Execute подходит, только если значение параметра меньше 255 символов, а если надо большой текст вставлять, то лучше закладки юзать.
13 Масянька
 
01.08.17
12:21
(12) ИМХО - моветон.
Если есть значение переменной (ну, типа того) > 255 - это уже абзац (как минимум) и стоить предусмотреть разные абзацы прямо в шаблоне.
14 falselight
 
02.08.17
07:08
(10) Спасибо!
(11) Да этот конвертор, так же как копирование из
ворда обычное и вставка в эксель делает.

(9) А примера такого нет?
Как например в справочнике? А извлекается как от туда?

Думаю действительно так делать не перенося в макет, так
удобнее и быстрее наверное будет.
15 falselight
 
02.08.17
07:35
(5) А где там в документообороте?
Прям можно взять реальный пример и применить его у себя?
Есть ли у кого пример, а то что то не могу сдвинуться с места. Одни формы в ворд. Помнится сам такое делал когда то. Точнее дорабатывал готовое решение.
16 falselight
 
02.08.17
07:42
Кто то же это использует 100%, поделитесь примером, пожалуйста.
17 Работа имитируется
 
02.08.17
07:45
(15) > Помнится сам такое делал когда то.

Этот прием работает только у Мисти
18 falselight
 
02.08.17
07:47
(17) Это был 2012 год, и конфигурации этой у меня нет.
Там макеты ворд были загружены в конфигурации.
Был код формирования, подменяемые значения, как в (10).
Такой бы пример сейчас.
19 Работа имитируется
 
02.08.17
07:49
Чем тебе (10) не нравится?
20 falselight
 
02.08.17
07:51
(19) Это код для 7.7 же.
21 Lexey_
 
02.08.17
08:01
(20) там от семерки одна строка
22 falselight
 
02.08.17
08:04
(21) Понять бы ещё что там делается, и как это применить
под свой документ.
23 Lexey_
 
02.08.17
08:07
(22) так комментарии есть
24 falselight
 
02.08.17
08:13
(23) Буду применять, если подойдет для 8.3.
25 Работа имитируется
 
02.08.17
08:37
(22) >Понять бы ещё что там делается.
Не отчаиваться! Всегда есть возможность устроится садовником!
26 Масянька
 
02.08.17
08:37
(22) А что тебе не понятно?
У меня реализовано для договоров.
Есть шаблоны word - каждому виду договору соответствует свой макет. Вид договора выбирается в форме справочника - автоматом выбирается шаблон. На основе шаблона создается файл word. В файле заполняются поля ([]) и файл записывается.
Чего не понятно?
27 Масянька
 
02.08.17
08:39
(25) Садовником тоже не просто - нужно понимать, где сорняк, а где цветочки. Да, и как кусты обрезать тоже нужно понятие иметь.
28 falselight
 
02.08.17
09:00
(26) Буду разбираться.
Вы в 7.7 работаете что ли?
29 Масянька
 
02.08.17
09:04
(28) И там тоже. А что?
30 Работа имитируется
 
02.08.17
09:07
(27) Зато нет такого - "завтра открытие парка, а у вас розы не того цвета, срочно сажаем тюльпаны и красим их в бирюзовый цвет"...
31 Масянька
 
02.08.17
09:09
(30) С баша:
Муж решил старшего приобщить к труду - вывез на дачу. Пацану - 8 лет.
Первое задание - прополоть грядку с луком.
Вводные - все, что не лук - выдирать на фиг.
Сын выдрал сорняк и куст смородины - "Так это же не лук!"
Программист растет.
:)))))))))))))))))
32 falselight
 
03.08.17
07:36
(10) Ну а можно полный код модуля?
Это же отрывок.
Остальное самому додумывать?
33 catena
 
03.08.17
07:40
(32)Что ты там собрался додумывать? Определение объекта, подключение и замена параметра есть, чего не хватает?
34 Имитация работы
 
03.08.17
07:44
(32) > Остальное самому додумывать?

Ты н поверишь...
35 falselight
 
03.08.17
07:50
(33) А его открытие?
Может там какой сложный код ещё.
А я то не знаю его!
36 catena
 
03.08.17
07:59
37 falselight
 
03.08.17
08:18
мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    мWord.Activate();




Пишет, произошла исключительная ситуация. Не удается активизировать приложение!
38 1dvd
 
03.08.17
08:20
(37) где этот код выполняется?
39 falselight
 
03.08.17
08:25
(38) Из формы документа.


&НаКлиенте
Процедура ПутевойЛист(Команда)
    мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    мWord.Activate();
КонецПроцедуры
40 Масянька
 
03.08.17
08:25
(37) У меня, лично:
    // записываем файл
    мДок.SaveAs(мИмяФайла);
    
    ИмяФайла = СокрЛП(мИмяФайла);
    
    // активируем Word
    мWord.Visible = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;

(32) Там много чего - всякие бантики, ленточки...
Процедура - по кнопке "Сформировать договор" в форме элемента справочника.
А вообще, вспоминай "Вовка в тридевятом царстве" - двое из ларца:
- А вы и есть за меня будете?
- Ага!
41 falselight
 
03.08.17
08:26
(39+) Я надеялся что пока откроется сам документ ворд.
42 falselight
 
03.08.17
08:26
(40) И куда это добавлять?
Прям так как есть?
43 Масянька
 
03.08.17
08:27
(41) Ты его сохранил?
(42) В конце - после формирования и записи док-та (word).
44 1dvd
 
03.08.17
08:28
(42) Тебе так часто говорят "Пригласите специалиста". Ты уже не паришься по этому поводу?
45 Масянька
 
03.08.17
08:29
(42) Процедура СформироватьДоговор(мИмяФайла = "", мЕстьСрок, мЕстьСчет, мСписокПО, мШаблон, мПредупреждение)  
    
…. (тут всякие нужные параметры)
    
    // формируем файл
    мWord = СоздатьОбъект("Word.Application");

    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка(КаталогШаблонов + мШаблон));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
        
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      

…. (тут продолжаем заполнять шаблон)

… (а вот закончили заполнять)
    // записываем файл
    мДок.SaveAs(мИмяФайла);
    
    ИмяФайла = СокрЛП(мИмяФайла);
    
    // активируем Word
    мWord.Visible = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;

    Предупреждение(мПредупреждение);
    
КонецПроцедуры
46 falselight
 
03.08.17
08:31
(45) А Activate где?
47 falselight
 
03.08.17
08:31
Так?

    мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    // записываем файл
    мДок.SaveAs(мИмяФайла);
    ИмяФайла = СокрЛП(мИмяФайла);
    // активируем Word
    мWord.Visible                 = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;     
    мWord.Activate();
48 Масянька
 
03.08.17
08:35
(46) У Кощея :)
49 falselight
 
03.08.17
08:35
(48) Но а серьезно?
50 Масянька
 
03.08.17
08:36
(49) Читай, что есть "Activate" и что "Visible".
Читать можно тут - https://msdn.microsoft.com/ru-ru/library/kw65a0we.aspx.
51 Масянька
 
03.08.17
08:37
(49) А вообще... Серьезно - это рожать. А с эской работать - ... (матофильтр сработал).
52 falselight
 
03.08.17
08:40
(50) активизирует, то есть открывает и ли делает видимость
53 Масянька
 
03.08.17
08:40
(49) Ну, давай, боярин, не томи... Арбайтен?
54 falselight
 
03.08.17
08:51
(53) Не работает ((((

//
&НаКлиенте
Процедура ПутевойЛист(Команда)
    мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    // записываем файл
    мИмяФайла = "C:\WORDFORMS\ПутевойЛист" + СокрЛП(ТекущаяДата());
    мИмяФайла = СтрЗаменить(мИмяФайла, " ", "");
    мИмяФайла = СтрЗаменить(мИмяФайла, ":", "");
    мИмяФайла = СтрЗаменить(мИмяФайла, ".", "");
    мИмяФайла = мИмяФайла + ".doc";
    мДок.SaveAs(мИмяФайла);
    ИмяФайла = СокрЛП(мШаблон);
    // активируем Word
    мWord.Visible                 = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;     
    мWord.Activate();
КонецПроцедуры
55 Масянька
 
03.08.17
08:53
(54) мWord.Activate(); заремь - работает?
Файл создает, сохраняет?
В диспетчере word висит?
56 falselight
 
03.08.17
08:53
Ломается на строке

    мДок.SaveAs(мИмяФайла);

там значение C\WORDFORMS\ПутевойЛист03082017125342.doc
57 falselight
 
03.08.17
08:54
(55) Висит многократно! Снимаю!
58 falselight
 
03.08.17
08:55
так пробую

&НаКлиенте
Процедура ПутевойЛист(Команда)
    мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    // записываем файл
    мИмяФайла = "C:\WORDFORMS\ПутевойЛист" + СокрЛП(ТекущаяДата());
    мИмяФайла = СтрЗаменить(мИмяФайла, " ", "");
    мИмяФайла = СтрЗаменить(мИмяФайла, ":", "");
    мИмяФайла = СтрЗаменить(мИмяФайла, ".", "");
    мИмяФайла = мИмяФайла + ".doc";
    мДок.SaveAs(мИмяФайла);
    ИмяФайла = СокрЛП(мШаблон);
    // активируем Word
    мWord.Visible                 = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;     
    //мWord.Activate();
КонецПроцедуры
// <-
59 Масянька
 
03.08.17
08:56
(56) Доступ к папке? Желательно посмотреть из эски - то есть в эске открыть печ. форму и сохранить ее в эту папку.
60 Масянька
 
03.08.17
08:57
(58) А зачем двоеточие меняешь?
61 falselight
 
03.08.17
08:58
(60) Ну может ругалось бы на это.
62 Масянька
 
03.08.17
08:58
+ (60) ИМХО - имя файла преобразуй отдельно и только потом (после преобразования) - добавляй строку с каталогом.
63 falselight
 
03.08.17
08:59
(59) Как это?

Пока ругается на (56) что то не нраивтся (
64 falselight
 
03.08.17
08:59
(62) Я сделаю, перерыв! Устал.
65 Масянька
 
03.08.17
08:59
(61) C\WORDFORMS\ПутевойЛист03082017125342.doc - ничего не напрягает?
66 falselight
 
03.08.17
09:00
(65) Ну а что там не так?
67 Масянька
 
03.08.17
09:00
(64) Слабак :)
68 falselight
 
03.08.17
09:00
(67)Я с вами.
69 Масянька
 
03.08.17
09:01
(66) C:\WORDFORMS\ПутевойЛист03082017125342.doc - найди одно отличие.
70 Масянька
 
03.08.17
09:03
(68) Не люблю слабаков.
Если ставишь задачу - к результату нужно ползти, превозмогая боль и усталость. Иначе - результата не будет.
71 dezss
 
03.08.17
09:07
(69) угу...заменятор....
я бы первым делом этот путь в проводник скопировал
72 falselight
 
03.08.17
09:13
(70) Будет! Но немного позже!
73 Масянька
 
03.08.17
09:14
(72) Ну, смотри....
74 Fish
 
гуру
03.08.17
09:33
75 falselight
 
03.08.17
12:20
(74) Так там получить макет!
Я же хочу просто открыть пока формы документов в ворд.
Потом заполнить нужные поля в них.
76 Масянька
 
03.08.17
12:33
(75) Где моя металлическая линейка?!
Ты - издеваешься?
В word'е открывается уже готовый файл (заполненный шаблон).
Ты, вообще, в шаблонами в word'е работал?
77 dk
 
03.08.17
13:01
я через закладки предпочитаю

    Попытка
        Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
        Скрипт.language="javascript";
        Ворд = Скрипт.Eval("new ActiveXObject('Word.Application')");
    Исключение
        Попытка
            Ворд = СоздатьОбъект("Word.Application");
        Исключение
            Сообщить("Не удалось открыть Word");
            Фирма = "";
            Возврат;
        КонецПопытки;
    КонецПопытки;    
    
    Ворд.DisplayAlerts = ексНет;    
    Док = Ворд.Documents.Add(ФайлШаблона);
    
    НомерИсходящий = ПолучитьИсходящий(Фирма, Элем, СокрЛП(глПользователь)+" "+ТекущаяДата()+" "+ТекущееВремя()+" долг: "+ СуммаПросрочки, Перечисление.ВидыДокументов.Уведомление);
    ИмяДляСохранения = ПапкаДляДокументов + "Уведомление_" + НомерИсходящий + ".rtf";
    
    Док.Bookmarks("Исходящий").Range.Text                    = НомерИсходящий + " от " + ПолучитьТекстовуюДату(ПолучитьДатуТА());;
    Док.Bookmarks("НаименованиеКонтрагента").Range.Text        = СокрЛП(Элем.ПолнНаименование);
    Док.Bookmarks("ИндексЮридическийАдрес").Range.Text        = ?(СокрЛП(Элем.ЮридическийАдрес)="",СокрЛП(Элем.ПочтовыйАдрес),СокрЛП(Элем.ЮридическийАдрес));
    Док.Bookmarks("Дата").Range.Text                        = ПолучитьТекстовуюДату(ПолучитьДатуТА());
    Док.Bookmarks("НомерДоговора").Range.Text                = ПолучитьНомерДоговора(ТекДоговор);
    Док.Bookmarks("ДатаДоговора").Range.Text                = ПолучитьТекстовуюДату(ТекДоговор.ДатаЗаключения);;
    Док.Bookmarks("СуммаРублей").Range.Text                    = СокрЛП(Формат(Цел(СуммаПросрочки), "Ч15.0. "));//Формат(Цел(СуммаПросрочки), "Ч015.0");
    Док.Bookmarks("СуммаКопеек").Range.Text                    = Цел((СуммаПросрочки - Цел(СуммаПросрочки)) * 100);
    Док.Bookmarks("ДатаПогашения").Range.Text                = ПолучитьТекстовуюДату(ПолучитьДатуТА()+4);;
    
    Зн = ФирмаВыбран.Получить("ПОДПИСЬ");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("Директор").Range.Text                = Зн;
    Иначе
        Док.Bookmarks("Директор").Range.Text                = "________________";
    КонецЕсли;
    
    Зн = ФирмаВыбран.Получить("ДОЛЖНОСТЬДЛЯАКТА");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("Должность").Range.Text                = Зн;
    Иначе
        Док.Bookmarks("Должность").Range.Text                = "________________";
    КонецЕсли;
    
    Зн = ФирмаВыбран.Получить("ФИРМА");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("Фирма1").Range.Text                    = Зн;
        Док.Bookmarks("Фирма2").Range.Text                    = Зн;
    Иначе
        Док.Bookmarks("Фирма1").Range.Text                    = "________________________________________";
        Док.Bookmarks("Фирма2").Range.Text                    = "________________________________________";
    КонецЕсли;
        
    Зн = ФирмаВыбран.Получить("ФИРМАДЛИННО");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("ФирмаДлинно").Range.Text                = Зн;
    Иначе
        Док.Bookmarks("ФирмаДлинно").Range.Text                = "_______________________________________________________________";
    КонецЕсли;
    
    Зн = ФирмаВыбран.Получить("ИНН");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("ФирмаИНН").Range.Text                = Зн;
    Иначе
        Док.Bookmarks("ФирмаИНН").Range.Text                = "__________________";
    КонецЕсли;

    Зн = ФирмаВыбран.Получить("КПП");
    Если Фирма.ВидФирмы = Перечисление.ВидыФирм.ИндПредприниматель Тогда
        Док.Bookmarks("ФирмаКПП").Range.Text                = "";
    Иначе
        Если ПустоеЗначение(Зн) = 0 Тогда
            Док.Bookmarks("ФирмаКПП").Range.Text                = "КПП " + Зн;
        Иначе
            Док.Bookmarks("ФирмаКПП").Range.Text                = "КПП __________________";
        КонецЕсли;
    КонецЕсли;
        
    Зн = ФирмаВыбран.Получить("ОГРН");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("ФирмаОГРН").Range.Text                = Зн;
    Иначе
        Док.Bookmarks("ФирмаОГРН").Range.Text                = "____________________";
    КонецЕсли;
    
    Зн = ФирмаВыбран.Получить("ЮРАДРЕС");
    Если ПустоеЗначение(Зн) = 0 Тогда
        Док.Bookmarks("ФирмаЮрАдрес").Range.Text            = Зн;
    Иначе
        Док.Bookmarks("ФирмаЮрАдрес").Range.Text            = "__________________________________________________________";
    КонецЕсли;
    
    Если ПустоеЗначение(ТекДоговор.БанковскийСчет) = 0 Тогда
        РСчет = ТекДоговор.БанковскийСчет;
    Иначе
        РСчет = Фирма.СчетПоУмолчанию;
    КонецЕсли;
    
    Зн1 = "";
    Зн2 = "";
    Зн3 = "";
    Зн4 = "";
    
    Если ПустоеЗначение(РСчет) = 0 Тогда
        глПлатежныеРеквизиты(РСчет,"",Зн2, Зн1, Зн4, Зн3);
    КонецЕсли;
    
    Если ПустоеЗначение(Зн1) = 1 Тогда
        Зн1 = "________________________________";
    КонецЕсли;
    Если ПустоеЗначение(Зн2) = 1 Тогда
        Зн2 = "____________________________";
    КонецЕсли;
    Если ПустоеЗначение(Зн3) = 1 Тогда
        Зн3 = "_______________________________";
    КонецЕсли;
    Если ПустоеЗначение(Зн4) = 1 Тогда
        Зн4 = "______________";
    КонецЕсли;
    
    Док.Bookmarks("ФирмаБанк").Range.Text                = Зн2;
    Док.Bookmarks("БИК").Range.Text                        = Зн4;
    Док.Bookmarks("ФирмаКС").Range.Text                    = Зн3;
    Док.Bookmarks("ФирмаРС").Range.Text                    = Зн1;
    
    Попытка
        Док.SaveAs2(ИмяДляСохранения, wdFormatRTF);
        Сообщить("Записан файл: " + ИмяДляСохранения);
    Исключение
        Сообщить("Ошибка при сохранении файла: " + ИмяДляСохранения);
    КонецПопытки;

    Попытка
        Док.Close(ексНет);
    Исключение
    КонецПопытки;
    
    Попытка
        Ворд.Quit(ексНет);
    Исключение
    КонецПопытки;
    
    Если ФС.СуществуетФайл(ИмяДляСохранения) = 1 Тогда
        Если ПустоеЗначение(Элем.Емэйл) = 0 Тогда
            глОтправитьПисьмо(3, СокрЛП(Элем.Емэйл), "", "Уведомление", "", ИмяДляСохранения);
        Иначе
            ЗапуститьПриложение(ИмяДляСохранения);
        КонецЕсли;
    КонецЕсли;
    
    Фирма = "";
78 falselight
 
04.08.17
05:58
Что не так в этом имени?

Ошибка на этой строке   мДок.SaveAs(мИмяФайла);


C\WORDFORMS\ПутевойЛист.doc
79 h-sp
 
04.08.17
06:34
(78) сам то смотрел это имя? Посмотри на него, посмеешься.
80 falselight
 
04.08.17
06:54
(79) Путь к файлу, что не так?
81 falselight
 
04.08.17
06:55
(79) А двоеточия нет!
82 1dvd
 
04.08.17
07:01
(81) а теперь догадайся почему
83 falselight
 
04.08.17
07:13
(82)  Сам убрал.
84 falselight
 
04.08.17
07:46
Сейчас по этому коду, открывается файл лежащий на диске.
Но почему то новый не создается.

    мWord = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc"));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    //мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    // записываем файл
    ТекДатаСтр = СокрЛП(ТекущаяДата());
    ТекДатаСтр =  СтрЗаменить(ТекДатаСтр, " ", "");
    ТекДатаСтр =  СтрЗаменить(ТекДатаСтр, ":", "");
    ТекДатаСтр =  СтрЗаменить(ТекДатаСтр, ".", "");
    мИмяФайла = "C:\WORDFORMS\ПутевойЛист" + ТекДатаСтр;
    //мИмяФайла = СтрЗаменить(мИмяФайла, " ", "");
    //мИмяФайла = СтрЗаменить(мИмяФайла, ":", "");
    //мИмяФайла = СтрЗаменить(мИмяФайла, ".", "");
    мИмяФайла = мИмяФайла + ".doc";
    мДок.SaveAs(мИмяФайла);
    ИмяФайла = СокрЛП(мШаблон);
    // активируем Word
    мWord.Visible                 = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;     
    //мWord.Activate();
85 falselight
 
04.08.17
07:50
(84) Файл же должен создаваться на основе шаблона,
и сохраняться как новый?!
86 1dvd
 
04.08.17
07:54
(85) шаблон - это файл с расширением dot. Создать его можно в, внезапно, в Ворде
87 falselight
 
04.08.17
07:57
(86) В (84) открывается шаблон word с диска
с расширением doc. Форма документа.
Я спрашиваю, что этот шаблон будет всегда неизменным
и меняться все будет программно, и будут создаваться
новые файлы. Интересует почему в (84) не создался новый файл?
88 Масянька
 
04.08.17
08:41
(87) Тебе повезло, что я далеко...
    мШаблон = СокрЛП(Строка("C:\WORDFORMS\ПутевойЛист.doc")); - где тут шаблон Word?
89 1dvd
 
04.08.17
08:47
90 Cyberhawk
 
04.08.17
09:32
(0) "Не известен ни кому
подобный метод переноса документа из word в excel?"
(3) "мне нужно из excel в word"
(4) "Точнее нужно из word в excel, а там наоборот"

На чем остановились?
91 falselight
 
15.08.17
05:14
(88) Под шаблоном я понимаю файл ворд с со значениями которые нужно изменять программно.

Вопрос сейчас такой, в ворд файле сделал значение ПечВодитель, пробую его заменить на "***", что бы понять что замена происходит и начать извлекать настоящие значения для замены. Но замена не произошла. Открылся файл со значением ПечВодитель, не замененным на "***". Почему не заменяет?

&НаКлиенте
Процедура Доверенность(Команда)
    мWord         = Новый COMОбъект("Word.Application");
    //
    мWord.Visible = 0;
    мNewDoc       = мWord.Documents;
    мШаблон       = СокрЛП(Строка("C:\WORDFORMS\Доверенность.doc"));
    мДок          = мNewDoc.Add(мШаблон, 0, 0, 1);  
    // верхний колонтитул
    мКолонтитул   = мДок.Sections.Item(1).Headers.Item(1).Range;
    //мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    //мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    мОбъект = мДок.Content;
    // подставляем значения по тексту договора - признак замены []
    мОбъект.Find.Execute("[ПечВодитель]",0,0,,,,,,,"***",2);
    //мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
    //мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
    //мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
    //мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2);      
    // записываем файл
    мИмяФайла = "C:\WORDFORMS\Доверенность";// + СокрЛП(ТекущаяДата());
    //мИмяФайла = СтрЗаменить(мИмяФайла, " ", "");
    //мИмяФайла = СтрЗаменить(мИмяФайла, ":", "");
    //мИмяФайла = СтрЗаменить(мИмяФайла, ".", "");
    мИмяФайла = мИмяФайла + ".doc";
    мДок.SaveAs(мИмяФайла);
    ИмяФайла = СокрЛП(мШаблон);
    // активируем Word
    мWord.Visible                 = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;     
    //мWord.Activate();
КонецПроцедуры
92 falselight
 
15.08.17
05:28
Кажется понял с заменой, заменилось значение [ПечВодитель],
Скобки не поставил.
93 falselight
 
15.08.17
06:46
Данный код, переписывает и сохраняет ворд файл лежаший как
заготовка для формирования по заданным значениям.
Почему он не открывается как копия, что бы не трогать
заготовку?
94 falselight
 
15.08.17
07:17
поправил
95 1dvd
 
15.08.17
08:36
(93) см (89)
AdBlock убивает бесплатный контент. 1Сергей