Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 20:14

Вывод печатной формы

Автор SergSC, 15 авг 2017, 17:48

0 Пользователей и 1 гость просматривают эту тему.

SergSC

Добрый день!
УФ БП 3.0
Сделано расширение для конфигурации, в которой идет отбор по документам. В результате получаем ссылки на документы (счет, акт, СФ).
Не получается по ссылкам на документы вывести встроенную печатную форму счета, акта, СФ.
Подскажите как используя встроенный механизм и ссылку на документ отправить на печать документ?

SergSC

Неужели такая сложная задача?

oleg-x

Делаете также как и 1С, ищите где запускается печать и передаете в эту функцию/процедуру необходимые параметры и все распечатается.
Или вам готовый код нужен?
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

SergSC

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


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


ОбъектыПечати=Новый СписокЗначений;
ОбъектыПечати.Добавить(ДокументДляПечати,"Документ_1");
ПараметрыВывода=Новый Структура("ДоступнаПечатьПоКомплектно,ПараметрыОтправки");
ПараметрыВывода.ПараметрыОтправки=Новый Структура("Получатель,Текст,Тема");
Если СтрНайти(НРег(ИмяФормы),"счет")>0 Тогда
Документы.СчетНаОплатуПокупателю.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
КонецЕсли;
ТабДок=КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент;
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

В КоллекцияПечатныхФорм нет табличного документа

AIFrame

Принцип типовых ПФ в 4-х пунктах:
1. В модуле объекта - определить тип макета. Создать пустую структуру - отправить в функцию для заполнения структуры с указанием макета.
2. Через экспортную функцию модуля этого же объекта или общего модуля получить структуру с данными для заполнения шапки\подвала. Получить назад заполненную структуру.
3. Отправить эту структуру в экспортную функцию в модуле этого же объекта или общего модуля. Получить назад табдок.
4. ТабДок.Показать();

SergSC

Цитата: AIFrame от 16 авг 2017, 18:06
Принцип типовых ПФ в 4-х пунктах:
1. В модуле объекта - определить тип макета. Создать пустую структуру - отправить в функцию для заполнения структуры с указанием макета.
2. Через экспортную функцию модуля этого же объекта или общего модуля получить структуру с данными для заполнения шапки\подвала. Получить назад заполненную структуру.
3. Отправить эту структуру в экспортную функцию в модуле этого же объекта или общего модуля. Получить назад табдок.
4. ТабДок.Показать();
В моем коде есть все что Вы описали, но табличный документ не возвращается

Kironten

Не
НоваяСтрока.ИмяВРЕГ="СЧЕТ ЗАКАЗ";
а
НоваяСтрока.ИмяВРЕГ="СЧЕТЗАКАЗ";

SergSC

Цитата: Kironten от 17 авг 2017, 09:41
Не
НоваяСтрока.ИмяВРЕГ="СЧЕТ ЗАКАЗ";
а
НоваяСтрока.ИмяВРЕГ="СЧЕТЗАКАЗ";
Исправил. Но заметил такой момент, в модуле ОбщегоНазначенияБП
ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено) Экспорт
КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент
Табличный документ уже присутствует. Мне тогда как его сформировать в моем коде?

Kironten

Цитата: SergSC от 17 авг 2017, 09:58
Но заметил такой момент, в модуле ОбщегоНазначенияБП
ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено) Экспорт
Ну заметили, и что?

Цитата: SergSC от 17 авг 2017, 09:58
КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент
Табличный документ уже присутствует. Мне тогда как его сформировать в моем коде?
В смысле сформировать?
Он уже сформирован и заполнен в этой процедуре:
Документы.СчетНаОплатуПокупателю.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);

SergSC

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


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


ОбъектыПечати=Новый СписокЗначений;
ОбъектыПечати.Добавить(ДокументДляПечати,"Документ_1");
ПараметрыВывода=Новый Структура("ДоступнаПечатьПоКомплектно,ПараметрыОтправки");
ПараметрыВывода.ПараметрыОтправки=Новый Структура("Получатель,Текст,Тема");
Если СтрНайти(НРег(ИмяФормы),"счет")>0 Тогда
Обработки.ПечатьСчетаНаОплату.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
//Документы.СчетНаОплатуПокупателю.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
КонецЕсли;
Возврат КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент;

КонецФункции


Добавлено: 17 авг 2017, 10:47


Цитата: Kironten от 17 авг 2017, 10:10
Цитата: SergSC от 17 авг 2017, 09:58
Но заметил такой момент, в модуле ОбщегоНазначенияБП
ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено) Экспорт
Ну заметили, и что?

Цитата: SergSC от 17 авг 2017, 09:58
КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент
Табличный документ уже присутствует. Мне тогда как его сформировать в моем коде?
В смысле сформировать?
Он уже сформирован и заполнен в этой процедуре:
Документы.СчетНаОплатуПокупателю.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);

Как я писал в предыдущем сообщение, нужно использовать обработку, потому что в процедуре Документы.СчетНаОплатуПокупателю.Печать
Табличная часть не заполняется

Похожие темы (5)

Рейтинг@Mail.ru

Поиск