Имя: Пароль:
1C
1С v8
Значение в данные формы
0 rosveta
 
17.12.14
13:01
Добрый день. Столкнулась с проблемой в функции ЗаполнитьНаСервере() Группы - это изначально дерево значений.
После того, как отработала процедура ПрочитатьЗначениеСтрокиДерева, Группа- это строка дерева. Следовательно я не могу уже переменную Группа использовать в функции Значение в данные формы.
Не совсем понимаю, что нужно сделать, чтобы получить измененное дерево.


&НаСервере
Процедура  ПрочитатьЗначениеСтрокиДерева(СтрокаДерева, СписокНоменклатуры)
    
    //Группы = СтрокаДерева;
    
    Для Каждого Строка Из СтрокаДерева.Строки Цикл
        
        Для каждого СтрокаСписка Из СписокНоменклатуры Цикл
            
            Если СтрокаСписка.Значение = Строка.Номенклатура Тогда
                
                Строка.Выгружать = Истина;
                
            КонецЕсли;
            
            СтрокаДерева = Строка;
            
        КонецЦикла;
        
        ПрочитатьЗначениеСтрокиДерева(СтрокаДерева, СписокНоменклатуры);
        
    КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
    ЗаполнитьНаСервере();
    ОбновитьОтображениеДанных();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()
    
    Если НЕ Объект.СписокНоменклатуры = Неопределено Тогда
        
        Группы = ДанныеФормыВЗначение(Дерево,Тип("ДеревоЗначений"));
        //Группы1 = ДанныеФормыВЗначение(Дерево,Тип("ДеревоЗначений"));
        ПрочитатьЗначениеСтрокиДерева(Группы, Объект.СписокНоменклатуры);
        ЗначениеВДанныеФормы(Группы,Дерево);
        //в = 7;
    КонецЕсли;
    
КонецПроцедуры
1 rosveta
 
17.12.14
13:11
2 Mankubus
 
17.12.14
13:42
почитай про Знач
3 rosveta
 
17.12.14
14:02
(2), тут вопрос скорее в том, почему, когда отрабатывает процедура ПрочитатьЗначениеСтрокиДерева, то переменная Группа, в процедуре  ЗаполнитьНаСервере() Изменяется. Или может быть я невнимательно прочла про ДанныеФормыВЗначение, сейчас еще раз перечитаю
4 Mankubus
 
17.12.14
14:13
потому что переменная Группы в процедуре ПрочитатьЗначениеСтрокиДерева()
становится равна переменной СтрокаДерева, которая в свою очередь становится равна строке
>>СтрокаДерева = Строка;

а про Знач все-таки нужно почитать
http://www.lessons1c.ru/articles/61-peredachaparametrov.html
5 rosveta
 
17.12.14
14:30
(4), Спасибо большое. Сейчас попробую применить это. Не сразу Вас поняла про Знач, до этого не приходилось сталкиваться.
6 rosveta
 
17.12.14
14:49
Попробовала. Помогло. Спасибо.