|
Результат запрос вывести на форму в виде дерева | ☑ | ||
---|---|---|---|---|
0
Wefast
29.07.15
✎
18:07
|
По кнопке заполнить в модуле формы:
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Дальше как мне это правильно сгруппировать и вывести на форму? Создать в обработке Табличную часть с реквизитами, вывести на форму и указать что это дерево? Или создать реквизит типа ДеревоЗначений, вывести на форму и уже на ней создать реквизиты? ЗначениеВРеквизитФормы(тДерево, "Дерево"); почему то не помогло, пишет что второй параметр не верен, это тот самый реквизит типа ДеревоЗначений |
|||
1
Euguln
29.07.15
✎
18:09
|
(0) Колонки должны совпадать. Надо предварительно создать реквизиты и элементы формы по всем колонкам дерева.
|
|||
2
Wefast
29.07.15
✎
18:09
|
У меня есть поля Склад, Склад2, номенклатура, остаток
Нужно чтобы было Склад2 Склад Номенклатура | Остаток |
|||
3
Wefast
29.07.15
✎
18:10
|
(1) Он же вываливается с ошибкой на второй параметр. Так то он должен был заполнить совпадающее, а на другой забить.
Впрочем у меня они все совпадают |
|||
4
Euguln
29.07.15
✎
18:12
|
(3) неправда.
|
|||
5
Wefast
30.07.15
✎
09:15
|
(4) что не правда то? Не работает
|
|||
6
DexterMorgan
30.07.15
✎
09:29
|
(5) создать реквизит типа дерево значений, создать колонки. Имена колонок должны совпадать с тем, что возвращает
РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ну и дальше ЗначениеВРеквизитФормы |
|||
7
Wefast
30.07.15
✎
09:39
|
Забыл в самом начале сделать так:
тДерево = РеквизитФормыВЗначение("Объект.Дерево"); И не через "объект" вызывал Теперь проблема в выводе. Выглядит оно так сейчас: http://i.imgur.com/nkf2sJ2.png Надо чтобы нормальное дерево было Хотя бы чтобы группировочное поле не называлось "СКлады" а было наименованием этого склада МОЕ1 Склад А Номенклатура Номенклатура Склад В Номенклатура МОЕ2 Склад А Номенклатура Ну или если в одной колонке такое не делается, то МОЕ1 | | |Склад 1 | | | Номенклатура 1 | | Номенклатура 2 |Склад 2 | | | Номенклатура 1 МОЕ2 | | |Склад1 | | | Номенклатура 1 Конечное главное чтобы потом это дерево можно было легко обработать превратив в таблицу значений |
|||
8
Wefast
30.07.15
✎
09:47
|
В разных вроде получилось.
В запросе в закладке Итоги у меня у полей Склад1 и Склад2 стояли Тип итогов стоял Только иерархия или иерархия и элементы. Поставил Элементы просто и стало вот как во втором варианте но хотя бы понятно что происходит. Честно говоря жутко злит что все методом тыка получается, не пойму что тогда делает другой тип итогов. |
|||
9
DexterMorgan
30.07.15
✎
10:33
|
(7) что такое нормальное дерево?
|
|||
10
hhhh
30.07.15
✎
10:37
|
(7) пользуйтесь СКД. Тогда не будет таких диких мучений.
|
|||
11
Wefast
30.07.15
✎
10:39
|
(9) На котором все понятно
Где идет разветвление очевидное Группа 1 Подгруппа 1 Подрруппа 2 Группа 2 Подгруппа 1 ПодПодгруппа 1 ПодПодгруппа 2 Группа 3 Как то так я себе вижу дерево. В общем все вывелось в том виде, что меня устраивает. Теперь мучаюсь как сделать колонку с галочками. Чтобы при выборе все подчиненные объект тоже выбирались (10) Ну так я дерево и получаю путем использования СКД |
|||
12
hhhh
30.07.15
✎
10:42
|
ну там ведь и выводится сразу. Зачем писать такое мегадерьмо из девяытнадцатого века, да ещё ворчать при этом, что это вас злит?
|
|||
13
Fish
30.07.15
✎
10:44
|
(11) Вот здесь то, что тебе нужно: http://www.obrabotki.com/1s-tree-table-managedforms-3/
|
|||
14
DexterMorgan
30.07.15
✎
10:46
|
(13) ваще не о том)
|
|||
15
DexterMorgan
30.07.15
✎
10:47
|
(13) ему не надо программно выводить дерево на форму, у него оно уже есть
|
|||
16
Fish
30.07.15
✎
10:47
|
(14) Что значит, не о том? Как раз о : "Теперь мучаюсь как сделать колонку с галочками. Чтобы при выборе все подчиненные объект тоже выбирались"
|
|||
17
Wefast
30.07.15
✎
10:48
|
(12) не понял, что не так. Я и выгрузил из СКД дерево с Группировкой и иерархией. А потом вывел на форму.
(13) Не получается так, я не знаю где так делается, но обращение к элементам таким образом у меня не проходит (15) Там на второй странице функция ПриИзменение |
|||
18
Wefast
30.07.15
✎
10:50
|
Нашел более подходящий вариант, но он тоже не работает
Процедура ДеревоПриИзмененииФлажка(Элемент, Колонка) ТекущаяСтрока = Элемент.ТекущаяСтрока; // Вот тут уже ничего не выходит. Получается Только ЭлементЫ.Дерево.ТекущиеДанные Если ТекущаяСтрока.Пометка = 2 Тогда ТекущаяСтрока.Пометка = 0; КонецЕсли; УстановкаФлажков(ТекущаяСтрока, ТекущаяСтрока.Пометка); Пока ТекущаяСтрока.Родитель <> Неопределено Цикл ТекущаяСтрока.Родитель.Пометка = ?(УстановленноДляВсех(ТекущаяСтрока), ТекущаяСтрока.Пометка, 2); ТекущаяСтрока = ТекущаяСтрока.Родитель; КонецЦикла; КонецПроцедуры Процедура УстановкаФлажков(ТекущаяСтрока,Значение) Для Каждого Стр Из ТекущаяСтрока.Строки Цикл // А вот тут уже нет возможности ничего перебрать. Через отладку не нашел где вообще можно перебрать строки Стр.Пометка = Значение; УстановкаФлажков(Стр, Стр.Пометка); КонецЦикла; КонецПроцедуры Функция УстановленноДляВсех(Строка) Для Каждого Стр Из Строка.Родитель.Строки Цикл Если Стр.Пометка <> Строка.Пометка Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции |
|||
19
Fish
30.07.15
✎
10:51
|
(15) А какая разница? Переделать этот пример для не программно выведенного дерева - раз плюнуть.
|
|||
20
DexterMorgan
30.07.15
✎
10:55
|
(18) установка/снятие флажков для всех подчиненных элементов - нужна рекурсия
|
|||
21
Fish
30.07.15
✎
10:55
|
(18) Вот рабочий вариант. Проверено: http://www.obrabotki.com/1s-tree-table-managedforms-3/2/
|
|||
22
DexterMorgan
30.07.15
✎
10:55
|
(18) а у тебя вроде так
|
|||
23
Wefast
30.07.15
✎
10:56
|
(19) Ну вот не выходит его переделать
{Форма.Форма.Форма(146)}: Поле объекта не обнаружено (Дерево) ЭлементКоллекции = ЭтаФорма["Дерево"].НайтиПоИдентификатору(ИДТекущейСтроки); |
|||
24
Wefast
30.07.15
✎
10:57
|
(22) Вторая процедура УстановкаФлажков рекурсивно же вроде как должна устонавливать. Но пока не нашел как обойти эти самые строки
|
|||
25
Fish
30.07.15
✎
10:57
|
(23) Так поменяй "Дерево" на название своего элемента формы.
|
|||
26
Wefast
30.07.15
✎
10:58
|
(25) Серьезно? Оно у меня так и называется.
|
|||
27
Fish
30.07.15
✎
11:01
|
(26) Если бы это было так, то тогда не писало бы: "Поле объекта не обнаружено (Дерево)" :))
|
|||
28
Wefast
30.07.15
✎
11:03
|
Там вообще не получается через ЭтаФорма. обратиться к какому либо элементу этой самой формы
http://i.imgur.com/cFaiNo8.png?1 |
|||
29
Wefast
30.07.15
✎
11:05
|
||||
30
Wefast
30.07.15
✎
11:13
|
Вышло так
ЭлементКоллекции = Объект.Дерево.НайтиПоИдентификатору(ИДТекущейСтроки); Надеюсь это тоже самое. Сейчас гляну где еще застряну |
|||
31
Fish
30.07.15
✎
11:16
|
(30) Ну так правильно, потому что у тебя дерево - это реквизит объекта, а не формы. Должно заработать.
|
|||
32
Wefast
30.07.15
✎
11:25
|
(31) Да так все заработало.
Осталось теперь обработать получившееся дерево. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |