УФ, ДеревоЗначений как на сервере узнать, текущую выбранную на клиенте строку #780362


#0 by kudlach
Имеем: РеквизитФормыДеревоЗначений - тип Дерево значений ЭлементФормыДерево - путь к данным = РеквизитФормыДерево При изменении на форме Реквизита ЭлементФормыДеревоНоменклатура нужно воткнуть в РеквизитФормыДерево ветку из Спецификации (по умолчанию Спецификация=Номенклатура.Спецификация) &НаКлиенте Вопрос - подскажите, пожалуйста, как на сервере получить строку, выбранную на клиенте ???...
#1 by Лефмихалыч
>как на сервере получить строку, выбранную на клиенте надо передать эту информацию с клинета в серверную процедуру в параметре
#2 by aleks_default
по идентификатору
#3 by kudlach
, Если я на клиенте беру ИндексСтроки=ТекущиеДанные.ПолучитьИдентификатор; то получаю идентификатор в наборе строк текущего уровня и в нем не указано в каком узле все это творится.  т.е., на сервере по идентификатору я пытаюсь по верхнему уровню набора строк этот идентификатор искать - не проходит. у меня так: Если меняю УзелУровня2_2 - на клиенте Идентификатор=1, На сервере индекс не входит, т.к. там по дереву на верхнем уровне имеется только идентификатор [0]
#4 by yuriybylinkin
Не преобразуйте в значение, работайте с данными формы.
#5 by kudlach
, Или что ли список значений по всем узлам замутить...
#6 by vicof
А просто погуглить желания не было. 100500 веток и мануалов с такими проблемами
#7 by kudlach
Т.е. делать все на клиенте. Но это неудобно - данные формы не позволяют обращаться к табличным частям и реквизитам объектов.
#8 by butterbean
данные формы доступны на сервере
#9 by kudlach
я угуглился. связки между ЭлементФормыДеревоНоменклатура и Универсальные коллекции значений/Дерево значений - тупо нету. И в описаниях от 1С прямо так и висит предупреждение об ограничениях при работе с Деревом значений. В толстом клиенте такой ботвы нет - сам делал. Но там нет и разделения на Клиент и Сервер
#10 by kudlach
на сервере не доступны "Текущие данные"
#12 by vicof
Берем книжку по УФ и изучаем основы
#13 by kudlach
текст в указанной ссылке нашел в трёх источниках, буква в букву. И он не дает ответа как из формы передать на сервер дерево со строкой. При передаче - ошибка XDTO и описание у 1С о недоработанности работы с Деревьями в УФ.
#14 by vicof
Все дело в типах.
#15 by vicof
И преобразованиях. Если дерево вернулось на клиент со структурой, отличающейся от структуры реквизита формы, будет ошибка.
#16 by kudlach
Это я понял. Не понял как их подружить или как на одной стороне организовать.
#17 by Новиков
Если бы была таблица, то можно получить идентификатор текущей строки, по нему - саму текущую строку, по ней ее индекс, затем преобразовать таблицу из реквизита формы в значение и по индексу выйти на нужную строку в таблице. В дереве же так нельзя сделать, потому что метод Получить(<Индекс>)  работает только в коллекции строк от конкретного уровня от конкретного родителя и такого однозначного индекса, чтобы сразу попасть на нужную строку, в дереве нет. Поэтому возможны два пути, как ты можешь поступить: 1. Либо полностью делаешь добавление нужных строк на клиенте, и для каждой строки делаешь вызов сервера для данных, которых нет на клиенте. 2. Либо строишь полный путь текущей строки из массива индексов дерева и по нему уже ищешь на сервере, либо просто передавай на сервер ключевые поля строки, и по ним ищи в дереве текущую строку, которая оной являлась на форме.
#18 by vicof
Есть получитьПоИдентификатору. Зачем поиск по индексу использовать?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С