КОПИЛКА: здесь всякие редкости, полезности, тонкости, неочевидности.

Автор Злоп, 03 ноября 2024, 01:02

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

Злоп

ОСОБЕНОСТИ ВЫГРУЗКИ ПУСТОЙ ИТЗ

Совсем пустую ТЗ можно выгрузить.
А совсем пустую ИТЗ - нельзя...

Процедура Сформировать()

	ТЗбуф = СоздатьОбъект("ТаблицаЗначений");
	ТЗ = СоздатьОбъект("ТаблицаЗначений");
	ИТЗ = СоздатьОбъект("ИндексированнаяТаблица");
	ТЗ.Выгрузить(ТЗБуф); // ОК
	ИТЗ.Выгрузить(ТЗБуф); // ЕГГ _ТЕСТПУСТОЙТЗ.ERT(8)}: Отсутствуют колонки!

КонецПроцедуры // Сформировать()

Злоп

ОСОБЕННОСТИ ВЫЗОВА ОткрытьПодбор()
Если в первом параметре ("тип.вид") указать что-либо, что не соответствует синтаксису вызова, то 1С трактует это как вид справочника.

ОткрытьПодбор("Справочник.Контрагенты",...) - ок
ОткрытьПодбор("Документ",...), - ...(508)}: Неверный вид справочника Документ
ОткрытьПодбор("Чтото",...), - ...(508)}: Неверный вид справочника чтото
ОткрытьПодбор("Номенклатура",...), - ок, интерпретируется как Справочник.Номенклатура

Злоп

ОКРУГЛЕНИЕ ЧИСЕЛ ПРИ ИСПОЛЬЗОВАНИИ ФУНКЦИИ ФОРМАТ()
Форматное представление числа зависит от режима округления ("1.5 до 2" или "1.5 до 1"), установленного в свойствах конфигурации.
Формат(123.4755555555555,"Ч.2") - вернет "123.47" или "123.48"
Формат(125.5,"Ч3.0") - вернет "125" или "126"
.. ну и т.д.

Злоп

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

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

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

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

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

В случае, если видимые и невидимые колонки идут вперемешку - вычисление номера колонки для параметра метода будет посложнее. Поэтому: все невидимые колонки что возможно смещаем в конец колонок таблицы, далее - по обстоятельствам. При использовании ПланаРаскраски, когда положение колонки раскраски несущественно - её тоже кладем в конец таблицы. Если ПланРаскраски не используется, то для получения вычисления ширины колонки пишем код с учетом видимости и положения колонок подкраски, которые делаются невидимыми.