Вывод двух макетов в одной внешней печатной форме
По теме из базы знаний
- Продвинутая технология внешних печатных форм
- Изготовление внешних печатных форм
- Корректная двусторонняя печать табличных документов + Простой пример создания внешней печатной формы
- Несколько команд печати у одной внешней печатной формы для разных вариантов отчета для документа Поступление товаров конфигурации Розница 2.2
- Переход с 1С:УПП на 1C:ERP: Задача переноса печатных форм в сжатые сроки. Конструктор печати
Найденные решения
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте") Тогда
ТабДок = Новый ТабличныйДокумент;
ТабДок.Вывести(СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", ТабДок);
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
КоллекцияПечатныхФорм2 = КоллекцияПечатныхФорм;
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
ПараметрыПечати = Новый Структура;
ПараметрыПечати.Вставить("ВыводитьУслуги",Ложь);
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПечатьТорг-12_СФ") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПечатьТорг-12_СФ", "ТОРГ-12 (Товарная накладная" + ?(ПараметрыПечати["ВыводитьУслуги"], "", " без услуг") + ")", СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЕсли;
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, СтруктураТипов, КоллекцияПечатныхФорм);
ПоказатьВ процедуре Печать() Дважды вывожу данные строки, для второй свои вставки вывода.
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЕсли;
СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати)
Сделал он даже ТОРГ12 не вывел, а вывел СФ.
(13)
Сделал выводит только макет СФ
Табл = СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", Табл);
Табл.ВывестиГоризонтальныйРазделительСтраниц();
СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати);
Сделал выводит только макет СФ
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте") Тогда
ТабДок = Новый ТабличныйДокумент;
ТабДок.Вывести(СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", ТабДок);
КонецЕсли;
Показать
(14)
А если сложилось так, что нужно одновременно печатать два табличных документа. В одном Масштаб печати 100, а в другом 101:
Пробовала так, но печатает только первый табличный документ, хотя данные для второго есть
Что-то не то я делаю. Подскажите кто чем может...
ТабДок = Новый ТабличныйДокумент;
ТабДок.Вывести(СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", ТабДок);
ТабДок.Вывести(СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте", "Счет-фактура", ТабДок);
А если сложилось так, что нужно одновременно печатать два табличных документа. В одном Масштаб печати 100, а в другом 101:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриемНаРаботу") Тогда
ТабДок = Новый ТабличныйДокумент;
ТабДок.Вывести(ПечатьДокументов(МассивОбъектов[0], "ПриемНаРаботу"));
ТабДок.МасштабПечати = 100;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриемНаРаботу", "Уведомление при приеме на работу", ТабДок);
Если ТЗд.Количество() > 0 Тогда
Сообщить("" + ТЗд.Количество());
ТабДокДоп = Новый ТабличныйДокумент;
ТабДокДоп.Вывести(ПечатьДокументов(МассивОбъектов[0], "ПриемНаРаботуДоп"));
ТабДокДоп.МасштабПечати = 101;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриемНаРаботуДоп", "Прием на работу Дополнение", ТабДокДоп);
КонецЕсли;
КонецЕсли;
ПоказатьПробовала так, но печатает только первый табличный документ, хотя данные для второго есть
Что-то не то я делаю. Подскажите кто чем может...
(22) Думаю, у Вас так ничего не получится. Выводя документы в коллекцию, мы на выходе всё равно получаем один MXL, содержащий все документы. Так что Вы ограничены возможностями многострочных MXL.
Поэтому, первый документ выводится, как обычно.
Второй и последующие - могут, к примеру, поменять ширины столбцов для своих строк - но на этом всё (более того, обратите внимание: особая ширина строк должна быть явным образом предусмотрена в макете, иначе очередной документ получит те же ширины столбцов, что и у первого документа).
Если очередной документ содержит параметры, не совпадающие с первым - он будет пропущен.
В Вашем же случае придётся забыть про штатный механизм и посмотреть в сторону составных PDF.
Вот пример из 1С:ИТС, его используйте как отправную точку:
Поэтому, первый документ выводится, как обычно.
Второй и последующие - могут, к примеру, поменять ширины столбцов для своих строк - но на этом всё (более того, обратите внимание: особая ширина строк должна быть явным образом предусмотрена в макете, иначе очередной документ получит те же ширины столбцов, что и у первого документа).
Если очередной документ содержит параметры, не совпадающие с первым - он будет пропущен.
В Вашем же случае придётся забыть про штатный механизм и посмотреть в сторону составных PDF.
Вот пример из 1С:ИТС, его используйте как отправную точку:
Код для формирования и печати составного PDF |
---|
// Создаем пакет
Пакет = Новый ПакетОтображаемыхДокументов;
// Документы, находящиеся в этом пакете, печатаются в 5 экземплярах
Пакет.КоличествоЭкземпляров = 5;
// Добавляем документы в пакет
ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент1, УникальныйИдентификатор);
ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент2, УникальныйИдентификатор);
// Добавляем вложенный пакет для третьего документа
ВложенныйПакет = Новый ПакетОтображаемыхДокументов;
ЭлементПакета3 = Пакет.Состав.Добавить();
ЭлементПакета3.Данные = ВложенныйПакет;
// Документ во вложенном пакете печатается в 2 экземплярах
ВложенныйПакет.КоличествоЭкземпляров = 2;
// Добавляем документ во вложенный пакет
ЭлементВложенногоПакета1 = ВложенныйПакет.Состав.Добавить();
ЭлементВложенногоПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент3, УникальныйИдентификатор);
// Печатаем пакет
Пакет.Напечатать();
Показать |
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот