Простой вывод табличного документа в общую форму "Печать документов", с использованием БСП

Публикация № 713041

Печать - Универсальные печатные формы

общая форма печать документов

27
Простой вывод табличного документа из модуля формы внешней обработки, в общую форму "Печать документов", с использованием БСП. Проверялось на версии БСП 2.2.5.30 в конфигурации УТ 11.1.

Всем доброго дня!

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

Есть несколько достаточно подробных статей на эту тему вывода в общую форму,  например, вот эта: тыц

В моем случае мне потребовалось из формы внешней обработки вывести результат работы  в табличный документ, сформированный там же, в модуле формы. 

Итак от слов к делу: 

  1. Создаем новую обработку и новую форму
  2.  Добавляем команду (например "Печать") создадим процедуру "Печать", которая будет выполняться при нажатии на кнопку, и перетаскиваем ее на форму.
  3. В модуле формы напишем следующий код, который и отвечает за вывод нашего табличного документа в общую форму "ПечатьДокументов": 
&НаКлиенте
Процедура Печать(Команда)
    // сформируем нужный нам табличный документ
    ТабДок = СформироватьТабДок();
    
    // создадим коллекцию печатных форм, в которую надо будет добавить нужный нам табличный документ
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("МакетТест");    
    // Добавляем в коллекцию (тип массив) сформированный Табличный документ
    КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок; 
    // если требуется устанавливаем параметры печати
    КоллекцияПечатныхФорм[0].Экземпляров=1;
    КоллекцияПечатныхФорм[0].СинонимМакета = "Макет тест";  // используется для формирования имени файла при сохранении из общей формы печати документов
    // .. и выводим стандартной процедурой БСП
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм,Неопределено,ЭтаФорма);

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

4. Вот и все.

Сам код формирования табличного документа оставляю за кадром. Но рабочий пример вывода можно скачать из этой публикации.

27

Скачать файлы

Наименование Файл Версия Размер
Пример вывода табличного документа в общую форму "Печать документов"
.epf 7,50Kb
08.12.17
11
.epf 7,50Kb 11 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. held88 48 06.09.18 07:11 Сейчас в теме
Огромное спасибо за этот кусок кода. То что давно искал.
2. dmitry1975 198 06.09.18 14:01 Сейчас в теме
3. ivnik 406 14.10.18 21:25 Сейчас в теме
Огромное Спасибо!!! Коротко и работает!
4. InJey 02.12.18 14:47 Сейчас в теме
Спасибо! Для начинающего очень помогает!
5. Autolans 03.12.18 15:09 Сейчас в теме
6. dmitry1975 198 03.12.18 15:31 Сейчас в теме
Пожалуйста! Сам иногда обращаюсь к своей заметке :)))) Забывается то, чем постоянно не пользуешься..
7. glorry 13.12.18 09:59 Сейчас в теме
Спасибо тебе!!!! Я никак не мог сам найти, а оказывается все было так просто!!!!!
8. dmitry1975 198 15.12.18 08:34 Сейчас в теме
(7) Пожалуйста! Рад, что помогло.
9. user1118259 23.01.19 13:54 Сейчас в теме
Спасибо. То что нужно. Теперь бы разобраться с этим, а то магия какая то.
10. dmitry1975 198 23.01.19 14:50 Сейчас в теме
(9) А что именно в этом непонятно?
11. user1118259 24.01.19 08:09 Сейчас в теме
Мне не понятно как это работает. Но мне бы хотелось самому попытаться разобраться с механизмом этого кода. Сейчас я просто вставил кусок кода и пользуюсь. Я начинающий. Это моя первая печатная форма, да еще и через расширение. Так что не удивляйтесь. Это просто положительные эмоции начинающего.
12. dmitry1975 198 24.01.19 16:56 Сейчас в теме
(11) В общем-то ничего особо сложного здесь нет.
Весь нужный для вывода печатной формы функционал, обеспечивает библиотека стандартных подсистем, которая реализована разработчиками 1С для облегчения программирования стандартных задач. Поэтому приведенный в статье код и выглядит вполне компактным.

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

Один из параметров функции - это коллекция печатных форм, которая представляет собой в конечном виде массив структур, т.е. элементами массива является структура с нужными значениями.
Коллекция формируется строкой кода
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("МакетТест");


После чего можно обратится к массиву по индексу и установить нужные данные, такие как табличный документ и количество экземпляров.
вот собственно и все.
Прикрепленные файлы:
13. demONx7 05.04.19 09:06 Сейчас в теме
Уф... Столько мучений, а ларчик просто открывался.

ОГРОМНЕЙШЕЕ тебе спасибо)))))
14. dmitry1975 198 05.04.19 20:04 Сейчас в теме
15. AlexeyT1978 78 29.04.19 16:01 Сейчас в теме
16. molot 280 11.06.19 13:37 Сейчас в теме
Всё гениальное просто! Спасибо! Сэкономил полчасика времени мне)
17. molot 280 11.06.19 13:57 Сейчас в теме
Чтобы заработала привязка файла к ссылке надо еще немножко дополнить:

// создадим коллекцию печатных форм, в которую надо будет добавить нужный нам табличный документ
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("СписокВодителей");
    // Добавляем в коллекцию (тип массив) сформированный Табличный документ
    КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок; 
	ТабДок.Область(1, , ТабДок.ВысотаТаблицы, ).Имя = "СписокВодителей";
    // если требуется устанавливаем параметры печати
    КоллекцияПечатныхФорм[0].Экземпляров = 2;
    КоллекцияПечатныхФорм[0].СинонимМакета = "Список водителей"; // используется для формирования имени файла при сохранении из общей формы печати документов
    // .. и выводим стандартной процедурой БСП
	ОбъектыПечати = Новый СписокЗначений;
	ОбъектыПечати.Добавить(ПараметрКоманды, "СписокВодителей");
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбъектыПечати);
Показать
Оставьте свое сообщение