Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
20 Авг 2017, 06:58
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Обход дерева значений на клиенте / развернуть многоуровневое дерево на клиенте  (Прочитано 4667 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн virtus

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-07-07
  • Сайт: 
Подскажите, пожалуйста, как обойти дерево значений на клиенте. Или как развернуть те узлы дерева, которые были развернуты до пересчетов итогов в серверной процедуре.

У меня в серверной процедуре обсчитываются итоги. После этого я используя метод ЗначениеВРеквизитФормы(Дерево, "ДеревоЗначений") заполняю дерево на форме. При этом оно становится свернутым.

А я не хочу, чтоб оно сворачивалось. Я пробывал обойти его на клиенте после это и развернуть, но так не получается(нет подходящих методов)

Как можно это решить?

Спасибо.


Оффлайн virtus

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-07-07
  • Сайт: 
Разобрался. Написал в итоге рекурсивные процедуры. Одна запоминает какие развернуты были узлы, потом на сервере процедура пересчитывает итоги, и третья раскрывает узлы, какие были раскрыты до пересчета. Может кому пригодится код:

&НаКлиенте
Процедура ДеревоЗначенийСуммаПриИзменении(Элемент)
    соотвКолонок = Новый Соответствие;
    соотвКолонок.Вставить("Сумма");
   
    РазвернутыеСтроки = Новый Соответствие();
   
   
    КоличествоСтрок = 0;
    ПроверитьСвернутостьДерева(ДеревоЗначений, РазвернутыеСтроки, КоличествоСтрок);
   
    ПосчитатьНаСервере(соотвКолонок);
   
    УстановитьРазвернутостьДерева(ДеревоЗначений, РазвернутыеСтроки, КоличествоСтрок);
   
КонецПроцедуры

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

&НаКлиенте
Процедура УстановитьРазвернутостьДерева(пДеревоЗначений, РазвернутыеСтроки, КоличествоСтрок)
    ЭлементыДерева = пДеревоЗначений.ПолучитьЭлементы();
    Если ЭлементыДерева.Количество() = 0 Тогда Возврат КонецЕсли;
    Для Каждого ЭлементДерева Из ЭлементыДерева Цикл
        Идентификатор = ЭлементДерева.ПолучитьИдентификатор();
        Если РазвернутыеСтроки.Получить(Идентификатор - КоличествоСтрок + 1) = Истина Тогда
            Элементы.ДеревоЗначений.Развернуть(Идентификатор);
        КонецЕсли;
        УстановитьРазвернутостьДерева(ЭлементДерева, РазвернутыеСтроки, КоличествоСтрок);
    КонецЦикла;
КонецПроцедуры

Оффлайн Азиман

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-01
  • Сайт: 
  • Профессия: Ученик 1С
Зачем нужно соответствие, когда можно создать массив идентефикаторов "свернутых", потом обойти и развернуть иденты по списку.


Теги:
 

"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 356
Последний ответ 15 Июн 2017, 07:53
от mvk843
Ошибка - Обнаружено дублирование ключевых значений в колонке "Ссылка". Отображение данных в списке не возможно.

Автор welldoneРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 3969
Последний ответ 24 Ноя 2015, 15:38
от welldone
"Проверка мутабельных значений на заполненность не поддерживается"

Автор proofetРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 18993
Последний ответ 13 Фев 2011, 17:36
от proofet
Почему реквизит типа "список значений" может оказаться недоступным для изменения

Автор VdegРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 5896
Последний ответ 28 Июл 2011, 23:55
от Dethmontt
1C ЗУП 2.5 Помогите с отчетом "Списки сотрудников организации" Объединение значений ячеек

Автор ksander-farsРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 822
Последний ответ 10 Фев 2017, 10:49
от ksander-fars

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
129 Сообщений
alex0402
60 Сообщений
AIFrame
46 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
27 Сообщений
pavl_vs
26 Сообщений
Kironten
24 Сообщений
Александр Лахтин Александр Лахтин
18 Сообщений
magnifico61
16 Сообщений
BuhRust
15 Сообщений

* Кто онлайн

  • Точка Гостей: 110
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal