|
Word печатная форма | ☑ | ||
---|---|---|---|---|
0
88g88
02.10.19
✎
17:33
|
Приветствую форумчане.
как правильно указа параметры в макете ворда и заполнить их? параметры указал в [] скобках. а заполнить их не получается. из кода пока есть это: Процедура ПроверкаНаСервере() экспорт Договор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); MSword = Договор.Получить(); MSWord.Application.Visible = Истина; MSWord.Activate(); КонецПроцедуры |
|||
1
dka80
02.10.19
✎
17:48
|
я делал так: в тексте параметры обозначал не параметрами, а текстом с процентами. Например %Параметр1%
Далее в коде: Object.Find.Execute("%" + Параметр + "%",,,,,,,,,Значение,2); |
|||
2
88g88
02.10.19
✎
17:54
|
Правильно понял?
Процедура ПроверкаНаСервере() экспорт Договор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); MSword = Договор.Получить(); MSword.Find.Execute("%" + "Параметр1" + "%",,,,,,,,,"Проверка",2); MSWord.Application.Visible = Истина; MSWord.Activate(); КонецПроцедуры Ошибку показывает {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(7)}: Поле объекта не обнаружено (Find) MSword.Find.Execute("%" + "Параметр1" + "%",,,,,,,,,"Проверка",2); |
|||
3
dka80
02.10.19
✎
17:58
|
У меня WordApplication, а не макет
|
|||
4
88g88
03.10.19
✎
13:12
|
В общем подготовить документ пришлось как описано в статье по ссылке.
https://helpme1c.ru/kak-sozdavat-shablony-word-dlya-ispolzovaniya-v-1s Но одно но настройку делал не в обычном файле а сразу в макете 1С. Который создан как "Active document" В статье код оптимизирован под другой тип макета в виде внешнего файла. Я создавал как внутренний макет. Далее примерно такой код получился. &НаСервере Процедура ПроверкаНаСервере() экспорт Договор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); MSword = Договор.Получить(); Для каждого поле из MSword.Fields цикл //Получаем Значение поля ПолноеИмя = Поле.Code.Text; // Ищем позицию для отчистки от лишних символов за наименование поля ПозицияСлеша = Найти(ПолноеИмя,"\*"); // Убираем 12 символов до параметра в полном имене и 14 после КороткоеИмя = СокрЛ(Сред(ПолноеИмя, 12, ПозицияСлеша - 14)); ЗначениеПоля = ""; // Ишем необходимый параметр и заменяем значение Если КороткоеИмя = "Параметр1" тогда ЗначениеПоля = "Новое значение" КонецЕсли; // Записываем значение если оно не пустое. Если ЗначениеПоля <> "" Тогда Поле.Select(); MSword.Application.Selection.TypeText(ЗначениеПоля); КонецЕсли; КонецЦикла; MSWord.Application.Visible = Истина; MSWord.Activate(); КонецПроцедуры &НаКлиенте Процедура Проверка(Команда) экспорт ПроверкаНаСервере(); КонецПроцедуры |
|||
5
88g88
03.10.19
✎
13:14
|
Результатом будет открытый но не сохраненный документ.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |