Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Добавления макета типа Active Document.          
афродита Подменю пользователя
сообщение 22.05.14, 21:43
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 17
Спасибо сказали: 0 раз
Рейтинг: 0

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

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

Rayne Подменю пользователя
сообщение 23.05.14, 7:19
Сообщение #2

Говорящий
Иконка группы
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0

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

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

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

Документ.Variables("Экспедитор").Value =  Экспедитор;


Signature
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im

афродита Подменю пользователя
сообщение 23.05.14, 16:49
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 17
Спасибо сказали: 0 раз
Рейтинг: 0

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

все равно Экспедитор, переменная не определена

Rayne Подменю пользователя
сообщение 26.05.14, 7:17
Сообщение #4

Говорящий
Иконка группы
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0

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

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

Верните на место ваш "Поиск/замена"... Разберитесь сначала с переменной Экспедитор.


Signature
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 13:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!