Имя: Пароль:
1C
1С v8
Вопрос по ширине колонок
0 dsdred
 
18.06.13
12:52
У меня стоит задача по документу сохранять настройки ширины и видимость колонок.
В документе несколько таблиц.

Первым делом я собрал дерево из таблиц и колонок, но вод подтянуть ширину не получается. Подскажите пожалуйста напровление для копания.

Код построения дерева:

МассивИменМетаданных = Новый Массив();

   МассивИменМетаданных.Добавить("Документ.НазваниеДокумента.");
       
   // Таблица значений, содержащая таблицы указанного объекта.
   Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
   //Создать дерево значений
   Дерево = Новый ДеревоЗначений();
   Дерево.Колонки.Добавить("Поле1",Новый ОписаниеТипов(Новый ОписаниеТипов("Булево")),"Пометка",10);
   Дерево.Колонки.Добавить("Поле2",Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150)),"Наименование колонки",30);
   Дерево.Колонки.Добавить("Поле3",Новый ОписаниеТипов(Новый ОписаниеТипов("Булево")),"Видимость",10);
   Дерево.Колонки.Добавить("Поле4",Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(10,2)),"Ширина",15);
   Дерево.Колонки.Добавить("Поле5",Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150)),"Родитель",30);


   Для Каждого Таблица Из Таблицы Цикл
       
       Если Таблица.Назначение<>"Основная" Тогда    
               
           ПоляТаблицы = Таблица.Поля;

           
           //Создать элемент (узел) верхнего уровня
           НовСтрДерева = Дерево.Строки.Добавить();
           ИмяТабл=НГО_МодульОбщегоНазначения.ОтрезаемЛишнее("Документ.НазваниеДокумента.","",СокрЛП(Таблица.ИмяТаблицы));

           НовСтрДерева.Поле1 = Истина;
           НовСтрДерева.Поле2 = ИмяТабл;
           НовСтрДерева.Поле3 = Истина;
           НовСтрДерева.Поле4 = 0;
           НовСтрДерева.Поле5 = "";
                   
           Для Каждого Поле Из ПоляТаблицы Цикл

               //Создать подчиненный элемент (узел) к строке "НовСтрДерева"
               НовПодчСтрДерева = НовСтрДерева.Строки.Добавить();
               НовПодчСтрДерева.Поле1 = Истина;
               НовПодчСтрДерева.Поле2 = Поле.ИмяПоля;
               НовПодчСтрДерева.Поле3 = Истина; <-Видимость Колонки должна попадать сюда
               НовПодчСтрДерева.Поле4 = 0;  <-Ширина Колонки должна попадать сюда
                           НовПодчСтрДерева.Поле5 = ИмяТабл;

           КонецЦикла;    
               
           ИндексыТаблицы = Таблица.Индексы;

           Для Каждого Индекс Из ИндексыТаблицы Цикл

               // Просмотр свойств индекса.

           КонецЦикла;    
       КонецЕсли;
   КонецЦикла;


   ЭлементыФормы.Настройки.Значение=Дерево;
   ЭлементыФормы.Настройки.СоздатьКолонки();
   //ЭлементыФормы.Настройки.Поле5.Видимость=Ложь;
1 dsdred
 
18.06.13
13:46
Нет предложений?