Имя: Пароль:
1C
1С v8
Найти строку в дереве значений по условию на УФ
0 Tumakota
 
03.06.15
16:24
&НаКлиенте
Процедура ОпрСпис(Команда)
    
    
Таблица = ПолучитьТаблицуДерева();

ОписаниеМетаданныхЗагрузки = НайтиОтмеченноеЗначениеВДеревеЗначений(таблица.строки);
    
КонецПроцедуры
&НаСервере                                          
Функция ПолучитьТаблицуДерева()
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");     

ОбъектДляСервера.ДеревоЗначений = РеквизитФормыВЗначение("Объект.ДеревоЗначений");

Возврат ОбъектДляСервера.ДеревоЗначений;

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

&НаСервере                                          
Функция НайтиОтмеченноеЗначениеВДеревеЗначений(СтрокиДерева)
    
    // пробежимся по всем строкам (по всем строкам одного уровня, которые были переданы!)
    Для каждого Строка из СтрокиДерева.Строки Цикл
    
        // Вот наше условие, значение Выгружать у строки равно 1:
        Если Строка.РазницаКоличество <> 0 Тогда
            // Если условие сработало, возвращаем строку
            Возврат Строка;
        КонецЕсли;
    КонецЦикла;
    
    // Если не нашли строку, смотрим под-строки каждой строки
    Для каждого Строка из СтрокиДерева Цикл
        
        // Здесь осуществляется рекурсивный вызов
        НайденнаяСтрока = НайтиОтмеченноеЗначениеВДеревеЗначений(Строка.Строки);
        Если НайденнаяСтрока <> неопределено Тогда
            // Если нашли, возвращается строка
            Возврат НайденнаяСтрока;
        КонецЕсли;
        
    КонецЦикла;
    
    // Не нашли строку по условию, возвращаем неопределено
    Возврат неопределено;

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

Выдает ошибку связанную с коллекцией

Ошибка при вызове метода контекста (НайтиОтмеченноеЗначениеВДеревеЗначений)
ОписаниеМетаданныхЗагрузки = НайтиОтмеченноеЗначениеВДеревеЗначений(Таблица.Строки);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':

Подскажите как правильно найти строки в дереве значений?
2 + 2 = 3.9999999999999999999999999999999...