Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по Дереву значений

Вопрос по   Дереву значений
Я
   Nemirov
 
07.07.21 - 16:37
На форму выгрузил запрос в дерево значений. Возникла необходимость добавить колонку с типом булево (флажок).

"ВЫБРАТЬ
    |    ЛОЖЬ КАК Выбран,
    |    ДействиеСкидокНаценокПоНоменклатуре.Период КАК Период,
    |    ДействиеСкидокНаценокПоНоменклатуре.Источник КАК Источник,
    |    ДействиеСкидокНаценокПоНоменклатуре.Номенклатура КАК Номенклатура,
    |    ДействиеСкидокНаценокПоНоменклатуре.Ответственный КАК Ответственный
    |ИЗ
    |    РегистрСведений.ДействиеСкидокНаценокПоНоменклатуре КАК ДействиеСкидокНаценокПоНоменклатуре
    |ГДЕ
    |    ДействиеСкидокНаценокПоНоменклатуре.Период >= &ТекущаяДата
    |    И ДействиеСкидокНаценокПоНоменклатуре.Статус = &Статус
    |ИТОГИ ПО
    |    Источник"

Первый раз работаю с деревом. Не пойму как сделать так, если ты ставишь галочку родителю, то проставить истину всей номенклатуре по родителю. Родитель обозначен у меня как источник.

Пробовал вот так. Все строки прохожу, выставляется истина, но на форме истина отображается только у родителя.

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

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

Процедура ВыбратьВсеПоИсточнику(Источник)

    ДеревоНаФорме = РеквизитФормыВЗначение("МаркетинговыеАкции");
    
    Для каждого  ПоискИсточника из ДеревоНаФорме.Строки цикл
        Если ПоискИсточника.Источник = Источник тогда
            Для каждого СтрокаПоИсточнику из ПоискИсточника.Строки Цикл
                СтрокаПоИсточнику.Выбран = Истина;
            КонецЦикла;
        КонецЕсли;        
    КонецЦикла;
    
КонецПроцедуры
   Nemirov
 
1 - 07.07.21 - 16:38
С сервера понятно, на клиенте вряд ли отобразится. Но заного когда ставлю флажок, те строки которые я проходил до этого опять со значением Ложь.
   acht
 
2 - 07.07.21 - 16:54
(0) > ДеревоНаФорме = РеквизитФормыВЗначение("МаркетинговыеАкции"); 

Обратное действие где?
   Nemirov
 
3 - 08.07.21 - 09:29
(2) Что за обратное действие?
   Nemirov
 
4 - 08.07.21 - 09:30
(2) А в элемент формы
   Nemirov
 
5 - 08.07.21 - 09:38
(2) Спасибо !!!
   lodger
 
6 - 08.07.21 - 09:41
(0) "РеквизитФормыВЗначение("МаркетинговыеАкции");" - тяжелая и дорогая по ресурсам операция.
не проще ли с ДанныеФормыДерево работать?

&НаКлиенте
Процедура ТаблицаМаркетингиВыбранПриИзменении(Элемент)
    
  // Элемент.Родитель.ТекущаяСтрока

    Если Элемент.Родитель.ТекущиеДанные.Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка") тогда            
        ВыбратьВсеПоИсточнику(Элемент.Родитель.ТекущиеДанные);
    КонецЕсли;

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

&НаКлиенте
Процедура ВыбратьВсеПоИсточнику(Источник)

    Для каждого  ДочерниеСтроки из Источник.ПолучитьЭлементы() цикл
       ДочерниеСтроки.Выбран = Истина;
       ВыбратьВсеПоИсточнику(ДочерниеСтроки);
    КонецЦикла;
    
КонецПроцедуры

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.