Имя: Пароль:
1C
Админ
Работа с деревом значений на управляемой форме
0 МеталлКор
 
26.06.14
17:57
Добрый день, уважаемые коллеги.
Возможно вопрос будет нелепым, но все же,
1. Есть управляемая форма
2. На управляемой форме добавлен реквизит формы "ДеревоЗначений".
3. Процедурой на сервере при создании выполняю заполнение данного дерева.
Вопрос в следующем: каким обработчиком можно пробежаться по строкам моего дерева значений и дополнительно обработать значения поля строк.
Прошу сразу не пинать.
В обычной форме есть обработчик ПриВыводеСтроки, в УФ такого нет.
1 Wobland
 
26.06.14
17:58
Команда1()?
2 МеталлКор
 
26.06.14
17:59
(1) Можно пример кода?
3 Wobland
 
26.06.14
18:00
&НаКлиенте
Процедура ОбойтиДубРекурсивно(Команда)
    ОбходДерева(Истина);
    Элементы.Дерево.Обновить();
КонецПроцедуры
4 МеталлКор
 
26.06.14
18:12
(3) &НаКлиенте
Процедура ОбойтиСтрокиДерева(Команда)
    ПрочитатьЗначениеСтрокиДерева(ДеревоТоварыЗакупки);// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Функция ПрочитатьЗначениеСтрокиДерева(ДеревоТоварыЗакупки)

   Для Каждого цСтрока Из ДеревоТоварыЗакупки Цикл

          ПрочитатьЗначениеСтрокиДерева(цСтрока);

   КонецЦикла;

КонецФункции



Ошибка  Итератор для значения не определен
   Для Каждого цСтрока Из ДеревоТоварыЗакупки Цикл
5 Wobland
 
26.06.14
18:20
согласен
6 МеталлКор
 
26.06.14
21:22
&НаСервере
ПРоцедура ОБработатьДерево_Склады()
ДеревоТоварыСклады_Дерево =  РеквизитФормыВЗначение("ДеревоТоварыСклады");

ПрочитатьЗначениеСтрокиДерева(ДеревоТоварыСклады_Дерево.Строки, истина);
    
ЗначениеВРеквизитФормы(ДеревоТоварыСклады_Дерево, "ДеревоТоварыСклады"); //  - поместили дерево в реквизит формы
    
КонецПроцедуры

&НаСервере
Процедура ПрочитатьЗначениеСтрокиДерева(СтрокиДЗ, ЭтоСклад = истина)

    Для Каждого СтрокаДерева Из СтрокиДЗ Цикл

        // Если мы в строке подчиненный
        Если СтрокаДерева.Строки.Количество() = 0 Тогда
            //СтрокаДерева.Артикул = "";
            Если ЭтоСклад Тогда
                СтрокаДерева.Ск_Номенклатура = СПравочники.Номенклатура.ПустаяСсылка();
            Иначе
                СтрокаДерева.Номенклатура = СПравочники.Номенклатура.ПустаяСсылка();
            КонецЕслИ;
            
            Продолжить;
         КонецЕсли;

        ПрочитатьЗначениеСтрокиДерева(СтрокаДерева.Строки, ЭтоСклад);

        // Для текущей записи вычислим сумму строк колонки
        //СтрокаДерева.ФактОстаток = СтрокаДерева.Строки.Итог("ФактОстаток");

    КонецЦикла;

КонецПроцедуры
В основном твоя идея была верной. спасибо