Имя: Пароль:
1C
1С v8
2 и более макета из 1 внешней ПФ
0 Юзер123
 
naïve
23.06.21
12:54
Доброго времени.
Подскажите пож-та как с помощью 1- ой внешней пф вывести 2 макета двумя вкладками. Как выводить  на 1 листе - разобрался. Вопрос именно в выводе в 2 разные вкладки.
1 Momus
 
23.06.21
12:55
Вывести два макета в один табличный документ? Что за вкладки?
2 Юзер123
 
naïve
23.06.21
13:11
3 Недопустимый
 
23.06.21
13:20
выполни команду два раза
4 Юзер123
 
naïve
23.06.21
13:28
(3) Добавил еще 1 команду.  Но печатает только первую
    ДобавитьКоманду(ТаблицаКоманд,
                    НСтр("ru = 'М-15'"),
                    "М-15",
                    "ВызовСерверногоМетода",
                    Истина,
                    "ПечатьMXL");
                    
    ДобавитьКоманду(ТаблицаКоманд,
                    НСтр("ru = 'ОтчетЗаСмену'"),
                    "ОтчетЗаСмену",
                    "ВызовСерверногоМетода",
                    Истина,
                    "ПечатьMXL");
5 Юзер123
 
naïve
23.06.21
13:28
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "М-15", "М-15",
        СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
        
        
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ОтчетЗаСмену") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "Отчет за смену", "Отчет за смену",
        СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры
6 Momus
 
23.06.21
13:35
(5) а так:
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "М-15", "М-15",
        СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));

        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "Отчет за смену", "Отчет за смену",
        СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
7 Юзер123
 
naïve
23.06.21
13:40
(6) так тоже только первый.
То что скинул  -  это вариант уже от исходного отличающийся. Изначально было как у Вас
8 Юзер123
 
naïve
23.06.21
13:41
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    аа =1 ;
    Пока аа < 2 Цикл
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "М-15", "М-15",
        СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
        
        
    //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Отчет за смену") Тогда
    //    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    //    КоллекцияПечатныхФорм,
    //    "Отчет за смену", "Отчет за смену",
    //    СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
    //КонецЕсли;
    
     аа = аа +1;
    
    КонецЦикла;

только 1 Раз выводит.
9 Momus
 
23.06.21
14:04
(9) ну прям так в две вкладки - хз. Так пойдет?
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "М-15", "М-15",
        СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));

        ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
    ПечатнаяФорма.ИмяМакета = "Отчет за смену";
    ПечатнаяФорма.ИмяВРЕГ = ВРег("Отчет за смену");
    ПечатнаяФорма.Экземпляров = 1;
      
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "Отчет за смену", "Отчет за смену",
        СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
Откроется форма печати комплекта документов
10 Momus
 
23.06.21
14:05
оффтоп
как вставлять код 1с в сообщении?
11 Юзер123
 
naïve
23.06.21
14:05
(9)

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    СтрокаКоллекция =  КоллекцияПечатныхФорм.Добавить();
    СтрокаКоллекция.ИмяВРЕГ = "ОТЧЕТ ЗА СМЕНУ";
    СтрокаКоллекция.ИмяВРЕГ = "ОтчетЗаСмену";    
    СтрокаКоллекция.Экземпляров = 1;    
    
    
        Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "М-15", "М-15",
            СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));
            
            Сообщить("м15 готово");
            
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "Отчет за смену", "Отчет за смену",
            СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
        КонецЕсли;
    КонецПроцедуры


Вот так пробовали.  Ошибка "Не сформирован ТабДокумент"
12 Юзер123
 
naïve
23.06.21
14:05
(10)

Хз.  он как то рандомно определяется походу)
13 Momus
 
23.06.21
14:20
(12) для начала, думаю, лучше сделать как я написал, а потом оптимизировать. По крайней мере у меня взлетело.
Вот мой рабочий код:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПД_НЗ") Тогда
        ПараметрыПечати = Новый Структура;
        ПараметрыПечати.Вставить("ПечатьНомераЗаказаКлиента", Истина);
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "УПД_НЗ",
            НСтр("ru = 'Универсальный передаточный документ (УПД) Новый с номером заказа клиента';
                |en = 'Universal transfer document (UTD)'"),
            СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
            
        ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
        ПечатнаяФорма.ИмяМакета = "УПД_НЗ1";
        ПечатнаяФорма.ИмяВРЕГ = ВРег("УПД_НЗ1");
        ПечатнаяФорма.Экземпляров = 1;
            
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "УПД_НЗ1",
            НСтр("ru = 'Универсальный передаточный документ (УПД) Новый с номером заказа клиента';
                |en = 'Universal transfer document (UTD)'"),
            СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
            
    КонецЕсли;
14 Momus
 
23.06.21
14:23
(13) в примере два одинаковых табличных документа, думаю не принципиально.
15 Гений 1С
 
гуру
23.06.21
14:31
(0) мой гений тебе дарит: https://geniy1s.ru/neskolko-pechatnyh-form-v-uf/
16 Юзер123
 
naïve
23.06.21
14:31
(13) Да.  У меня ошибка была

    СтрокаКоллекция =  КоллекцияПечатныхФорм.Добавить();
    СтрокаКоллекция.ИмяВРЕГ = "ОТЧЕТ ЗА СМЕНУ";
    СтрокаКоллекция.ИмяВРЕГ = "ОтчетЗаСмену";


2 раза Врег вместо имени макета.  поэтому на Таб док ругалось.  Сейчас добью.  Спс
17 Юзер123
 
naïve
23.06.21
14:32
(15)  Спасибо
18 Momus
 
23.06.21
14:38
(15) интересное решение
19 Momus
 
23.06.21
14:39
+(18)
Для Каждого СтрокаТЧ из КоллекцияПечатныхФорм Цикл
    ИмяМакета = СтрокаТЧ.ИмяВРЕГ;
КонецЦикла;
20 Юзер123
 
naïve
23.06.21
14:41
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    СтрокаКоллекция =  КоллекцияПечатныхФорм.Добавить();
    СтрокаКоллекция.ИмяВРЕГ = "ОТЧЕТ ЗА СМЕНУ";
    СтрокаКоллекция.ИМяМакета= "ОтчетЗаСмену";    
    СтрокаКоллекция.Экземпляров = 1;    
    
    
        Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М-15") Тогда
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "М-15", "М-15",
            СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));
            
            Сообщить("м15 готово");
            
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "Отчет за смену", "Отчет за смену",
            СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));
        КонецЕсли;
    КонецПроцедуры



Работает