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

печатная форма акт+с\ф на одном листе 8.3

Автор kzman, 01 сен 2015, 09:22

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

Дмитрий@

Если вы хотите использовать стандартные механизмы, тогда придется их дорабатывать, сомневаюсь что там есть возможность которая вам нужна. А может проще написать внешнюю печатную форму.

kzman

я как раз ее и пытаюсь реализовать

Дмитрий@

Тогда непонятно почему вы не можете использовать для объединения табличных документов,то что я написал раньше.
Видимо тогда я что- то недопонимаю. Можно поподробней, откуда идет вызов, при помощи какого типа команд (Параметризуемые или нет), какие процедуры используете, где эти процедуры находятся,скрин процедур.

kzman

делал как в роликах, которых полно на ютубе.
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
все стандартными средствами, копи-паст. Внешняя форма, насколько понимаю, формируется через эту процедурку и минимум с данными параметрами.

Дмитрий@

Я не знаю что за ролики на ютубе. Вы определитесь при помощи каких процедур собираетесь это делать, и скиньте код, тогда уже будет понятно о чем говорить.

kzman

Код большой, первые 5 процедур\функций, стандартные - описание команд, регистрация и т.д, ну и процедурка печать соответственно. В печате вывожу:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, отладка = ложь) Экспорт

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

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



КонецПроцедуры

далее идут типовые процедурки выводящие акт и с\ф, типа: ПечатьР1(МассивОбъектов, ОбъектыПечати, Отладка) и ПечатьСчетаФактуры(МассивОбъектов, ОбъектыПечати, Ложь), кажется тут причина и зарыта...

Дмитрий@

ЦитироватьПечатьР1(МассивОбъектов, ОбъектыПечати, Отладка)
ПечатьСчетаФактуры(МассивОбъектов, ОбъектыПечати, Ложь)
Эти функции возвращают табличный документ. А где происходит вывод документов на печать.

kzman

Мне ведь необходимо их склеить и после этого вывести, а печать уже через общий модуль(ОбщийМодуль.ДополнительныеОтчетыИОбработки) и главным образом ругается на Процедура ПечатьПоВнешнемуИсточнику(Ссылка, ПараметрыИсточника, КоллекцияПечатныхФорм,
ОбъектыПечати, ПараметрыВывода) Экспорт

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
Возврат;
КонецЕсли;

КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды);

ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений;

ВнешняяОбработкаОбъект = ПолучитьОбъектВнешнейОбработки(Ссылка);

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

ВнешняяОбработкаОбъект.Печать(
ПараметрыИсточника.ОбъектыНазначения,
КоллекцияПечатныхФорм,
ОбъектыПечати,
ПараметрыВывода);

// Проверим, все ли макеты были сформированы
Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
Если Стр.ТабличныйДокумент = Неопределено Тогда
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
Стр.ИмяМакета);
ВызватьИсключение(ТекстСообщенияОбОшибке);
КонецЕсли;

Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
КонецЦикла;

КонецПроцедуры

я реально блужу по параметрам. Можно было бы слить это в единый макет, врубить одну обработку в другую и вроде бы как норм...мне так кажется, но все же... этот вариант же вполне возможен, с двумя макетами

Дмитрий@

Цитата: kzman от 03 сен 2015, 14:15
Мне ведь необходимо их склеить и после этого вывести, а печать уже через общий модуль(ОбщийМодуль.ДополнительныеОтчетыИОбработки) и главным образом ругается на Процедура ПечатьПоВнешнемуИсточнику(Ссылка, ПараметрыИсточника, КоллекцияПечатныхФорм,
ОбъектыПечати, ПараметрыВывода) Экспорт

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
Возврат;
КонецЕсли;

КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды);

ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений;

ВнешняяОбработкаОбъект = ПолучитьОбъектВнешнейОбработки(Ссылка);

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

ВнешняяОбработкаОбъект.Печать(
ПараметрыИсточника.ОбъектыНазначения,
КоллекцияПечатныхФорм,
ОбъектыПечати,
ПараметрыВывода);

// Проверим, все ли макеты были сформированы
Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
Если Стр.ТабличныйДокумент = Неопределено Тогда
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
Стр.ИмяМакета);
ВызватьИсключение(ТекстСообщенияОбОшибке);
КонецЕсли;

Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
КонецЦикла;

КонецПроцедуры

я реально блужу по параметрам. Можно было бы слить это в единый макет, врубить одну обработку в другую и вроде бы как норм...мне так кажется, но все же... этот вариант же вполне возможен, с двумя макетами
Получается что эта функция, печатает внешнюю печатную форму для каждого объекта, при помощи метода "Печать", который находится в модуле объекта, а эти методы для каждого объекта одинаковые или разные?

Добавлено: 03 сен 2015, 19:01


Эти функции ПечатьР1(МассивОбъектов, ОбъектыПечати, Отладка), ПечатьСчетаФактуры(МассивОбъектов, ОбъектыПечати, Ложь), возвращают табличный документ. В принципе объединить их можно, только сможет метод "Печать" внутри внешней распечатать их?

Теги:

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

Рейтинг@Mail.ru

Поиск