|
не запоминается дерево значений в управляемых фомах | ☑ | ||
---|---|---|---|---|
0
hawksib
18.08.16
✎
12:12
|
Всем привет.
У меня есть внешняя обработка с формой, которую я открываю программно, в обработку я добавил таблицу с тремя колонками и связал её с типом реквизитом ДеревоГруппировок типа дерево значений (в реквизитах формы у меня так же есть три колонки) когда я программно открываю форму, понятное дело, таблица пустая, я заполняю своё дерево и закрываю форму. когда я повторно открываю форму таблица снова пустая... уже перепробовал много всего, подскажите, что я делаю не так, пока самостоятельно дошел до вот этого &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЗначениеВРеквизитФормы(РеквизитФормыВЗначение("Объект").ДеревоГруппировок, "Объект.ДеревоГруппировок"); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии() ПриЗакрытииНаСервере(); КонецПроцедуры &НаСервере Процедура ПриЗакрытииНаСервере() РеквизитФормыВЗначение("Объект").ДеревоГруппировок = РеквизитФормыВЗначение("Объект.ДеревоГруппировок", Тип("ДеревоЗначений")); КонецПроцедуры |
|||
1
Горогуля
18.08.16
✎
12:14
|
а откуда вообще мысли о сохранении дерева?
|
|||
2
hawksib
18.08.16
✎
12:16
|
(1) переделываю свою обработку на УФ, вот и мысли, в обычных формах такой проблемы у меня не возникло
|
|||
3
hawksib
18.08.16
✎
12:52
|
с помощью такой костыля:
в модуле формы, откуда производится открытие: &НаКлиенте Процедура НастройкаГруппировок(Команда) Форма = ПолучитьФорму("ВнешняяОбработка.ОтчетПоДокументам.Форма.ФормаНастройкиГруппировокУП"); СообщитьНаСервере("До открытия формы строк: "); Форма.ОткрытьМодально(); СообщитьНаСервере("После закрытия формы строк: "); КонецПроцедуры &НаСервере Процедура СообщитьНаСервере(НачалоСообщения) Сообщить(НачалоСообщения + Строка(РеквизитФормыВЗначение("Объект").ДеревоГруппировок.Строки.Количество())); КонецПроцедуры в модуле формы, где не запоминается дерево &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЗначениеВРеквизитФормы(РеквизитФормыВЗначение("Объект").ДеревоГруппировок, "Объект.ДеревоГруппировок"); Сообщить("При создании на сервере строк строк: " + Строка(РеквизитФормыВЗначение("Объект").ДеревоГруппировок.Строки.Количество())) КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии() ПриЗакрытииНаСервере(); КонецПроцедуры &НаСервере Процедура ПриЗакрытииНаСервере() Сообщить("До записи реквизита строк: " + Строка(РеквизитФормыВЗначение("Объект").ДеревоГруппировок.Строки.Количество())); РеквизитФормыВЗначение("Объект").ДеревоГруппировок = РеквизитФормыВЗначение("Объект.ДеревоГруппировок", Тип("ДеревоЗначений")); Сообщить("После записи реквизита строк: " + Строка(РеквизитФормыВЗначение("Объект").ДеревоГруппировок.Строки.Количество())); КонецПроцедуры вычислил, что До открытия формы строк: 0 При создании на сервере строк строк: 0 До записи реквизита строк: 1 После записи реквизита строк: 1 После закрытия формы строк: 0 т.е. связь с данными-то есть, но почему дерево очищается после закрытия формы? |
|||
4
KulakoffAlex
18.08.16
✎
13:50
|
я правильно понимаю, что ты каждый раз получаешь новый экземпляр формы и открываешь его?
тогда вполне логично, что дерево у тебя будет пустое. Если данные куда то сохраняешь в какой то реквизит обработки (например в таблицу), то при открытии формы тебе надо заново заполнить дерево. |
|||
5
hawksib
18.08.16
✎
14:36
|
(4)да, правильно понимаете. а нельзя разве сохранить данные в реквизит обработки? и как это правильно сделать, понять не могу. разве связь с данными в уф не предполагает изменение самих данных?
|
|||
6
hawksib
19.08.16
✎
05:06
|
!актуально
|
|||
7
Генератор
19.08.16
✎
05:14
|
реквизиты обработки не сохраняются в базе данных, они живут только пока обработка открыта или создана программно, до ее закрытия/уничтожения
|
|||
8
hawksib
19.08.16
✎
05:27
|
(7) не об этом речь, подскажите, что читать про УФ, чувствую знаний просто не хватаеттт..
почему при остановке в отладуке Объект.Организация имеет тип значение СправочникСсылка.Организации, а Объект.ДеревоГруппировок - ДанныеФормыДерево (реквизиты обработки Организация с типом значения СправочникСсылка.Организации и ДеревоГруппировок с типом значения ДеревоЗначений, а не данныеФормыДерево) |
|||
9
DrZombi
гуру
19.08.16
✎
07:08
|
(0) >>> когда я повторно открываю форму таблица снова пустая...
Это магия и шаманство, срочно сжечь серверную :) |
|||
10
DrZombi
гуру
19.08.16
✎
07:09
|
(2) Как бы странно :)
|
|||
11
DrZombi
гуру
19.08.16
✎
07:10
|
(8) Потому, что Сервер, это сервер.
А Клиент, это клиент. На сервере мы работаем, на клиенте показываем данные с минимальным функционалом обработок |
|||
12
hawksib
19.08.16
✎
07:12
|
(11) ну допустим ссылочные данные я могу увидеть на клиенте, а таблицы и деревья не могу, но как мне их связать с данными на сервере?
|
|||
13
DrZombi
гуру
19.08.16
✎
07:16
|
(12) Ты как только окажешься на стороне сервера, отладчиком посмотри, что там будет :)
|
|||
14
DrZombi
гуру
19.08.16
✎
07:21
|
+(12) Тебе чего хочется?
Что бы при закрытии формы, все сохранялось автоматом? Так настрой форму. Выстави галочки Автоматическое сохранение данных формы в настройках "Использовать" И Сохранение данных формы в настройках "Использовать список" Затем выставить галочку в реквизитах Формы, не перепутай :) |
|||
15
hawksib
19.08.16
✎
07:26
|
(13) на сервере ничего особо не поменялось
https://yadi.sk/i/FJpzNzzEuKh7y (14) в свойствах формы у меня уже стоит авто сохранение настроек и использование списка, а вот в реквизите формы какому свойству нужно галочку поставить ? |
|||
16
hawksib
19.08.16
✎
07:36
|
https://yadi.sk/i/i3TaGv-ruKhPH
на более удачном скрине, видно, что остановка на сервере стоит |
|||
17
DrZombi
гуру
19.08.16
✎
07:40
|
(16) Что это?... Оно так не работает :)
|
|||
18
DrZombi
гуру
19.08.16
✎
07:41
|
(15) На форме, вкладка реквизиты, когда выставляешь эти параметры, появляется галочка "Сохранение".
Вот её выстави. Код из (16) Удали |
|||
19
hawksib
19.08.16
✎
07:51
|
(18) конечно удалю эту ерись, спасибо, вопросы ещё есть, но стало намного лучше
|
|||
20
hawksib
19.08.16
✎
07:53
|
она мне теперь сохраняет значения в реквизите формы, а я хочу эти значения использовать при работе в другой форме, в объекте она их не сохраняет, так что всё ещё недоумеваю
|
|||
21
Fish
19.08.16
✎
07:56
|
(20) Ну так сохраняй в объекте, кто не даёт?
|
|||
22
hawksib
19.08.16
✎
07:59
|
(21) вот я со вчера не могу понять, как это делается, перепробовал тучу вариантов, сейчас ещё чуток поганокожу
|
|||
23
hawksib
19.08.16
✎
08:02
|
нет, это ерунда
|
|||
24
hawksib
19.08.16
✎
08:04
|
как в УФ дерево передать с одной формы на другую используя реквизит обработки с типом значения дерево?
|
|||
25
hawksib
19.08.16
✎
08:22
|
либо не используя глобальные переменные, но суть одна
|
|||
26
DrZombi
гуру
19.08.16
✎
08:53
|
(24) Плохо там с деревьями :)
|
|||
27
DrZombi
гуру
19.08.16
✎
08:53
|
+ Циклом
|
|||
28
DrZombi
гуру
19.08.16
✎
08:53
|
+ Мож кто еще варианты знает :)
|
|||
29
KulakoffAlex
19.08.16
✎
09:57
|
как вариант можно попробовать создать структуру. в структуру вставить твое дерево. Только на сервере, чтобы там было именно "Дерево значений", а не ДанныеФормыКОллекция. эту структуру передаешь в открываемую форму и там при создании на сервере заполняешь твое дерево.
|
|||
30
hawksib
19.08.16
✎
18:37
|
(29) была примерно такая мысль: в модуле объекта объявил переменную Дерево, при закрытии формы в которой отредактировано дерево на сервере сказал Дерево = РеквизитФормыВКоллекцию("Объект").ДеревоГруппировок, когда форма закрыта, снова смотрю значение переменной в другой форме Неопределено. чувствую куда-то не туда копаем, да и гав..окода такого я никогда в жизни не видел, очень не нравится такое решение
|
|||
31
hawksib
19.08.16
✎
18:38
|
(30) Опечатка РеквизитФормыВЗначение надо было написать в предыдущем сообщении
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |