РФ.ПолучитьШиринуКолонки - неадекватные данные

Автор Злоп, Вчера в 22:37

« назад - далее »

Злоп

Первый раз пробую использовать сабж.
ТЗ на форме, штатно - все нормально.
Пытаюсь получить ширину колонок (кнопка с процедурой) - получаю какие-то неадекватные значения, не соответствующие видимому состоянию. В чем-то есть секрет, что-то я делаю не так?

//********************************************************************************************************
Процедура ПолучитьШиринуКолонки()
	
	РасшФ = СоздатьОбъект("РасширениеФормы");
	Колонка = ТЗФорма.ТекущаяКолонка(); НомерКолонки = ТЗФорма.ПолучитьПараметрыКолонки(Колонка);
	Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки);
	Сообщить(""+НомерКолонки+", "+Колонка+": "+Ширина);
	
КонецПроцедуры // ПолучитьШиринуКолонки()

Харлампий Дымба

Для Сервис::ВысотаСтрокиТаблицы() есть
<ТипВозврата> - тип возвращаемого значения. Может принимать следующие значения:
1 - возвращается значение в миллиметрах,
2 - возвращается значение в экранных пикселях,
3 - возвращается значение во внутренних юнитах 1С.
Может для РасширениеФормы::ПолучитьШиринуКолонки значение возвращается в одной из этих единиц?

АЛьФ

Нумерация колонок в этом методе начинается с нуля.

Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки - 1);

Злоп

Цитата: АЛьФ от Сегодня в 13:58Нумерация колонок в этом методе начинается с нуля.
Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки- 1);

Спасибо, выты - настоящий Самоделкин!
Разобрался!
1. Нумерация с нуля
2. Неадекватно работает при наличии невидимых колонок, если положиться на "как есть".
Например, если первыми в ТЗ идут 5ть невидимых колонок, то НомерКолонки возвращается №6, а визуально колонка - первая, и начинается галиматья в полуаемых ширнах колонок (в т.ч. и ширина=0). Поэтому, если в начале таблицы стоит N невидимых колонок, то следует параметр "номер колонки" вычислять как НомерКолонки-1-N. В случае, если видимые и невидимые колонки идут вперемешку - вычисление номера колонки для параметра метода будет посложнее. Поэтому: все невидимые колонки что возможно смещаем в конец колонок таблиц, далее - по обстоятельствам. При использовании ПланаРаскраски, когда положение колонки раскраски несущественно - её тоже кладем в конец таблицы. Если ПланРаскраски не используется, то для получения вычисления ширины колонки пишем код с учетом видимости и положения колонок подкраски.