|
Подмена текста в шблонах договора world 1с 8 | ☑ | ||
---|---|---|---|---|
0
Aleksandr_
Nikonov 09.02.16
✎
23:00
|
Всем привет.
В общем не понятная ошибка в интернете нечего не нашел (покрайней мере понятного для меня :-) ) на локальном компьютере данный код работает и окрывает документ более того он подменяет текст :-) а вот на на сервере 2003 не работает выдает ошибку {Справочник.Договора.Форма.ФормаЭлемента.Форма(141)}: Ошибка при вызове метода контекста (Bookmarks) ШаблонВорд.Bookmarks("Закладка1").Select(); по причине: Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует. вот сам код //Попытка создать COM объект Попытка ОбъектВорд = Новый COMОбъект("Word.Application"); Исключение Сообщить("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат Неопределено; КонецПопытки; //Путь к шаблону ОбъектВорд.Documents.Add("D:\1cbases\1с8\Хвалана\ExtForms\Docprn\шаблон.docx"); ШаблонВорд = ОбъектВорд.ActiveDocument; //Получаем все закладки из шаблона Для каждого ЗакладкаВорд Из ШаблонВорд.Bookmarks Цикл Сообщить(ЗакладкаВорд.Name); КонецЦикла; //Заменяем закладку1 на текст ШаблонВорд.Bookmarks("Закладка1").Select(); ШаблонВорд.Application.Selection.TypeText("Привет первый текст"); //Заменяем закладку2 на текст ШаблонВорд.Bookmarks("Закладка2").Select(); ШаблонВорд.Application.Selection.TypeText("Пока второй текс"); //Заменяем закладку3 на текущую дату ШаблонВорд.Bookmarks("Закладка3").Select(); ШаблонВорд.Application.Selection.TypeText(ТекущаяДата()); ОбъектВорд.Application.Visible = Истина; ОбъектВорд.Activate(); //Закрытие документа //ОбъектВорд.Application.Quit(); |
|||
1
Aleksandr_
Nikonov 09.02.16
✎
23:01
|
помогите пожалуйста не знаю как исправить и что (
|
|||
2
Cyberhawk
09.02.16
✎
23:41
|
Нету у тебя в документе, с которым работает серверный Ворд, среди закладок Bookmarks закладки с именем "Закладка1"
Либо твой Ворд он не умеет обращаться к закладкам по имени |
|||
3
Cube
10.02.16
✎
05:20
|
(0) Заполнять шаблон через закладки... А почему не делаешь как все нормальные люди через фигурные/квадратные/треугольные скобки?
|
|||
4
dGU
10.02.16
✎
08:03
|
MsWord.Documents.Open(ПолныйПутьКНовомуФайлу, Истина);
MsWord.Application.Visible = 0; Документ = MsWord.Documents(1); Документ.Activate(); Для Каждого ЭлементСтруктуры Из ПараметрыПечати Цикл Замена = Документ.Content.Find; Замена.Execute(Строка(ЭлементСтруктуры.Ключ // - имя параметра для замены), Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ЭлементСтруктуры.Значение) // - значение замены, 2); КонецЦикла; MsWord.Application.Visible = 1; Документ.SaveAs(ПолныйПутьКНовомуФайлу); MsWord.Documents.Open(ПолныйПутьКНовомуФайлу, Истина); |
|||
5
ЧеловекДуши
10.02.16
✎
08:37
|
(0) На сервере Офис поставь 2003.
Удали офис 2007 :) + Ты насчет сервера, проверь. Бывает что там другая версия :) К примеру 2010 |
|||
6
Aleksandr_
Nikonov 10.02.16
✎
10:14
|
версии офиса одинаковые различия только в винде и в версиях 1с локально стоит 8.3.6.2299
а на сервере стоит 8.2.17.143 может в этом проблема? |
|||
7
Aleksandr_
Nikonov 10.02.16
✎
10:56
|
(4) спасибо вроде заработало но все таки по каким причинам не работал мой код?
|
|||
8
Aleksandr_
Nikonov 10.02.16
✎
22:30
|
Ребята теперь другая ситуация ))
Как выбирать шаблон по одному пути и сохранять новый документ в другом пути? на форме справочника уже есть реквизит пути договора из константы я получаю путь к шаблону помогите решить как выбирать шаблон и затем сохранять полученный договор в директории выбранной пользователем? вот код что получился у меня Функция ЗаполнитьШаблонВорд() MsWord = Новый COMОбъект("Word.Application"); ПолныйПутьКНовомуФайлу = "D:\1cbases\1с8\Хвалана\ExtForms\Docprn\шабл.docx"; MsWord.Documents.Open(ПолныйПутьКНовомуФайлу, Истина); MsWord.Application.Visible = 0; Документ = MsWord.Documents(1); Документ.Activate(); Для Каждого ЭлементСтруктуры Из ЭтаФорма.РедактируемыеПараметры Цикл Замена = Документ.Content.Find; Замена.Execute(Строка(ЭлементСтруктуры.Представление), Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ЭлементСтруктуры.Значение), 2); КонецЦикла; MsWord.Application.Visible = 1; Документ.SaveAs(ПолныйПутьКНовомуФайлу); MsWord.Documents.Open(ПолныйПутьКНовомуФайлу, Истина); КонецФункции |
|||
9
Aleksandr_
Nikonov 10.02.16
✎
22:50
|
Всем спасибо тема закрыта сам разобрался
MsWord = Новый COMОбъект("Word.Application"); ПолныйПутьКНовомуФайлу = ПутьКФайлуДоговра+"\договор номер"+""+ЭтаФорма.НомерДоговора+""+".docx"; ПолныйПутьКФайлуШаблона = ПутьКФайлуШаблону; MsWord.Documents.Open(ПолныйПутьКФайлуШаблона, Истина); MsWord.Application.Visible = 0; Документ = MsWord.Documents(1); Документ.Activate(); Для Каждого ЭлементСтруктуры Из ЭтаФорма.РедактируемыеПараметры Цикл Замена = Документ.Content.Find; Замена.Execute(Строка(ЭлементСтруктуры.Представление), Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ЭлементСтруктуры.Значение), 2); КонецЦикла; MsWord.Application.Visible = 1; Документ.SaveAs(ПолныйПутьКНовомуФайлу); MsWord.Documents.Open(ПолныйПутьКНовомуФайлу, Истина); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |