Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 05:01

active document, заполнение документа реквизитами из модуля менеджера

Автор vodez, 26 мар 2012, 10:05

0 Пользователей и 1 гость просматривают эту тему.

vodez

Добрый день! 1с 8.2, управляемая форма,  макет печати как Active Document, при нажатии на кнопку "Печать"  документ word заполняется заполненными на форме реквизитами, в модуле менеджера считываем реквизит и заполняем вордовский документ,
подскажите, как считать значение реквизита с формы?
пробовал по разному, логическим кажется например такой вариант, но все неправильно (

       //    ФИО = Документы.СогласиеНаОбследование.НайтиПоРеквизиту().ФИО;

//Модуль Менеджера

Процедура Печать(ТабДок, Ссылка) Экспорт

     Договор = ПолучитьМакет("МакетСогласиеФорма");
             MSWord = Договор.Получить();
Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();

//!!!!!!!!!!!!!!!!!!   
           ФИО = Документы.СогласиеНаОбследование.НайтиПоРеквизиту().ФИО;
//!!!!!!!!!!!!!!!!!      
   Замена = Документ.Content.Find;
   Замена.Execute("[ФИО]", Ложь, Истина, Ложь, , , Истина, , Ложь, ФИО);
   MSWord.Application.Visible = Истина;
   MSWord.Activate();
Исключение
   Сообщить(ОписаниеОшибки());
   MSWord.Application.Quit();
КонецПопытки;


//Модуль команды

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
   ТабДок = Новый ТабличныйДокумент;
   Печать(ТабДок, ПараметрКоманды);

   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Ложь;
   ТабДок.ТолькоПросмотр = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   //}}
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
   Документы.СогласиеНаОбследование.Печать(ТабДок, ПараметрКоманды, Объект);
КонецПроцедуры

vodez

может непонятно написал.. вот по материалам этой статьи
http://www.nastroy-ka.ru/system1c/83--word-active-document.html

только вместо уже заполненных строковых значений надо считать значения реквизитов с формы,  из модуля менеджера как понимаю элементы формы не видятся, так как же их получить?

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

vodez

тут тоже на всякий случай напишу )

спасибо за ответ,   как понимаю, передаем параметр Объект при вызове процедуры в модуле менеджера и 2 параметр - сам документ, с Объектом что-то не получается

мОбъект =  ДанныеФормыВЗначение(Объект,Тип "ДокументОбъект.СогласиеНаОбследование"));

Ошибка при вызове метода контекста (ДанныеФормыВЗначение): Несоответствие типов (параметр номер '1')


// модуль команды

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды, Объект)
   //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
   ТабДок = Новый ТабличныйДокумент;
   Печать(ТабДок, ПараметрКоманды, Объект);
    ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Ложь;
   ТабДок.ТолькоПросмотр = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   //}}
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды, Объект)
   Документы.СогласиеНаОбследование.Печать(ТабДок, ПараметрКоманды, Объект);
КонецПроцедуры



//модуль менеджера

Процедура Печать(ТабДок, Ссылка, Объект) Экспорт
   Договор = ПолучитьМакет("МакетСогласиеФорма");
   MSWord = Договор.Получить(); 
Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();
   мОбъект =  ДанныеФормыВЗначение(Объект,Тип "ДокументОбъект.СогласиеНаОбследование")); 
   ЯФИОРодителя = мОбъект.ФИОРодителя.Значение;
   Замена = Документ.Content.Find;
   Замена.Execute("[ФИОРодителя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ЯФИОРодителя);
   MSWord.Application.Visible = Истина;
   MSWord.Activate();
Исключение
   Сообщить(ОписаниеОшибки());
   MSWord.Application.Quit();
КонецПопытки;   
КонецПроцедуры

sergejK74

Эта строчка наверное не там, где должна быть
мОбъект =  ДанныеФормыВЗначение(Объект,Тип "ДокументОбъект.СогласиеНаОбследование")); 
Какие могут быть данные формы в модуле объекта?
Кнопочка Спасибо - слева!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск