Имя: Пароль:
1C
1С v8
Как передать параметр из внешней печатной формы на упр.форму?
,
0 wms
 
01.03.16
12:57
УТ11.
Для договора создал внешнюю печатную форму.
На форме есть реквизит "ДоговорКонтрагента" надо его заполнить из договора из которого нажали на "Печать договора контрагента".
т.к. в зависимости от договора и еще др. выбранных пользователем реквизитов формы далее будет формироваться нужная печатная форма.

Во внешней печ. форме изпользуются такие команды:
    НоваяСтрока = Команды.Добавить();
    НоваяСтрока.Идентификатор = "Печать договора контрагента";
    НоваяСтрока.Представление = "Печать договора контрагента(Внешняя печатная форма)";
    НоваяСтрока.Модификатор   = "";
    НоваяСтрока.ПоказыватьОповещение = Ложь;
    НоваяСтрока.Использование = "ОткрытиеФормы";
1 wms
 
01.03.16
13:00
или надо делать
НоваяСтрока.Идентификатор = "ВызовСерверногоМетода";
и уже из процедуры модуля объекта
Процедура Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода) Экспорт
открывать форму?
2 ЧеловекДуши
 
01.03.16
13:34
(0) ЧиТО?
Код покажи, где затык случился?
3 wms
 
01.03.16
13:54
(2)в форме кода нет.
она автоматически открывается
в модуле обекта стандартная функция
Функция СведенияОВнешнейОбработке() Экспорт

которая с помощью команды
НоваяСтрока.Использование = "ОткрытиеФормы";
открывает форму

Вот мне нужно как то при открытии формы получить договор
4 LordCMEPTb
 
01.03.16
14:15
Осталось понять, какой из договоров брать: первый, последний или случайный.
Если память не изменяет, в параметрах при создании формы можно отловить массив "ОбъектыНазначения", в котором будут все договоры, для которых вызывается эта форма.
5 wms
 
01.03.16
14:25
(4)первый т.к. будут еще параметры задавать перед печатью и по одному будут печатать .спасибо за наводку щас поищу.
еще бы понять как в отладчике посмотреть.
Что там за команда вызывает внешнюю обработку печати?Реально там отладить?
6 wms
 
01.03.16
15:01
Хочу увидеть параметры открывая обработку через меню файл-открыть, даже добавил туда вручную параметр "ОбъектыНазначения_"
что то в параметрах пусто
http://s010.radikal.ru/i311/1603/e7/93ec0e625a2c.png

как его увидеть?
7 Defender aka LINN
 
01.03.16
15:08
(0) "На форме есть реквизит "ДоговорКонтрагента" надо его заполнить" - то неловкое чувство, когда печатная форма должна бы превратиться в обработку заполнения, но нет.
8 aleks_default
 
01.03.16
15:17
(6) Через файл-открыть ты ничего не увидишь. Читай про отладку внешних печатных форм в гугле.
9 wms
 
02.03.16
01:24
сделал так. Для заметки.
&НаКлиенте
Процедура Печать(ИдентификаторКоманды,ОбъектыНазначения) Экспорт
    открытьформумодально("ВнешняяОбработка.ПечатьДоговораКонтрагента.Форма.ФормаПараметры",,этаформа);
    Если не объект.ВвелиПараметры Тогда
        возврат; //отмену нажали
    КонецЕсли;
    Если объект.ВидПечатнойФормы=1 Тогда //Отсрочка
        ИмяМакета="МакетОтсрочка";
    иначе //2 предоплата    
        ИмяМакета="МакетПредоплата";
    КонецЕсли;
    Для Каждого ДоговорКонтрагента Из ОбъектыНазначения Цикл
        СтруктураДанных=ПолучитьДанныеДляПечатиДоговора(ДоговорКонтрагента);
        ПолноеИмяФайла = ПолучитьИмяВременногоФайла("doc");
        МакетХ = ВернутьМакет(ИмяМакета);
        МакетХ.Записать(ПолноеИмяФайла);
        Попытка
            Word = Новый COMОбъект("Word.Application");
            NewDoc=Word.Documents;          
            Док = NewDoc.Add(ПолноеИмяФайла);
        Исключение
            Сообщить("Ошибка.Возможно не установлен Word ? Ошибка:"+ОписаниеОшибки());
        КонецПопытки;
        
        Для каждого Стр Из СтруктураДанных Цикл
            ЗаменаТекста(Док.Content.Find,"%"+сокрлп(стр.ключ)+"%",сокрлп(Стр.Значение));            
        КонецЦикла;
        Док.Application.Visible = Истина;
        Док.Activate();
        Попытка
            Если сокрлп(ПолноеИмяФайла)<>"" Тогда
                удалитьфайлы(ПолноеИмяФайла);
            КонецЕсли;
        Исключение
        КонецПопытки;
    КонецЦикла
КонецПроцедуры

т.е. открываю в режиме "ВызовКлиентскогоМетода" и далее открываю доп.форму для ввода параметров
10 los_hooliganos
 
02.03.16
06:30
Почему-то не могу сюды код отправить
AdBlock убивает бесплатный контент. 1Сергей