|   |   | 
| 
 | Обход строк дерева | ☑ | ||
|---|---|---|---|---|
| 0
    
        bUbA 22.05.13✎ 12:04 | 
        Есть такая процедура
  Процедура ОбойтиСтрокиДерева(ДеревоЗагрузки) дзНаше = Новый ДеревоЗначений; Для Каждого СтрокаДерева ИЗ ДеревоЗагрузки.Строки Цикл Если ЭлементыФормы.ДеревоЗагрузки.ТекущаяСтрока.ЭтоГруппа = Ложь Тогда Продолжить; КонецЕсли; НС = ДеревоЗагрузки.Строки.Добавить(); ЗаполнитьЗначенияСвойств(НС,дзНаше); КонецЦикла; дзНаше.ВыбратьСтроку(); КонецПроцедуры Необходимо, чтобы строки дерева заполнялись только элементами. Что здесь не так? | |||
| 1
    
        Maxus43 22.05.13✎ 12:06 | 
        что не работает говори, или надо догадаться?
  и это чего? Если ЭлементыФормы.ДеревоЗагрузки.ТекущаяСтрока.ЭтоГруппа = Ложь Тогда ? работает разве? | |||
| 2
    
        bUbA 22.05.13✎ 12:10 | 
        (1) если курсор установлен на группе, то получается какой то бесконечный цикл, а если на элементе, то появляется просто пустая строка     | |||
| 3
    
        Alex S D 22.05.13✎ 12:12 | 
        бред какой-то, обходишь дерево и туда же добавляешь строки?     | |||
| 4
    
        1Сергей 22.05.13✎ 12:13 | 
        (3) + 1     | |||
| 5
    
        Maxus43 22.05.13✎ 12:14 | 
        Обходи копию дерева, а добавляй в доугое     | |||
| 6
    
        Maxus43 22.05.13✎ 12:15 | 
        ЗаполнитьЗначенияСвойств(НС,дзНаше);
  дак дзНаше - пустая, чо заполнить хочешь? | |||
| 7
    
        Alex S D 22.05.13✎ 12:16 | 
        видимо так надо 
  НС = дзНаше.Строки.Добавить(); | |||
| 8
    
        Alex S D 22.05.13✎ 12:16 | 
        + ЗаполнитьЗначенияСвойств(НС,СтрокаДерева);     | |||
| 9
    
        bUbA 22.05.13✎ 12:19 | 
        (8) теперь на группе бесконечного цикла нету, но всё равно ДЗ пустое получается     | |||
| 10
    
        1Сергей 22.05.13✎ 12:20 | 
        (9) колонки ещё надо создать     | |||
| 11
    
        Alex S D 22.05.13✎ 12:20 | 
        пустое, у тебя же колонок нет там     | |||
| 12
    
        Maxus43 22.05.13✎ 12:20 | 
        (9) тут задача не программирования, а простой логике.
  Да и дзНаше у тебя абсолютно пуста, без колонок. что он будет добавлять? | |||
| 13
    
        bUbA 22.05.13✎ 12:23 | 
        (12) а если очистить это дерево и туда же добавить результаты этой процедуры?     | |||
| 14
    
        Maxus43 22.05.13✎ 12:24 | 
        (13) какое очистить?
  дзНаше = ДеревоЗагрузки.Скопировать(); дзНаше.Очистить(); так хоть одинаковая структура будет | |||
| 15
    
        bUbA 22.05.13✎ 12:28 | 
        (14) почему то всё равно пустые строки получаются, даже с колонками     | |||
| 16
    
        Alex S D 22.05.13✎ 12:28 | 
        (15) а где ты смотришь? в отладчике?     | |||
| 17
    
        Maxus43 22.05.13✎ 12:29 | 
        (15) смотри отладчиком, там увидишь где косяк поидее     | |||
| 18
    
        bUbA 22.05.13✎ 12:31 | 
        ну а как допустим сделать так, чтобы выбирались все элементы открытой группы, независимо установлен там курсор или нет?     | |||
| 19
    
        Alex S D 22.05.13✎ 12:33 | 
        не понял...     | |||
| 20
    
        bUbA 22.05.13✎ 12:36 | 
        (19) т.е. при нажатии на кнопку ДеревоЗагрузки очищалось и вместо него там появлялись все элементы, которые ранее входили в группу в очищенном дереве     | |||
| 21
    
        Alex S D 22.05.13✎ 12:42 | 
        это правила обмена?     | |||
| 22
    
        bUbA 22.05.13✎ 12:48 | 
        (21) это вы о чём?
  сейчас это ДЗ заполняется, но совсем не так как надо, если курсор установлен на элементе, то появляется пустая строка. Если на группе, то открываются не все элементы этой группы, а копируется просто строка с её названием дзНаше = ДеревоЗагрузки.Скопировать(); дзНаше.Строки.Очистить(); Для Каждого СтрокаДерева ИЗ ДеревоЗагрузки.Строки Цикл Если ЭлементыФормы.ДеревоЗагрузки.ТекущаяСтрока.ЭтоГруппа = Ложь Тогда Продолжить; КонецЕсли; НС = дзНаше.Строки.Добавить(); ЗаполнитьЗначенияСвойств(НС,СтрокаДерева); КонецЦикла; дзНаше.ВыбратьСтроку(); | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |