Как выгрузить результаты запроса по COM-соединению в дерево значений в 1С 8.3? #796916


#0 by ilyabr
Всем привет и с наступающим праздником! Прошу помощи у специалистов, т.к. сам зашел в тупик. Задача: получить содержимое справочника у удаленной базе по COM-соединению и вывести на управляемую форму в дерево значений. Я делаю вот так: КонецПроцедуры Но на шаге ЗначениеВРеквизитФормы(Дерево, “Автомобили”); 1С ругается:  Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(Дерево, "Автомобили"); по причине: Недопустимое значение параметра (параметр номер ‘2’) Если все то же самое делать локально, то данные из запроса попадают в форму без проблем. В чем может быть проблема?
#1 by XLife
в типе значения
#2 by ilyabr
И еще: если убрать УдаленнаяБаза.ОбходРезультатаЗапроса.ПоГруппировкамСИерархией и выгружать в таблицу значений, а на форме реквизит Автомобили сделать таблицей, все выгружается отлично. С теми же колонками, что и в дереве.
#3 by h-sp
Дерево - это дерево другой базы. Поэтому напрямую ЗначениеВРеквизитФормы(Дерево  не прокатит. Надо самому в цикле обходить это дерево и каждую строчку переписывать в автомобили.
#4 by ilyabr
Перебор циклом занимает 30-40 секунд, это очень долго.
#5 by h-sp
с чего это 40 секунд? Перебор должен быть быстрее, чем ЗначениеВРеквизитФормы.
#6 by Бертыш
Ссылку, то в другую базу передать проблематично... Если только не перепаковывать каждую ссылку Через ЗначениеВстрокуВнутр... Например задав это в функции представления... А так то дерево в строку или в файл в одной базе засунуо, а в другой базе вынул из строки из файла. И будет счастье
#7 by ilyabr
Ну вот смотрите, код с перебором &НаСервере Для удаленной базы меняется только строка: И результаты:
#8 by h-sp
вот это что за херня? в запросе это сделайте. Выигрыш по времени в 100 раз.
#10 by ilyabr
как это сделать в запросе? не представляю себе. а как мне добавить подчиненный элемент?
#11 by h-sp
ты не поверишь и тогда в выборке будет дерево
#12 by ilyabr
Ах, Вы об этом… Запрос я подкорректировал, вместо 30 секунд стало 20. А вот насчет “тогда в выборке будет дерево” - будет. Только дерево не вставляется в форму, что собственно и побудило меня написать этот пост, почитайте . Проблема до сих пор не решена.
#13 by h-sp
в про это ничего нет.
#14 by ilyabr
Ну как же нет, а вот это: Но на шаге ЗначениеВРеквизитФормы(Дерево, “Автомобили”); 1С ругается:  Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(Дерево, "Автомобили"); по причине: Недопустимое значение параметра (параметр номер ‘2’) ?
#15 by h-sp
ну ты там хочешь com-объекты впихнуть в реквизит формы. Это дебилизм согласись. Надо просто создать дерево в это базе, и построчно переписать из того дерева в это дерево.
#16 by ilyabr
А как построчно переписать дерево в дерево? Вы можете привести пример?
#17 by Fish
рекурсивный обход дерева
#18 by ilyabr
не получается рекурсивно обойти дерево и передать его в другое дерево. Пожалуйста, покажите как это можно сделать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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