![]() |
|
Дерево значений -сохранить Реквизит в документе | ☑ | ||
---|---|---|---|---|
0
shlyahtich
22.02.12
✎
06:57
|
Простая задачка... вроде бы
Есть документ В нем реквизит формы с типом ДеревоЗначений рф_дерево данные этого реквизита формы визуализируются в табличном поле Как удобней всего сохранить в реквизитах документа это дерево значений, чтобы потом разворачивать его в таб форме? Ну чтобы не делать регулярно запрос, по которому я его заполняю типа... Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК ДоговорКонтрагента, | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Валюта, &ВалютаРубль) КАК Валюта, | ХозрасчетныйОстаткиИОбороты.Счет КАК СчетУчета, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК ОстатокВРублях, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокКт КАК ОстатокВВалюте, | ХозрасчетныйОстаткиИОбороты.Подразделение КАК Подразделение |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, ДвиженияИГраницыПериода, Счет В (&МассивСчетов), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ ПО | Валюта, | СчетУчета, | Контрагент, | ДоговорКонтрагента, | Подразделение"; Я пытался сохранить результаты запроса в таб части документа и оттуда их восстанавливать, но в таком случае теряю группировки |
|||
1
Wobland
22.02.12
✎
06:58
|
ЗначениеВСтрокуВнутр?
|
|||
2
Rovan
гуру
22.02.12
✎
07:27
|
(0) очень странная задача - хранить в документе отображение оборотов бух. регистра
|
|||
3
shlyahtich
22.02.12
✎
09:06
|
(1) в том то и дело что ?
|
|||
4
shlyahtich
22.02.12
✎
09:08
|
(2)
все оч просто - так я нахожу все что связано с займами полученными а потом по ним расчтитываю проценты к уплате и делаю проводки. Поэтому и надо мне хранить результаты в документе. Ничего странного. Чтобы визуализировать то, что я насчитал. |
|||
5
SeraFim
22.02.12
✎
09:09
|
Хранилище значения?
|
|||
6
SeraFim
22.02.12
✎
09:15
|
что-то типа такого: при записи запихиваем это дерево в реквизит
Документ.ДеревоХранилищеЗначения = Новый ХранилищеЗначения(ДанныеФормыВЗначение(ДеревоФорма, Тип("ДеревоЗначений")); при открытии формы достаем из этого реквизита и запихиваем в реквизит формы ЗначениеВДанныеФормы(Документ.ДеревоХранилищеЗначения.Получить(), ДеревоФорма); ЗЫ работало на УФ, на обычных могут быть какие-то особенности) |
|||
7
ice777
22.02.12
✎
09:18
|
(6) да везде работает.
|
|||
8
shlyahtich
22.02.12
✎
09:22
|
(6) С хранилищем не работал - щас попробую
отпишусь тогда |
|||
9
shlyahtich
22.02.12
✎
09:25
|
(6)хм... а очищать предыдущее значение не требуется перед записью?
|
|||
10
SeraFim
22.02.12
✎
09:26
|
(7)ну, я не проверял) помню, была там какая-то заморочка. Что-то вроде объявил Реквезит "Дерево" с типом "ДеревоЗначений". Потом смотрю в отладчике - а там у него тип другой - "ДанныеФормыДерево"
(9) неа. ты же перезаписываешь значение, то есть старое "затирается" |
|||
11
shlyahtich
22.02.12
✎
09:37
|
(10)
Я ввел реквизит формы рф_ДеревоЗначений с типом дерево значений и ввел реквизит объекта ДеревоЗначений с типом ХранилищеЗначений И на форме ЭлементФормы.ДеревоЗначений так вот рф_ДеревоЗначений и является данными для элемента формы ЭлементФормы.ДеревоЗначений.данные=рф_ДеревоЗначений в идеале если я реквизит формы рф_ДеревоЗначений сохранил в хранилище, потом достал при открытии - значит выходит всю свою древообразную структуру я сохранил в одном реквизите... Для моей ситуации это удобней чем "прямая таблица" Ща... пробую что выйдет. Почему то один раз вообще приложение "вылетело" с предложением написать мелкософту |
|||
12
shlyahtich
22.02.12
✎
09:38
|
ЭлементФормы.ДеревоЗначений имеет тип конечно ТаблицаЗначений
|
|||
13
shlyahtich
22.02.12
✎
09:38
|
то есть Табличное поле блин
|
|||
14
SeraFim
22.02.12
✎
09:50
|
ах да, на УФ можно же сразу для Реквизита формы "ДеревоЗначений" указать какие колонки, и какие у них типы.
и табличное поле сразу автоматом правильно создастся (там еще отображение "дерево" должно стоять) на обычной, видимо, программно колонки добавлять придется |
|||
15
shlyahtich
22.02.12
✎
09:58
|
ДеревоЗаймовПолученных = Новый ХранилищеЗначения(рф_ДеревоЗаймовПолученных, Тип("ДеревоЗначений"));
по причине: Несоответствие типов (параметр номер '2') При этом ДеревоЗаймовПолученных это реквизит документа с типом ХранилищеЗначения рф_ДеревоЗаймовПолученных реквизит формы с типом ДеревоЗначений Что ему не нравится? Формы обычные |
|||
16
shlyahtich
22.02.12
✎
09:58
|
при записи ошибка
|
|||
17
SeraFim
22.02.12
✎
09:59
|
прямо в отладчике так и написано, что рф_ДеревоЗаймовПолученных реквизит формы - с типом ДеревоЗначений?
|
|||
18
SeraFim
22.02.12
✎
10:01
|
второй параметр - это для ДанныеФормыВЗначение
|
|||
19
shlyahtich
22.02.12
✎
10:02
|
(17)
да в отладчике тоже все ОК рф_ДеревоЗаймовПолученных значение= ДеревоЗначений тип = ДеревоЗначений |
|||
20
SeraFim
22.02.12
✎
10:02
|
тогда просто ДеревоЗаймовПолученных = Новый ХранилищеЗначения(рф_ДеревоЗаймовПолученных);
второй параметр был нужен для другой функции |
|||
21
shlyahtich
22.02.12
✎
10:06
|
да теперь разворачивать пробую
рф_ДеревоЗаймовПолученных=ДеревоЗаймовПолученных.Получить() |
|||
22
shlyahtich
22.02.12
✎
10:08
|
но перед этим конечно в форме делаю
ЭлементыФормы.ДеревоЗаймовПолученных.СоздатьКолонки(); |
|||
23
shlyahtich
22.02.12
✎
10:17
|
Теперь не могу понять - я удаляю в таб форме когда строки, то наверно надо реквизит формы перезаписывать... потому что при открытии я все равно вижу все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |