Имя: Пароль:
1C
1С v8
Управляемые формы. Дерево.
0 espanol
 
28.05.12
10:17
Если мы разместили на форму дерево, то его можно заполнить так:


   ДеревоЗН = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   Остатки.ПолучитьЭлементы().Очистить();
   
   Для Каждого СтрПУ Из ДеревоЗН.Строки Цикл
       
       СтрОстПУ = Остатки.ПолучитьЭлементы().Добавить();
       ЗаполнитьЗначенияСвойств(СтрОстПУ, СтрПУ);
       
       Для Каждого СтрВУ Из СтрПУ.Строки Цикл
           
           СтрОстПУ.Артикул     = СтрВУ.Артикул;
           СтрОстПУ.ЦенаПродажи = СтрВУ.ЦенаПродажи;
           СтрПУ.Данные         = СтрВУ.Данные;
           
           Если ЗначениеЗаполнено(СтрПУ.Данные) Тогда
               мКартинка = СтрПУ.Данные.Получить();
               Если ТипЗнч(мКартинка) = Тип("Картинка") Тогда
                   СтрОстПУ.Изображение = Новый Картинка();
                   СтрОстПУ.Изображение = мКартинка;
               КонецЕсли;
           Иначе
               СтрОстПУ.Изображение = БиблиотекаКартинок.Скрепка;
           КонецЕсли;
               
           Если ЗначениеЗаполнено(СтрВУ.Склад) Тогда
               
               СтрОстВУ                  = СтрОстПУ.ПолучитьЭлементы().Добавить();
               СтрОстВУ.Склад            = СтрВУ.Склад;
               СтрОстВУ.СвободныйОстаток = СтрВУ.СвободныйОстаток;
               СтрОстВУ.ИзНихВРезерве    = СтрВУ.ИзНихВРезерве;
               СтрОстВУ.ОстаткиНаСкладе  = СтрВУ.ОстаткиНаСкладе;
               
           КонецЕсли;
           
       КонецЦикла;
       
   КонецЦикла;




А вот если у нас есть табличная часть, которую помещаем на управляемую форму, делает отображение в виде дерева, хз как заполнить...



Для Каждого СтрПУ Из Результат.Строки Цикл
           Элементы.ТоварыИРаботы.ДобавитьСтроку();
           
           СтрОстПУ = Объект.ТоварыИРаботы.Добавить();
           СтрОстПУ.Номенклатура = СтрПУ.Номенклатура;
           //ЗаполнитьЗначенияСвойств(СтрОстПУ, СтрПУ);
           
           Для Каждого СтрВУ Из СтрПУ.Строки Цикл
               
                   СтрОстВУ              = СтрОстПУ.Строки.Добавить();
                   СтрОстВУ.Номенклатура = СтрВУ.СвязанныеНоменклатурыИРаботы;


СтрОстВУ              = СтрОстПУ.Строки.Добавить();
СтрОстВУ              = СтрОстПУ.Добавить();
через Элементы.ТоварыИРаботы.ДобавитьСтроку();
так не прокатывает... пишет что ошибка, подскажите пожалуйста как?
1 espanol
 
28.05.12
10:39
я так полагаю ТЧ нельзя сделать деревом, нужно хранить данные в ТЧ а на форму разместить дерево которые и надо заполнять?
2 espanol
 
28.05.12
10:41
притом это дерево не должно быть привязано к ТЧ?
3 nicxxx
 
28.05.12
10:44
добавляешь реквизит формы с типом ДеревоЗначений, кидаешь его на форму. заполнять надо в серверной процедуре. сначала делаешь вызов РеквизитФормыВЗначение(), после заполнения возвращаешь результат на клиента вызовом ЗначениеВРеквизитФормы()
4 espanol
 
28.05.12
10:53
(3) но вопрос был совсем другой...
5 espanol
 
28.05.12
10:54
(3) это итак известно, выше написано
6 nicxxx
 
28.05.12
10:55
(4) ты в пунктах 1 и 2 все верно написал
7 espanol
 
28.05.12
11:11
(6) ясно, спасибо
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн