Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

2 и более макета из 1 внешней ПФ

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

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

    //    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(

    //    КоллекцияПечатныхФорм,

    //    "Отчет за смену", "Отчет за смену",

    //    СформироватьПечатнуюФормуОтчетаЗаСмену(МассивОбъектов, ОбъектыПечати));

    //КонецЕсли;

    
     аа = аа +1;
    
    КонецЦикла;

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

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

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


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

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


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



Работает

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.