Имя: Пароль:
1C
1С v8
Ширина колонок таблицы значений, добавляемой программной
0 ЯЧайник
 
23.05.16
10:30
Не получается установить ширину колонок (колонки остаются широкими)
В реквизитах формы имеется таблица значений ТЗ(без колонок). Программно создаю таблицу значений ТЗНов, добавляю колонки:
ТЗНов = Новый ТаблицаЗначений;
ТЗНов.Колонки.Добавить("НомерСтроки",,"№");
ТЗНов.Колонки.Добавить("Номенклатура",,"Номенклатура");
ТЗНов.Колонки.Добавить("НО",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,3)),"НО");
ТЗНов.Колонки.Добавить("СвобОст",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,3)),"СвобОст");
ТЗНов.Колонки.Добавить("Производство",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,3)),"Производство");
    
Далее добавляются колонки с заказами (т.е. их динамическое количество).

Затем колонка
ТЗНов.Колонки.Добавить("КО",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,3)),"Конечный остаток");

Далее создаю реквизиты формы
МассивРеквизитов.Очистить();
МассивРеквизитов1.Очистить();
Для Каждого Колонка ИЗ ТЗНов.Колонки Цикл
МассивТипов = Новый Массив;
МассивТипов.Добавить(Колонка.ТипЗначения);
НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(МассивТипов), "ТЗ",Колонка.Заголовок);
МассивРеквизитов.Добавить(НоваяКолонка);
МассивРеквизитов1.Добавить(НоваяКолонка1);
КонецЦикла;
    
ИзменитьРеквизиты(МассивРеквизитов);  
ИзменитьРеквизиты(МассивРеквизитов1);  

Далее создаю элементы на форме
//Создаем элементы на форме для отображения колонок
  ЭлементТЗ = Элементы.ТЗ;
  Элементы.ТЗ.АвтоМаксимальнаяШирина=Ложь;
  Элементы.ТЗ.МаксимальнаяШирина = 300;
  Элементы.ТЗ.Ширина = 300;
   Для Каждого Колонка ИЗ ТЗНов.Колонки Цикл
  НовыйЭлементФормы = Элементы.Вставить("ТЗ"+Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ);
   НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлементФормы.ПутьКДанным = "ТЗ." + Колонка.Имя;
    НовыйЭлементФормы.Заголовок = Колонка.Заголовок;
    Если Колонка.Заголовок = "НомерСтроки" Тогда
    НовыйЭлементФормы.Ширина = 1;
    НовыйЭлементФормы.РастягиватьПоГоризонтали = Ложь;                     НовыйЭлементФормы.АвтоМаксимальнаяШирина=Ложь;
НовыйЭлементФормы.МаксимальнаяШирина = 1;

ИначеЕсли Колонка.Заголовок = "Номенклатура" Тогда
            
НовыйЭлементФормы.Ширина = 30;
НовыйЭлементФормы.РастягиватьПоГоризонтали = Ложь;            НовыйЭлементФормы.АвтоМаксимальнаяШирина=Ложь;
НовыйЭлементФормы.МаксимальнаяШирина = 30;
        
ИначеЕсли Найти(Колонка.Имя,"ЗКЗ")>0 Тогда
НовыйЭлементФормы.Ширина = 7;
НовыйЭлементФормы.РастягиватьПоГоризонтали = Ложь;            НовыйЭлементФормы.АвтоМаксимальнаяШирина=Ложь;
НовыйЭлементФормы.МаксимальнаяШирина = 7;
        
Иначе
Если Колонка.Имя<>"КО" Тогда
НовыйЭлементФормы.Ширина = 10;                НовыйЭлементФормы.РастягиватьПоГоризонтали = Ложь;                НовыйЭлементФормы.АвтоМаксимальнаяШирина=Ложь;                НовыйЭлементФормы.МаксимальнаяШирина = 10;

Иначе
НовыйЭлементФормы.Ширина = 50;                НовыйЭлементФормы.РастягиватьПоГоризонтали = Истина;                НовыйЭлементФормы.АвтоМаксимальнаяШирина=Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Но колонки с заказами всё равно широкие (шире,чем например "НО").
Можно ли что-то с этим сделать?
Как сделать ширину всех колонок, кроме,например, последней колонки, фиксированной?
1 Timon1405
 
23.05.16
10:36
(0)
КоллекцияКолонокТаблицыЗначений (ValueTableColumnCollection)
Добавить (Add)
Синтаксис:

Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
последний параметр, не?
2 ЯЧайник
 
23.05.16
10:39
Сейчас пробую с этим параметром, база еще не загрузилась
3 ЯЧайник
 
23.05.16
10:49
так пропадает полоса прокрутки(((
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс