Вывод табличных документов в общую форму "Печать документов" (УФ)
Разработка - Работа с интерфейсом
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Зачастую, создавая какой-нибудь отчет на управляемых формах, необходимо выводить получившийся табличный документ в приглядную для пользователя форму. Тут возникает вопрос: выводить в форму отчета или в какую то общую форму. Хочу поделиться своим решением.
Создал внешний отчет, в нем создал макет, вывожу этот макет в табличный документ, обращаюсь к процедуре ТабДокумент.Показать()
Получил не очень лицеприятную печатную форму.
С мыслями, раз уж есть общая форма и в обычном интерфейсе можно было любые табличные документы выводить, то не могли разработчики 1С пойти на регресс, решил разобраться, как все таки вывести в общую форму "печать документов" табличный документ.
В общем модуле "УправлениеПечатьюКлиент" нашел процедуру ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов)
// Открывает форму ПечатьДокументов для коллекции табличных документов.
//
// Параметры:
// КоллекцияПечатныхФорм - Массив - коллекция описаний печатных форм, см. НоваяКоллекцияПечатныхФорм;
// ОбъектыПечати - СписокЗначений - значение - ссылка на объект;
// представление - имя области в которой был выведен объект (выходной параметр);
// ВладелецФормы - УправляемаяФорма - форма, из которой выполняется печать.
//
Процедура ПечатьДокументов(КоллекцияПечатныхФорм, Знач ОбъектыПечати = Неопределено, ВладелецФормы = Неопределено) Экспорт
Если ОбъектыПечати = Неопределено Тогда
ОбъектыПечати = Новый СписокЗначений;
КонецЕсли;
КлючУникальности = Строка(Новый УникальныйИдентификатор);
ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
ПараметрыОткрытия.Вставить("ОбъектыПечати", ОбъектыПечати);
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
КонецПроцедуры
Оставалось только правильно параметры передать. В итоге в моем внешнем отчете в модуле формы две функции:
1) Формирует табличный документ
2) Выводит табличный документ в общую форму.
&НаСервере
Функция ВывестиВОбщуюФормуПечатьДокументовНаСервере()
//Создаем табличный документ, выводим в него все, что нам необходимо.
ТабДокумент = Новый ТабличныйДокумент;
Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
ОблШапка = Макет.ПолучитьОбласть("Шапка");
ТабДокумент.Вывести(ОблШапка);
Возврат ТабДокумент;
КонецФункции
&НаКлиенте
Процедура ВывестиВОбщуюФормуПечатьДокументов(Команда)
ТабДокумент = ВывестиВОбщуюФормуПечатьДокументовНаСервере();
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет");
ПечатнаяФорма.СинонимМакета = "Макет";
ПечатнаяФорма.ТабличныйДокумент = ТабДокумент;
ПечатнаяФорма.ИмяФайлаПечатнойФормы = "Макет";
ОбластиОбъектов = Новый СписокЗначений;
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
ТабДокумент.показать();
КонецПроцедуры
Вступайте в нашу телеграмм-группу Инфостарт