Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Добавления макета типа Active Document.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
афродита
В документе договор, создала макет Active document, поместив в него договор экспедитора. Нужно чтобы значение поля экспедитор(из шапки документа) и значение поля клиент из табл части Клиент были переданы вот в этот макет. Написала код
Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Договор = Документы.Договор.ПолучитьМакет("Макет");
   MSWord = Договор.Получить();
  
Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();
  мЭкспедитор = Документы.Договор.Объект.Экспедитор.Значение;
   Замена = Документ.Content.Find;
   Замена.Execute("{Экспедитор}", Ложь, Истина, Ложь, , , Истина, , Ложь, мЭкспедитор);
   MSWord.Application.Visible = Истина;
   MSWord.Activate();
Исключение
   Сообщить(ОписаниеОшибки());
   MSWord.Application.Quit();
КонецПопытки;
    //}}
КонецПроцедуры

Он ругается что не может найти переменную мЭкспедитор = Документы.Договор.Объект.Экспедитор.Значение; Правильно ли я это все пишу, помогите
Rayne
Если это печать договора из формы самого документа/справочника, то обращение к реквизиту неверно.
"Документы.Договор" - этим вы получаете никак не объект и не ссылку на объект.
Попробуйте ЭтотОбъект.Экспедитор или просто Экспедитор.

А вообще такие моменты легко выясняются с помощью отладчика.

Еще для вывода таких макетов можно пользоваться переменными, мне показалось намного удобнее, чем поиском/заменой. Переменные задаются в шаблоне Word.

Документ.Variables("Экспедитор").Value =  Экспедитор;
афродита
Попыталась написать как вы сказали ЭтотОбъект или просто экспедитор, все равно пишет что переменная не определена. попробывала тк
Договор = Документы.Договор.ПолучитьМакет("Макет");
   MSWord = Договор.Получить();
  
Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();
   Документ.Variables("Экспедитор").Value =  Экспедитор;
    MSWord.Application.Visible = Истина;
   MSWord.Activate();
Исключение
   Сообщить(ОписаниеОшибки());
   MSWord.Application.Quit();
КонецПопытки;

все равно Экспедитор, переменная не определена
Rayne
А отладчик что говорит? Объект - это реквизит договора? Экспедитор - реквизит Объект?

Для того, чтобы переменные использовать, надо ж еще их в шаблоне Word определить.
Вставка - Экспресс-блоки - Поле - Автоматизация - DocVariable.

Верните на место ваш "Поиск/замена"... Разберитесь сначала с переменной Экспедитор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.