С присоединением табличных документов в своем формате в 1С «всё плохо»

Пришлось «помучаться» для того, чтобы в подвале отчета вывести два табличных документа, полученных выводом через СКД, рядом (для экономии пространства):

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

Поэтому пришлось пока так, по отдельным ячейкам копировать, может быть как-нибудь потом придумаю что-то более универсальное, чтобы сохранялась ширина колонок:

	Для Стр = 1 по ДокументРезультатДоп2.ВысотаТаблицы Цикл
		Для Кол = 1 по ДокументРезультатДоп2.ШиринаТаблицы Цикл
			Если Стр <=3 Тогда СдвигКол = 2 Иначе СдвигКол = 0 КонецЕсли;
			ОбластьПриемник = ДокументРезультат.Область(ВысотаСохраненная + 0 + Стр, 4 + Кол + СдвигКол);
			ОбластьИсходная = ДокументРезультатДоп2.Область(Стр, Кол);
			Если Стр =5 И Кол = 2 Тогда ОбластьПриемник.ШиринаКолонки = 40; КонецЕсли;
			ДокументРезультат.ВставитьОбласть(ОбластьИсходная, ОбластьПриемник);
		КонецЦикла;
	КонецЦикла;

Здесь 40 — ширина поля комментарий. Высота сохраненная — номер строки вывода подвала отчета (куда и выводятся эти две таблицы). Все это выводится в макет ДокументРезультат.

Можно было бы копировать ширину колонок из табличного документа 2, но в первой таблице на уровне «Оплаты» одно количество колонок (одна), а на уровнях ниже другое (две). Хотя общая ширина у них одинаковая.

Зато сэкономили клиенту бумагу и Green Peace нас одобряет!

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *