Объединение табличных документов

Рустем 9 1

Объединение и соединение табличных документов

Проблема соединения (объединения) табличных документов начинается тогда, когда табличный документ имеет блоки строк с разной шириной колонок. Сейчас почти все печатные формы на УФ имеют блоки разной ширины колонок - так сказать разных форматов.
За формат блока строк отвечает программно процедура области ячеек табл. документа СоздатьФорматСтрок()
Интерактивно ее можно вызвать, если вы выделите в табличном документ строки и раздвинете любую колонку - интерактивный вопрос о создании нового формата строк не замедлит появиться на экране.
Особенности использования форматированных строк описаны на ИТС Особенности работы с форматами строк табличного документа

https://its.1c.ru/db/metod8dev#content:2227:hdoc:_top:создатьформатстрок

Но из голой теории мало что понятно - не хватает картинок, примеров на реальных макетах....
В справке 1С - предоставлен пример такой, который отрабатывает присоединяемый табл. документ, у которого один (!) формат строк на весь макет....

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

Поможет алгоритм вот отсюда МИСТА: Объединение печатных форм с разным количеством колонок

Автор алгоритма потрудился разделить присоединяемый табл.документ на все блоки разных форматов строк - присоединил каждый по отдельности. Ему огромное спасибо за предоставленный алгоритм!

Я через расширение добавил алгоритм соединения двух печатных форм в одном табличном документе - расходный ордер и задание на отбор - удобно при учете адресного хранения товаров в режиме справочного размещения по ячейкам.

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

Поясню в чем нюанс. Сначала я выводил так табл. документы так:

ТабДок1 = ПечатьРасходногоОрдераНаТовары(МассивОбъектов, ОбъектыПечати);
        ТабДок2 = Обработки.ДопПечать_ПечатьРасходногоОрдераИЗаданияНаОтбор.СформироватьРасходныйОрдерИЗаданиеНаОтбор(МассивОбъектов, ОбъектыПечати, ПараметрыПечати);
        
        ТабДок = Новый ТабличныйДокумент;
            
        ТабДок.Вывести(ТабДок1);
        ТабДок.Вывести(ТабДок2);

В таком случае два макета садятся в один - с первого взгляда красиво, но в формат А4 "Портрет" уже не влезает - колонки изменяют ширину. По отдельности каждый макет влезает в А4.

Пришлось воспользоваться алгоритмом соединения табл. документов через СоздатьФорматСтрок() - результат положительный и представлен на скриншотах.

2021-12-29_18-44-59.png
2021-12-29_18-44-30.png

Всем добра!
мой яндекс-дзен-канал

0

Рекомендации

См. также

Заполнение табличного документа

ТабличныйДокументПоДвоичнымДанным (БСП)

РаспечататьТабличныеДокументы (БСП)

Как загрузить в табличную часть одного документа табличную часть другого документа?

КопируемыеСвойстваТабличногоДокумента (БСП)

Печать БСП по табличному документу

Вставка рисунка в табличный документ без изменения макета

Пересчет сумм в табличной части документа

ПроверитьВыводТабличногоДокумента (БСП)

TurboConf - расширение Конфигуратора 1С

Комментарии

Модератору