Удаление части объединенной области в табличном документе
Титков О.
19.06.2017
27 понравилось
308 просмотров

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

Доработки 1С часто предполагают изменение печатных форм и отчетов. При программной обработке табличного документа может возникнуть ситуация, когда надо разбить область, объединенную на стадии создания макета в конфигураторе. Например, у нас есть макет, в котором в шапке таблицы есть объединенная область. В данном случае это область "Данные". И необходимо, например по некоторому условию, отключить вывод колонки "На конец". Это особенно актуально для отчетов на СКД, когда не хочется ради одной колонки писать поэлементный вывод отчета.

Склад

Данные

Ответственный

На начало

На середину

На конец

ФИО

Подпись

 

 

 

 

 

У вас есть вопрос, нужна помощь консультанта?

Оставьте номер телефона и мы перезвоним!

 

 

 

 

 

 

 

 

 Проблема в данном случае в том, как корректно обрезать поле " Данные", чтобы колонка " Ответственный" сместилась влево как одно целое. Здесь есть 2 варианта:

 Можно управлять областями по их координатам, например:

             

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

Дело в том, что ТабДок.НайтиТекст("Данные") вернет нам область ячеек с координатами (1,2,1,2), а не (1,2,1,4), как можно было бы надеяться. В общем случае, сколько бы ячеек не было объединено в макете, НайтиТекст() и НайтиЗначение() всегда вернут область с координатами верхней левой ячейки этого объединения. И метод Разъединить(), примененный к такой области, не даст нужного результата, т.к. с точки зрения платформы эта область не объединена. То есть мы сможем удалить лишь всю область целиком. Поэтому нам придется создать ей на замену аналогичную область, но с нужными нам размерами. Например:

                                                                             

Эта статья помогла вам?

Теги:

Комментарии ( 0 )

Оставить комментарий