|
Задача для упр форм | ☑ | ||
---|---|---|---|---|
0
lisrws
14.02.19
✎
14:21
|
Всем привет. Попалась на глаза вот такая задача:
Написать простейшую обработку под упр формы, в этой форме 1 кнопочка и какие-нибудь элементы(неважно). По кнопочке система сделает два вызова - клиентский и серверный, каждый из которых вызовет внеконтекстный серверный метод, в котором произойдет изменение видимости на противоположную любых элементов формы (одинаковый набор и для клиентского, и для серверного метода). И вот у меня вопрос. А как из внеконтекстного метода можно изменять видимость элементов формы, ведь он на то и внеконтекстный, что в него элементы формы не передаются. Или я что-то пропустил? |
|||
1
magvay_k
14.02.19
✎
14:37
|
Передай в неконтекстную процедуру параметр (ЭтотОбъект)
|
|||
2
RomanYS
14.02.19
✎
14:45
|
(1) Есть подозрение, что через границу клиент-сервер такое не пройдет)
|
|||
3
Вася Теркин
14.02.19
✎
14:46
|
(1) внеконтекстный серверный метод - это &НаСервереБезКонтекста
Там нет ЭтотОбъект |
|||
4
palsergeich
14.02.19
✎
14:48
|
(0) используй директиву компиляции НаКлиентеНаСервереБезКонтекста и передавай туда форму
|
|||
5
lisrws
14.02.19
✎
14:49
|
(1) Наверное имел ввиду не ЭтотОбъект, а просто Объект. он передался в внеконтекстный метод, но вопрос, что с ним там делать? он содержит реквизиты обработки, а не элементы формы
|
|||
6
palsergeich
14.02.19
✎
14:49
|
По правилу ближайшего контекста - передачи контекста и лишней медконтекстной сериализации не будет.
|
|||
7
palsergeich
14.02.19
✎
14:50
|
(5) видимость она у коллекции Элементы формы, ЭтотОбъект это верное решение
|
|||
8
magvay_k
14.02.19
✎
14:50
|
В том то и дело - (ЭтотОбъект). В рамках формы и есть управляемая форма
|
|||
9
Вася Теркин
14.02.19
✎
14:51
|
Если только
&НаСервереБезКонтекста Функция ПовернемНаоборот(Правда) Возврат НЕ Правда; КонецФункции &НаСервереБезКонтекста Процедура ПовернемНаоборотСКонтекстом() ЭтотОбъект.Видно = ПовернемНаоборот(ЭтотОбъект.Видно); КонецПроцедуры &НаКлиенте ... ПовернемНаоборотСКонтекстом(); ЭтаФорма.Реквизит1.Видимость = ЭтотОбъект.Видно; ... |
|||
10
palsergeich
14.02.19
✎
14:52
|
Не мучь мозги.
&НаКлиентеНаСервереБезКонтекста Процедура МояПроцедура(УпрФорма) Это работает инфа сотка |
|||
11
palsergeich
14.02.19
✎
14:52
|
(9) баженька ужас какой
|
|||
12
Вася Теркин
14.02.19
✎
14:53
|
(5, 10) внеконтекстный серверный метод - это &НаСервереБезКонтекста
Там нет Объект |
|||
13
Вася Теркин
14.02.19
✎
14:53
|
(11) Нисработаит?
|
|||
14
magvay_k
14.02.19
✎
14:53
|
(10) 100%
|
|||
15
palsergeich
14.02.19
✎
14:53
|
(13) да, ты на безконтекстной процедуре обращаешься к контексту.
|
|||
16
Вася Теркин
14.02.19
✎
14:55
|
(15) Нет, просто накопипастил. Вот так:
Если только &НаСервереБезКонтекста Функция ПовернемНаоборот(Правда) Возврат НЕ Правда; КонецФункции &НаСервере Процедура ПовернемНаоборотСКонтекстом() ЭтотОбъект.Видно = ПовернемНаоборот(ЭтотОбъект.Видно); КонецПроцедуры &НаКлиенте ... ПовернемНаоборотСКонтекстом(); ЭтаФорма.Реквизит1.Видимость = ЭтотОбъект.Видно; ... |
|||
17
Вася Теркин
14.02.19
✎
14:56
|
А какой смысл туда слать ЭтотОбъект?
(1) и (10) чисто теоретический вариант или что то там сладкое есть? |
|||
18
Лодырь
14.02.19
✎
14:57
|
(10) Сработает. Осталось только доказать, что это именно серверный метод )
|
|||
19
magvay_k
14.02.19
✎
14:57
|
&НаКлиенте
Процедура Перевернуть() ПеревернутьНаСервереБезКонекста(ЭтотОбъект); КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Процедура ПеревернутьНаСервереБезКонекста(Форма) Форма.Элементы.Элемент1.Видимость = Не Форма.Элементы.Элемент1.Видимость; КонецПроцедуры |
|||
20
lisrws
14.02.19
✎
14:57
|
(10) Блин, за эту дерективу забыл. она позволяет передавать элементы формы в качестве параметров. Так будет работать
|
|||
21
Ластик
14.02.19
✎
14:58
|
||||
22
palsergeich
14.02.19
✎
15:01
|
(17) ты не шлёшь туда форму, ты шлёшь туда указатель на форму и тебе доступны все коллекции и методы.
С точки зрения производительности это лучший вариант, потому что десериализации не происходит |
|||
23
lisrws
14.02.19
✎
15:22
|
(22) а правильней передать ЭтотОбъект в качестве параметра неконтекстного метода, или же вместо него сразу нужный реквизит?
|
|||
24
Вафель
14.02.19
✎
15:27
|
(21) там речь про интеллисенс
|
|||
25
Вафель
14.02.19
✎
15:28
|
кнопочка то одна.
Клиент - сервер с конекстом - серевер без контекста с передачей формы |
|||
26
palsergeich
14.02.19
✎
15:47
|
(23) имхо дорабатывать удобнее когда форму передаешь.
|
|||
27
YAGolova
14.02.19
✎
16:08
|
(0) http://1clancer.ru/vacancies.respond/vacancyId=4421
Пытаешься устроиться на вакансию?))) |
|||
28
Ластик
14.02.19
✎
16:18
|
(24) да, я знаю, просто дал пример что не только передать можно а и работать по человечески с формой
|
|||
29
lisrws
14.02.19
✎
17:23
|
(27) не)) я написал чуваку про отсутствие контекста формы, а он отправил хитрость искать. вот и заинтересовало
|
|||
30
Вася Теркин
15.02.19
✎
06:43
|
(22) Прикольно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |