Имя: Пароль:
1C
1C 7.7
v7: Формекс Дерево
0 monsterZE
 
02.02.13
13:21
Тыркаюсь с сабжем..
Вывести - вывел, а вот удалять правильно, что-то не получается.
Удаляет целиком узел.
Оно вобще может строки внутри узла удалять?
Два уровня.
..думал оно полность тз копирует - каждый уровень своя тз.. но чет видимо не так.. или не так, как я думаю =)
-- заполняю вот так
           НоваяКатегория = СпрНалОбязДокКлиент.КатегДокумента;
           
           СтрокаВТЗ  = ПолучитьПустоеЗначение();
           Если ТабДок.НайтиЗначение(НоваяКатегория,СтрокаВТЗ,"Категория")=0 Тогда
               // если нет - создаем первый уровень
               ТабДок.НоваяСтрока();
               ТабДок.Ветка        = ЗначениеИзСтрокиВнутр(гСтруктураТЗ);
               ТабДок.Категория    = НоваяКатегория;
           Иначе
               // если нет - позиц. на ветке
               ТабДок.ПолучитьСтрокуПоНомеру(СтрокаВТЗ);
           КонецЕсли;  
           
           // второй уровень          
           ТабДок.Ветка.НоваяСтрока();
           ТабДок.Ветка.Категория    = НоваяКатегория;
           ТабДок.Ветка.Ветка        = ЗначениеИзСтрокиВнутр(гСтруктураТЗ);
           ТабДок.Ветка.ВидДокумента = СпрНалОбязДокКлиент.ВидДокумента;
           ТабДок.Ветка.Статус       = СпрНалОбязДокКлиент.СтатусДокумента;
1 monsterZE
 
02.02.13
13:23
Что нужно: Сделал в тз работу со справочником. Добавлять элементы, удалять, менять значение.
Народ говорит - неплохо бы "свернуть" списки, чтобы разворачивать категорию по необходимости.
Полез посмотреть на дерово. =)
2 monsterZE
 
02.02.13
13:25
вот так удаляю:
   ТСтр = гАтрФормыТЗ.ТекущаяСтрокаДерева();
   ТабДок.УдалитьСтроку(ТСтр);  
   гАтрФормыТЗ.ОбновитьДерево();
3 monsterZE
 
02.02.13
16:00
Чет сегодня совсем глухо.. =) выходной?
Список значений с ВыбратьЗначение с этим деревом тоже не уживается?
4 monsterZE
 
03.02.13
22:41
Народ, неужели никто не пользовал сабж, для редактирования элементов?
5 КонецЦикла
 
03.02.13
22:58
А при этом какая все же текущая строка?
Сморел?
6 monsterZE
 
03.02.13
23:20
(5) "при этом" - при удалении?
смотрел. например 3/1
удаляется целиком 3 узел
7 monsterZE
 
03.02.13
23:22
и что за хрень со списком значений? оно не может спозиционироваться? бо у меня его не видно при выводе и далее 1с остается в постоянной "обработка" и уже ни на что не реагирует.
8 monsterZE
 
03.02.13
23:23
смотрю темы на 1cpp, но попадается в основном вывод и раскраска.
9 monsterZE
 
04.02.13
15:26
Оп ап. Понедельник. =)
10 АЛьФ
 
04.02.13
15:29
2(6) В соответствии с этим адресом, рекурсивно пройдись по цепочке вложенных ТЗ и удали нужную строку.
11 monsterZE
 
04.02.13
15:32
(10) ясно, спс =)
а по СписокЗначений?
12 АЛьФ
 
04.02.13
15:50
2(11) А ты подробней расскажи что у тебя со списком значений не так.
13 monsterZE
 
04.02.13
15:55
(12) по клику на ячейке - собирается СЗ и выводится с вариантами изменения содержимого. вот. собираться собирается, но не выводится. после
   Если СпЗнач.ВыбратьЗначение(ТЗнач,ТКолИмя,,,1)=1 Тогда
       гАтрФормыТЗ.ЗначениеВДерево(ТСтр,ТКол,ТЗнач);
   КонецЕсли;
списка не видно. нажимаю esc. в статус строке - "обработка" и 1с "зависает".
14 АЛьФ
 
04.02.13
15:56
2(13) И где это вызывается?
15 monsterZE
 
04.02.13
15:57
(14) по дабл-клику на тз.
16 monsterZE
 
04.02.13
15:58
выглядит вот так.. с обычной тз все фунциклировало..

Процедура ИзменитьСтр()

   Если НЕ (ТабДок.КоличествоСтрок()>0) Тогда Возврат; КонецЕсли;
   СпЗнач = СоздатьОбъект("СписокЗначений");
   
   ТКол  = гАтрФормыТЗ.ТекущаяКолонкаДерева();
   ТКол  = гАтрФормыТЗ.ПолучитьНомерКолонкиТаблицыЗначений(ТКол);
   ТКолИмя  = гАтрФормыТЗ.ИдентификаторКолонкиДерева(ТКол);
   ТСтр  = гАтрФормыТЗ.ТекущаяСтрокаДерева();
   ТЗнач = гАтрФормыТЗ.ЗначениеИзДерева(ТСтр,ТКол);
        Если ТКолИмя = "Категория" Тогда
        ЗначПер   = Перечисление.КатНом;    
        ВсегоЗнач = ЗначПер.КоличествоЗначений();
        Для ъ=1 По ВсегоЗнач Цикл      
           ПерЗнач = ЗначПер.ЗначениеПоНомеру(ъ);
           //Если ПерЗнач = ЗначПер.Без_Отбора Тогда Продолжить; КонецЕсли;
           СпЗнач.ДобавитьЗначение(ПерЗнач,);        
        КонецЦикла;    
   ИначеЕсли ТКолИмя = "ВидДокумента" Тогда
        СпрВидыДокКлиент = СоздатьОбъект("Справочник.ВидыДокКлиент");
        Если СпрВидыДокКлиент.ВыбратьЭлементы()=1 Тогда
           Пока СпрВидыДокКлиент.ПолучитьЭлемент()=1 Цикл
               СпЗнач.ДобавитьЗначение(СпрВидыДокКлиент.ТекущийЭлемент(),);        
           КонецЦикла;    
        КонецЕсли;    
   ИначеЕсли ТКолИмя = "Статус" Тогда
        ЗначПер   = Перечисление.СтатусДокКлиент;    
        ВсегоЗнач = ЗначПер.КоличествоЗначений();
        Для ъ=1 По ВсегоЗнач Цикл
           СпЗнач.ДобавитьЗначение(ЗначПер.ЗначениеПоНомеру(ъ),);        
        КонецЦикла;    
   КонецЕсли;                                                                      
   
   Если СпЗнач.ВыбратьЗначение(ТЗнач,ТКолИмя,,,1)=1 Тогда
       гАтрФормыТЗ.ЗначениеВДерево(ТСтр,ТКол,ТЗнач);
   КонецЕсли;
   
КонецПроцедуры
17 monsterZE
 
04.02.13
15:59
т.е. это формула в тз
18 monsterZE
 
07.02.13
17:20
выбилось свободного времени..
перенес поковырять во внешний отчет.
формекс гружу из него.
если открываю его локально - выбор_списка_значений открывается, позиционируясь на самой таблице, левый верхний угол (видимо из-за скрытых колонок?)

если открываю тот-же отчет на серверной базе (в терминале) - менюшка уползает в левый-верхний-угол основного окна программы.

переношу в форму элемента справочника, на закладку - выбор улетает в космос, 1с зависает.
формекс грузиться при старте системы.
19 monsterZE
 
07.02.13
17:36
в локалке, если на форму справочника вешаю - тоже самое - космос и вылет
20 monsterZE
 
07.02.13
17:42
все дело в "волшебных пузырьках".. не работает со слоями
21 monsterZE
 
07.02.13
17:49
работает только с ВыбратьЗначение(ТЗнач,ТКолИмя,,,0)
т.е. когда сз выводится в отдельной форме
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн