|
Дерево с флажками из запроса | ☑ | ||
---|---|---|---|---|
0
Powerfool
11.09.14
✎
12:00
|
Имеется ТП, в нем уже настроены колонки. Причем в одной из них флажок (заполнено ДанныеФлажка). Хочу выгрузить в это ТП результат запроса, при этом заполнив флажок.
Первое с чем столкнулся: не могу выгрузить в ТП без СоздатьКолонки(). Это оч неудобно, потому что убивает мои, уже настроенные колонки. Как это делать? Впервые работаю с деревом |
|||
1
Wobland
11.09.14
✎
12:01
|
выбрать ложь как пометка
|
|||
2
kosts
11.09.14
✎
12:11
|
(0) Ничего не понял
|
|||
3
Powerfool
11.09.14
✎
12:17
|
(2) Вот и я думаю, как то мало ответов. Объясняю:
Есть ТП Флажок | Контрагент | Документ При этом у Флажок Данные = "", ДанныеФлажка = "Флажок" Я хочу примерно так: V К1 |--V Док1 |--V Док2 |--V Док3 V К2 |--V Док1 |--V Док2 |--V Док3 |
|||
4
kosts
11.09.14
✎
12:19
|
(3) Это понятно. не понятно, что не получается
|
|||
5
Wobland
11.09.14
✎
12:20
|
(4) не получается догадаться, что в запросе тоже нужно поле про флажок
|
|||
6
Powerfool
11.09.14
✎
12:20
|
(3) Есть Запрос
ВЫБРАТЬ ЗаказПокупателя.Проведен КАК Флажок, ЗаказПокупателя.Контрагент КАК Контрагент, ЗаказПокупателя.Ссылка КАК Документ ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ИТОГИ ПО Контрагент Когда я делаю: ЭлементыФормы.ДокументыНаПечать.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Заполняется фигово, как таблицу Если сделать ещё ЭлементыФормы.ДокументыНаПечать.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.ДокументыНаПечать.СоздатьКолонки(); ТО выводится дерево (с группировками), но пропадают настройки элементов управления, да и флажок стоановиться полем ввода |
|||
7
Wobland
11.09.14
✎
12:21
|
(6) //ЭлементыФормы.ДокументыНаПечать.СоздатьКолонки();
|
|||
8
kosts
11.09.14
✎
12:24
|
(6)
Удалить
написать
|
|||
9
Powerfool
11.09.14
✎
12:25
|
(7) Я понимаю много букв пишу, тяжело осилить, и вообще видимо писать проще чем читать. Но ты хоть бы вид делал ...
|
|||
10
Wobland
11.09.14
✎
12:26
|
(9) осиливать здесь тебе нужно
|
|||
11
Wobland
11.09.14
✎
12:27
|
рабочий код:
Кедр=Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); об.Продажи=Кедр; ЗначениеВРеквизитФормы(об, "Объект"); |
|||
12
Powerfool
11.09.14
✎
12:27
|
(10) что осиливать? Ты пока ничем не грузишь
|
|||
13
Powerfool
11.09.14
✎
12:28
|
(11) Спасибо. Ща покурим
|
|||
14
Powerfool
11.09.14
✎
12:28
|
(11) Это только для управляемых форм? Если так, то не канает, у меня обычные
|
|||
15
Зойч
11.09.14
✎
12:38
|
>>не могу выгрузить в ТП без СоздатьКолонки().
Врешь. Все колонки просто должны быть в запросе |
|||
16
salvator
11.09.14
✎
12:42
|
(14) Результат = Запрос.Выполнить();
Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЭлементыФормы.Дерево.СоздатьКолонки(); |
|||
17
Powerfool
11.09.14
✎
12:44
|
(16) (9)
|
|||
18
Wobland
11.09.14
✎
12:50
|
(14) есессно. но главный принцип тот же
|
|||
19
Powerfool
11.09.14
✎
12:53
|
(8) Сварганил
Выборка = Запрос.Выполнить().Выбрать( ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл СтрокаДЗ = ДокументыНаПечать.Строки.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаДЗ, Выборка); Выборка2 = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка2.Следующий() Цикл ЗаполнитьЗначенияСвойств(СтрокаДЗ.Строки.Добавить(), Выборка); КонецЦикла; КонецЦикла; Чето колонка "Документ" только не заполняется. Может потому что составной тип? |
|||
20
kosts
11.09.14
✎
13:02
|
(19) Пропустил добавление строк
|
|||
21
kosts
11.09.14
✎
13:03
|
(20), а не я туплю
|
|||
22
kosts
11.09.14
✎
13:04
|
(19) Проверь тип колонки на форме
|
|||
23
Powerfool
11.09.14
✎
13:12
|
(22) уже пробовал и составной и не составной. В типе ДокументСсылка , все правильно
|
|||
24
kosts
11.09.14
✎
13:14
|
(23) Выборка => Выборка2
|
|||
25
Powerfool
11.09.14
✎
13:14
|
(22) Не тут чето то с итогами связано. При обходе в полях "документ" и "флажок" вижу Null
|
|||
26
Powerfool
11.09.14
✎
13:19
|
Я запрос децл изменил. Может это поможет
ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателя.Контрагент, ЗаказПокупателя.Проведен ПОМЕСТИТЬ Заказы ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.ДокументОснование = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Контрагент, РеализацияТоваровУслуг.Проведен ПОМЕСТИТЬ Реализации ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы КАК Заказы ПО РеализацияТоваровУслуг.Сделка = Заказы.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СчетФактураВыданный.Ссылка, СчетФактураВыданный.Контрагент, СчетФактураВыданный.Проведен ПОМЕСТИТЬ СчетаФактуры ИЗ Документ.СчетФактураВыданный КАК СчетФактураВыданный ВНУТРЕННЕЕ СОЕДИНЕНИЕ Реализации КАК Реализации ПО СчетФактураВыданный.ДокументОснование = Реализации.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Заказы.Ссылка КАК Документ, Заказы.Контрагент КАК Контрагент, Заказы.Проведен КАК Печатать ИЗ Заказы КАК Заказы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Реализации.Ссылка, Реализации.Контрагент, Реализации.Проведен ИЗ Реализации КАК Реализации ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ СчетаФактуры.Ссылка, СчетаФактуры.Контрагент, СчетаФактуры.Проведен ИЗ СчетаФактуры КАК СчетаФактуры ИТОГИ ПО Контрагент |
|||
27
Powerfool
11.09.14
✎
13:23
|
(19) Прошу меня простить. Как всегда споткнулся на пустом месте и коммент (24) теперь встал на место.
ЗаполнитьЗначенияСвойств(СтрокаДЗ.Строки.Добавить(), Выборка2); |
|||
28
Powerfool
11.09.14
✎
13:25
|
А вот в тему ещё вопрос. Есть типовые механизмы расчета значения флажка по значению флажка подчиненных элементов? Или надо писать свою рекурсию для этого?
|
|||
29
kosts
11.09.14
✎
13:26
|
(28) Только своё
|
|||
30
Powerfool
11.09.14
✎
13:32
|
(29) Шайтанама
|
|||
31
Powerfool
11.09.14
✎
13:59
|
На всякий случай вдруг кому поможет. Код по обновлению флажков. Не тыкайте палками, код работает, но писал на скорую руку
Процедура ОбновитьФлажки() Для Каждого Строка ИЗ ДокументыНаПечать.Строки Цикл Если Строка.Уровень() = 0 Тогда ПолучитьЗначениеПодчиненных(Строка); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ПолучитьЗначениеПодчиненных(Строка) Строки = Строка.Строки; Если Строки.Количество() > 0 Тогда Значение = Истина; Для Каждого ПодСтрока ИЗ Строка.Строки Цикл Если ПодСтрока.Печатать = Ложь Тогда Значение = Ложь; Прервать; КонецЕсли; КонецЦикла; Строка.Печатать = Значение; КонецЕсли; КонецПроцедуры Процедура ДокументыНаПечатьПриИзмененииФлажка(Элемент, Колонка) Строка = Элемент.ТекущиеДанные; Если Строка.Уровень() = 0 Тогда Для Каждого ПодСтрока ИЗ Строка.Строки Цикл ПодСтрока.Печатать = Строка.Печатать; КонецЦикла; Иначе ПолучитьЗначениеПодчиненных(Строка.Родитель) КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |