![]() |
|
8.3. УФ. Установить значение элемента формы на клиенте | ☑ | ||
---|---|---|---|---|
0
SeiOkami
20.02.17
✎
09:05
|
Такое дело.
Делаю универсальную обработину, чтобы ей проводить манипуляции над открытыми формами (для разработки\отладки\тестирования). На клиенте в УФ получаю открытые формы и делаю с ними разные махинации. Влиять на свойства элемента формы можно без проблем. Однако, установить значение реквизитов не знаю как. Дело в том, что путь к данным элемента формы можно узнать только на сервере, но туды я, естественно, форму отправить не могу. Можно было бы вывести просто все реквизиты формы для редактирования (без привязки к элементам), но и их получить можно только на сервере. Есть ли какая-то фишка, позволившая бы это устроить? |
|||
1
SeiOkami
20.02.17
✎
09:29
|
уп
|
|||
2
SeiOkami
20.02.17
✎
10:12
|
апну
|
|||
3
Вафель
20.02.17
✎
10:14
|
Форма[ИмяРеквизита] = Значение
|
|||
4
Вафель
20.02.17
✎
10:14
|
Нужно не отправлять форму на сервер, а брать ее оттуда
|
|||
5
SeiOkami
20.02.17
✎
10:23
|
(3), как узнать какие реквизиты есть у открытой формы?
|
|||
6
SeiOkami
20.02.17
✎
10:23
|
(4), и как я на сервере получу открытую форму?
|
|||
7
Вафель
20.02.17
✎
10:28
|
(6) Из сревреной процедуры формы вызывать процдеру из общего модуля. например при создании на сервере
|
|||
8
Вафель
20.02.17
✎
10:29
|
(5) ПолучитьРеквизиты
|
|||
9
SeiOkami
20.02.17
✎
10:44
|
(7), ты отвечаешь на что-то совсем другое.
Повторю вопрос: "как я на сервере получу открытую форму?" |
|||
10
SeiOkami
20.02.17
✎
10:45
|
(5), похоже, что ты не прочитал (0)...
Этот метод доступен только на сервере. А получить открытые формы можно только на клиенте. А передать открытую форму с клиента на сервер нельзя. |
|||
11
SeiOkami
21.02.17
✎
08:36
|
уп
|
|||
12
Windyhead
21.02.17
✎
09:06
|
(10) "Передать открытую форму с клиента на сервер нельзя..."
Дать ложку? |
|||
13
FIXXXL
21.02.17
✎
09:27
|
(10) можно же как параметр серверной процедуры
|
|||
14
Fedor-1971
21.02.17
✎
09:41
|
(10) поясни свою мысль примерным кодом:
1. как получил открытую форму (или список оных)? 2. что и как делать собрался с ней (добавил реквизиты просто формы или вывел некие реквизиты объекта)? 3. как собственно пытался получить реквизиты уже открытой формы (если что - форма это, по большому счёту, коллекция значений)? В сторону Метаданных смотрел? и самый главный вопрос на зачем тебе это нужно? Изобретаешь большой универсальный велосипед с квадратными колёсами или просто пытаешься посмотреть на возможности УФ? |
|||
15
SeiOkami
21.02.17
✎
09:54
|
(12), (13), если можно, то прошу пример
|
|||
16
SeiOkami
21.02.17
✎
09:57
|
(14),
1. ПолучитьОкна() 2. Нужно предоставить возможно изменять значения любых реквизитов любой открытой формы 3. ПолучитьРеквизиты() - доступна только на сервере. Передать на сервер перехваченную открытую форму нельзя (если можно, жду пример) |
|||
17
FIXXXL
21.02.17
✎
09:59
|
(16) у тебя есть форма как объект?
вызываешь серверную процу ЗыритьНаСервере(ФормаКакОбъект) |
|||
18
Fedor-1971
21.02.17
✎
10:07
|
(16)Пробуй примерно так:
мас=ПолучитьОкна(); фрм=мас[0].ПолучитьСодержимое(); Возможно тут надо добавить твою универсальную процедуру (или пару одну НаКлиенте - для передачи контекста на сервер, вторую НаСервере - для разбора что чего и зачем) фрм.Процедура которая &НаСервере - твой контекст формы приехал на сервер тут его и жуй |
|||
19
Вафель
21.02.17
✎
10:10
|
без вызова серверной процедуры из ФОРОМЫ никак не получится
|
|||
20
Вафель
21.02.17
✎
10:10
|
кстати можно послать кнопки через sendkeys
|
|||
21
Fedor-1971
21.02.17
✎
10:28
|
(20) уж лучше подключить ОбработчикОжидания внутри формы и из него дёрнуть серверную процедуру
|
|||
22
Windyhead
21.02.17
✎
10:56
|
(16) Ты путаешь форму с окном клиентского приложения.
"ПолучитьОкна" получаешь коллекцию окон. у эллемента коллекции получаем содержимое. вернется массив объектов типа УправляемаяФорма или Форма. ну а дальше уже работаешь с их свойствами, хочешь на сервере хочешь на аклиенте |
|||
23
Windyhead
21.02.17
✎
10:57
|
открой СП там все понятно расписано
|
|||
24
Вафель
21.02.17
✎
10:57
|
(21) Это если в форме что-то есть.
А если оно есть, то и так его можно дернуть |
|||
25
Вафель
21.02.17
✎
10:57
|
(22) Форму нельзя передать на сервер
|
|||
26
FIXXXL
22.02.17
✎
08:51
|
(25) точно :( видел просто работу с формами в общих модулях, но были КЛИЕНТСКИЕ общие модуля
вот и почудилось, что можно... если только пореквизитно передавать &НаСервере Процедура ОкноНаСервереНаСервере(РеквизитФ) РеквизитФ = "Я был на сервере!"; КонецПроцедуры &НаКлиенте Процедура ОкноНаСервере(Команда) ОкнаКП = ПолучитьОкна(); ФРМ = ОкнаКП[1].Содержимое[0]; ОкноНаСервереНаСервере(ФРМ.Реквизит1); КонецПроцедуры |
|||
27
SeiOkami
22.02.17
✎
14:30
|
Походу, что это сделать нельзя. Жаль(
|
|||
28
DailyLookingOnA Sunse
22.02.17
✎
15:06
|
На клиенте получаешь имена используемых форм.
Запускаешь конфигуратор в пакетном режиме с выгрузкой конфигурации в файлы. По имени форм смотришь файлы, в них смотришь ветку Attributes - это реквизиты формы. Универсально, извратно, фишка. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |