Имя: Пароль:
1C
1С v8
Внешняя печатная форма на УФ с параметрами
0 animatic
 
26.08.15
00:09
Есть две внешние печатные формы, по-сути отличающиеся в мелочах в макетах. Хотел объединить их в одну обработку с двумя макетами и в зависимости от параметра выводит либо один, либо другой макет. Как такое реализовать на УФ, параметры не нужно располагать на отдельной форме, должно быть по аналогии с ТОРГ-12, т.е. две команды, одна вызывает один макет, другая второй. В обычных формах для этого использовались параметры, тут чет не разберусь как это сделать.
1 PaulBC
 
26.08.15
02:58
(0) Ну так через команды и делай, в процедуре Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) проверяй ИдентификаторКоманды
2 animatic
 
26.08.15
08:32
(1) подробней можно, я с уф не очень дружу еще
3 PaulBC
 
26.08.15
08:53
В модуле объекта обработки, в Функция СведенияОВнешнейОбработке() добавляешь две команды с разными идентификаторами, в процедуре Печать() эти идентификаторы отлавливаешь.

https://its.1c.ru/db/bspdoc#content:427:1:issogl1_использование_при_разработке_конфигурации
4 animatic
 
26.08.15
09:57
(3) спасибо
5 animatic
 
26.08.15
10:19
(3) сделал так, вроде работает

в Функция СведенияОВнешнейОбработке() добавил две команды:

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление        = НСтр("ru = 'Договор поставки (материал)'");
    НоваяКоманда.Идентификатор        = "ДоговорПоставкиМатериал";
    НоваяКоманда.Использование        = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор          = "ПечатьMXL";
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление        = НСтр("ru = 'Договор поставки (инструмент)'");
    НоваяКоманда.Идентификатор        = "ДоговорПоставкиИнструмент";
    НоваяКоманда.Использование        = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор          = "ПечатьMXL";

В процедуре Печать() прописал так:

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорПоставкиМатериал") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "ДоговорПоставкиМатериал",
            НСтр("ru = 'Договор поставки (материал)'"),
            СформироватьПечатнуюФормуДоговорПоставки(МассивОбъектов, ОбъектыПечати, Истина),
            ,
            "ПФ_MXL_ДоговорПоставкиМатериал");
            
    КонецЕсли;
        
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорПоставкиИнструмент") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "ДоговорПоставкиИнструмент",
            НСтр("ru = 'Договор поставки (инструмент)'"),
            СформироватьПечатнуюФормуДоговорПоставки(МассивОбъектов, ОбъектыПечати),
            ,
            "ПФ_MXL_ДоговорПоставкиИнструмент");
            
    КонецЕсли;
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn