Последние сообщения

#11
7.7 / Re: КОПИЛКА: здесь всякие редк...
Последний ответ от Злоп - 19 марта 2026, 19:45
FORMEX, ПОЛУЧЕНИЕ ШИРИНЫ КОЛОНОК (ТЗ,ТЧ документов, МсЧ списков)
Первоначальное обсуждение https://forum.dorex.pro/index.php?topic=343.0

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

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

Метод неадекватно/неожиданно возвращает при наличии в таблице невидимых колонок, если положиться на использование метода "как есть".

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

В случае, если видимые и невидимые колонки идут вперемешку - вычисление номера колонки для параметра метода будет посложнее. Поэтому: все невидимые колонки что возможно смещаем в конец колонок таблицы, далее - по обстоятельствам. При использовании ПланаРаскраски, когда положение колонки раскраски несущественно - её тоже кладем в конец таблицы. Если ПланРаскраски не используется, то для получения вычисления ширины колонки пишем код с учетом видимости и положения колонок подкраски, которые делаются невидимыми.
#12
FormEx / Re: РФ.ПолучитьШиринуКолонки -...
Последний ответ от Злоп - 19 марта 2026, 19:23
Цитата: АЛьФ от 19 марта 2026, 13:58Нумерация колонок в этом методе начинается с нуля.
Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки- 1);

Спасибо, выты - настоящий Самоделкин!
Разобрался!
1. Нумерация с нуля
2. Неадекватно работает при наличии невидимых колонок, если положиться на "как есть".
Например, если первыми в ТЗ идут 5ть невидимых колонок, то НомерКолонки возвращается №6, а визуально колонка - первая, и начинается галиматья в полуаемых ширнах колонок (в т.ч. и ширина=0). Поэтому, если в начале таблицы стоит N невидимых колонок, то следует параметр "номер колонки" вычислять как НомерКолонки-1-N. В случае, если видимые и невидимые колонки идут вперемешку - вычисление номера колонки для параметра метода будет посложнее. Поэтому: все невидимые колонки что возможно смещаем в конец колонок таблиц, далее - по обстоятельствам. При использовании ПланаРаскраски, когда положение колонки раскраски несущественно - её тоже кладем в конец таблицы. Если ПланРаскраски не используется, то для получения вычисления ширины колонки пишем код с учетом видимости и положения колонок подкраски.
#13
FormEx / Re: Хотелка: АтрибутФормы.Выпо...
Последний ответ от item - 19 марта 2026, 14:00
Дело было не в бобине.
ТурбоМД, как оказалось, у меня не той версии.
#14
FormEx / Re: РФ.ПолучитьШиринуКолонки -...
Последний ответ от АЛьФ - 19 марта 2026, 13:58
Нумерация колонок в этом методе начинается с нуля.

Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки - 1);
#15
FormEx / Re: РФ.ПолучитьШиринуКолонки -...
Последний ответ от Харлампий Дымба - 18 марта 2026, 22:58
Для Сервис::ВысотаСтрокиТаблицы() есть
<ТипВозврата> - тип возвращаемого значения. Может принимать следующие значения:
1 - возвращается значение в миллиметрах,
2 - возвращается значение в экранных пикселях,
3 - возвращается значение во внутренних юнитах 1С.
Может для РасширениеФормы::ПолучитьШиринуКолонки значение возвращается в одной из этих единиц?
#16
FormEx / РФ.ПолучитьШиринуКолонки - неа...
Последний ответ от Злоп - 18 марта 2026, 22:37
Первый раз пробую использовать сабж.
ТЗ на форме, штатно - все нормально.
Пытаюсь получить ширину колонок (кнопка с процедурой) - получаю какие-то неадекватные значения, не соответствующие видимому состоянию. В чем-то есть секрет, что-то я делаю не так?

//********************************************************************************************************
Процедура ПолучитьШиринуКолонки()
	
	РасшФ = СоздатьОбъект("РасширениеФормы");
	Колонка = ТЗФорма.ТекущаяКолонка(); НомерКолонки = ТЗФорма.ПолучитьПараметрыКолонки(Колонка);
	Ширина = РасшФ.ПолучитьШиринуКолонки("ТЗФорма",НомерКолонки);
	Сообщить(""+НомерКолонки+", "+Колонка+": "+Ширина);
	
КонецПроцедуры // ПолучитьШиринуКолонки()
#17
Размышлизмы / Re: Личное: Антон Азанов aka D...
Последний ответ от alyuev - 18 марта 2026, 18:07
Печально. Сильный был программист... Сможет ли кто продложить его дело?
#18
7.7 / Re: Кеширование запроса SQLite...
Последний ответ от MWW_Ruza - 16 марта 2026, 20:36
 Ну, с автономными файлами, проверю...
А DFS это же вроде только серверная фича? Или в 11 винде тоже её добавили?
#19
7.7 / Re: КОПИЛКА: здесь всякие редк...
Последний ответ от Злоп - 16 марта 2026, 20:24
ОКРУГЛЕНИЕ ЧИСЕЛ ПРИ ИСПОЛЬЗОВАНИИ ФУНКЦИИ ФОРМАТ()
Форматное представление числа зависит от режима округления ("1.5 до 2" или "1.5 до 1"), установленного в свойствах конфигурации.
Формат(123.4755555555555,"Ч.2") - вернет "123.47" или "123.48"
Формат(125.5,"Ч3.0") - вернет "125" или "126"
.. ну и т.д.
#20
7.7 / Re: Кеширование запроса SQLite...
Последний ответ от Злоп - 16 марта 2026, 20:16
С которого подключаются
Это всего лишь один из вариантов
Также посмотреть качество сетки.