![]() |
![]() |
![]() |
|
Управляемые формы, как правильно писать код | ☑ | ||
---|---|---|---|---|
0
Midaw
16.05.11
✎
12:58
|
На форме есть программно-созданная кнопка. При нажатии на кнопку в зависимости от её имени определяется логика работы. Один из вариантов при нажатии выдается пользователю диалог на сохранение файла. Возможная реализации алгоритма с проблемой:
1. На сервере выполняется определение логики работы в зависимости от имени (выполнимо только на сервере, на клиенте не работает получение свойства "Заголовок" у объекта "КомандаФормы"). 2. Далее на клиенте выполняется вывод диалога пользователю (!ПРОБЛЕМА, переход из серверной в клиентскую процедуру выдает ошибку!). --- Тогда пишем алгоритм заново начиная с начала: 1. На клиенте вызываем серверную процедуру с передачей параметра "КомандаФормы" для определения логики. (!ПРОБЛЕМА, передача параметра "КомандаФормы" невозможен!) Так как же правильно и красиво расписать такую логику? |
|||
1
acsent
16.05.11
✎
12:59
|
>>При нажатии на кнопку в зависимости от её имени определяется логика работы
Так нельзя |
|||
2
Midaw
16.05.11
✎
13:01
|
(1) а что ещё нельзя и как можно, нужно?
|
|||
3
Stimcool
16.05.11
✎
13:03
|
(1) скажи это разработчикам РМК Розницы
|
|||
4
mikecool
16.05.11
✎
13:04
|
почитай Радченко Коротко о главном
|
|||
5
Asmody
16.05.11
✎
13:06
|
(0) у КомандаФормы есть Имя. даже у программносоданных
|
|||
6
Midaw
16.05.11
✎
13:08
|
(3) они это реализовали?
(4) есть книга, но не коротко. прийдется читать ) (5) думаешь оно будет передаваться? |
|||
7
Midaw
16.05.11
✎
13:10
|
чего только стоило сделать отбор в динамическом списке по владельцу. реально интерфейс у 8.2 кривой )
|
|||
8
Stimcool
16.05.11
✎
13:12
|
(6)1. Да. У них на форме одна эталонная кнопка, при открытии добавляются кнопки-клоны со своими именами. В зависимости от имени нажатой кнопки происходит то или иное событие
|
|||
9
Midaw
16.05.11
✎
13:15
|
(8) имя на клиенте легко получается из команды, в отличии от заголовка. вроде уже что-то получается )
|
|||
10
Defender aka LINN
16.05.11
✎
13:18
|
Внимание, вопрос: если пользователь нажал кнопку, не она ли будет текущим элементом формы?
|
|||
11
Midaw
16.05.11
✎
13:22
|
(10) как то не привычно определяет активный элемент или нет, если передается "КомандаФормы". я лучше их сделаю по одной на каждую кнопку )))
следующая проблема вот эта хрень на клиенте не работает ))) такое чувство что кодируешь на минном поле... СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>) <Имя табличной части> (<Tabular section name>) Использование: Только чтение. Описание: Тип: СправочникТабличнаяЧасть.<Имя справочника>.<Имя табличной части>. Набор свойств содержит табличные части справочника. Доступ к табличной части осуществляется по имени, как оно задано в конфигураторе. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
12
Midaw
16.05.11
✎
13:24
|
(11) что собственно и понятно, нефиг тонкому клиенту получать табличные части :)
|
|||
13
Defender aka LINN
16.05.11
✎
13:25
|
(12) Именно. А что ты с ней делать-то собрался?
|
|||
14
Midaw
16.05.11
✎
13:29
|
(13) не поверишь, это тоже параметры для выполнения нажатия кнопки ) надеюсь таблицазначений будет передана
|
|||
15
Midaw
16.05.11
✎
13:30
|
(14) не будет... доступность ТЗ
Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
16
Defender aka LINN
16.05.11
✎
13:35
|
(14) Ну выполняй на сервере, какие проблемы?
|
|||
17
Asmody
16.05.11
✎
13:38
|
чья-то неспособность использовать мощнейший инструмент правильно не делает последний плохим.
|
|||
18
Aleksey
16.05.11
✎
13:43
|
(17) Если инструмент ниразу не интуитивно понятный - то это не делает его хорошим
|
|||
19
Defender aka LINN
16.05.11
✎
13:45
|
(18) Для управления машиной имеются: руль, педали (3), переключатели на руле (2), рычаг коробки переключения передач, который имеет 5-6 положений. Как этим всем пользоваться, интуитивно непонятно. Отсюда вывод - автомобиль - хреновый инструмент, лошадь - наше все.
|
|||
20
Midaw
16.05.11
✎
13:47
|
(17) тем не менее 8.0-8.1 меня только радовал ))) а тут хоть и понятно, что могут быть проблемы с передачей параметров. так ещё интерфейс явно не дружелюбный. чего только стоит совмещение формы, реквизитов, команд и все с кучей вкладок ) должно быть проще! )))
|
|||
21
Midaw
16.05.11
✎
13:51
|
так, кто нибудь подскажет. переменные в модуле это серверные или клиентские переменные? )
|
|||
22
ZDenis
16.05.11
✎
14:01
|
(21) В модуле формы - как напишешь
|
|||
23
Asmody
16.05.11
✎
14:32
|
(18) вам бы перфоратор в руки или болгарку в ноги...
|
|||
24
Aleksey
16.05.11
✎
14:36
|
(19) Поэтому я езжу на автомате. там всего 2 педали, и 3 положения у ручки (вперед, назад, паркковка)
|
|||
25
Defender aka LINN
16.05.11
✎
14:53
|
(24) Пропустил еще как минимум 3, а то и 4, от коробки зависит.
Еще есть N, L, 2, может быть 4. А если типтроник, то еще 2 прибавляются. Никакой интуиции не напасешься :) |
|||
26
Defender aka LINN
16.05.11
✎
14:53
|
*может быть 4 = может быть 3
|
|||
27
Reaper_1c
16.05.11
✎
14:58
|
подсос петрович... так сложно передать из клиента на сервер имя активного элемента управления, аж жуть.
|
|||
28
Midaw
16.05.11
✎
15:16
|
(27) уже выяснили, можно 22 доставать
|
|||
29
Midaw
16.05.11
✎
15:43
|
следующий вопрос. как реализовать в тонком клиенте:
Форма = Справочники[Элем.ПолеВыбора].ПолучитьФормуВыбора(); Выбрано = Форма.ОткрытьМодально(); |
|||
30
Smallrat
16.05.11
✎
15:52
|
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора", , ЭтаФорма, Ключ);
РезультатВыбора = Форма.ОткрытьМодально(); |
|||
31
Midaw
16.05.11
✎
15:57
|
(30)
Доступность: Толстый клиент. |
|||
32
eromanov
16.05.11
✎
15:58
|
Если я не ошибаюсь РМК в Рознице под тонким работать не должно, только толстый
|
|||
33
Smallrat
16.05.11
✎
15:59
|
(30)
Глобальный контекст.ПолучитьФорму (Global context.GetForm) Глобальный контекст (Global context) ПолучитьФорму (GetForm) Синтаксис: ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>) Параметры: ---бла-блабла Возвращаемое значение: Тип: Форма; УправляемаяФорма. Описание: Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы. Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности. Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Вызов метода выполняет обращение к серверу. |
|||
34
Midaw
16.05.11
✎
16:05
|
(33) работает, уже проверил ) спс. ещё тут разобрался с написанием Элементы.Список.ТекущиеДанные...
|
|||
35
Smallrat
16.05.11
✎
16:05
|
(0) А насчет зависимости от имени логики - непонятно в чем проблема.
&НаКлиенте Процедура ПоказатьБланк(Команда) Если Команда <> Неопределено Тогда Печать(Команда.Имя); КонецЕсли; КонецПроцедуры |
|||
36
Midaw
16.05.11
✎
16:07
|
(35) проблема была в том, что на клиенте запрещено обращаться к свойству Заголовок. зато к имени можно и все становиться замечательно )
|
|||
37
Midaw
16.05.11
✎
16:10
|
я тут CRM Рарусовский немного мучал на управляемых формах. впечатления, на УФ можно сделать всё ))) поэтому ничего меня не остановит, главное не изобретать велосипед.
|
|||
38
Midaw
16.05.11
✎
16:15
|
кстати таблицу значений научился передавать с сервера ))) выглядит это ужасно ))) короче получается в виде списка значений с элементами типа "структура"...
|
|||
39
Defender aka LINN
16.05.11
✎
16:25
|
(38) Ну, молодец. А для нахрена ты ее передал?
|
|||
40
Midaw
16.05.11
✎
16:31
|
(39) надо, нетленка нестадартная.
|
|||
41
Defender aka LINN
16.05.11
✎
16:37
|
(40) Я понимаю, что написана криво. Но для нафига туда-сюда обратно гонять данные?
|
|||
42
Midaw
16.05.11
✎
16:54
|
(41) есть некий конструктор меню. для данного конструктора есть много параметров. вот они и тянутся для выполнения пункта меню. не тяни с меня больше подробностей )
|
|||
43
Defender aka LINN
16.05.11
✎
19:25
|
(42) Да мне пофигу, что у тебя делается. Зачем ты формируешь таблицу на сервере, преобразуешь ее в это угробище, потом передаешь на клиента и тут же отсылаешь обратно на сервер?
|
|||
44
Midaw
17.05.11
✎
09:00
|
(42) мне нужна табличная часть изначально
|
|||
45
Defender aka LINN
17.05.11
✎
09:01
|
(44) Ну, нужна - хорошо. Кто запрещает ее передать в вызываемую форму так, как это положено делать?
|
|||
46
Midaw
17.05.11
✎
09:02
|
(45) динамическим списком?
|
|||
47
Defender aka LINN
17.05.11
✎
09:05
|
(46) О_о Ты сам-то себе это как видишь?
Временное хранилище для таких вещей предназначено |
|||
48
Midaw
17.05.11
✎
09:07
|
(47) непонял, а хранилище здесь зачем? )
|
|||
49
Defender aka LINN
17.05.11
✎
09:19
|
(48) При том, что именно оно предназначено для временного хранения данных на сервере, как ни парадоксально. И можно (а в твоем случае так даже нужно) в него сохранить эту твою ТЗ и прочее, что доступно только на сервере, и потом восстановить в вызываемой форме.
|
|||
50
Midaw
17.05.11
✎
09:21
|
(49) в тонком клиенте нельзя обращаться к ТЗ. через хранилище или ещё как то передавать его бесполезно. именно поэтому все передается в списках и структурах, ибо иначе тонкий клиент шлёт нафиг.
|
|||
51
Defender aka LINN
17.05.11
✎
09:23
|
(50) Мне слова "на сервере" большими буквами написать и с буффонами вокруг них попрыгать?
|
|||
52
Midaw
17.05.11
✎
09:29
|
(51) так мне тз использовать надо на клиенте, ключевое ))) если бы задача была передать сервер-клиент-сервер, то проблем бы не было и с обычными типами
|
|||
53
Asmody
17.05.11
✎
09:30
|
(51) ну не хочет человек книжки читать, все думает методом тыкал как раньше обойтись
|
|||
54
Midaw
17.05.11
✎
09:34
|
(53) читаю уже ) но пытаюсь и вас понять... пример чтоли нарисуйте.
|
|||
55
Midaw
17.05.11
✎
09:35
|
я как бы по теме уже все сделал давно. но что предлагается хотелось бы все таки понять ) вдруг чего упустил
|
|||
56
Asmody
17.05.11
✎
09:47
|
(55) основные моменты уже рассказали: гонять туда-сюда надо как можно меньше, как можно реже, пользоваться врменным хранилищем. И вообще, УФ требуют понимания не только того, ЧТО ты хочешь сделать, но и КАК это будет работать.
Еще для понимания концепций, рекомендую ознакомиться с тем,как устроены современные веб-приложения, в частности, с технологией ajax, асинхронными вызовами и веб-сокетами. Это очень близко к тому, что происходит в УФ. |
|||
57
Midaw
17.05.11
✎
09:50
|
(56) php знаю, протокол http подробно тоже знаю. помоему меня вынуждают описать цель данных извращений, а я не готов обсуждать нетленку :)
|
|||
58
Asmody
17.05.11
✎
09:52
|
(57) знание языков и протоколов не при чем. важно понимание концепций
|
|||
59
Midaw
17.05.11
✎
10:31
|
(58) изучим ajax
новая проблема. как сделать отбор в табличной части на форме. как в динамическом списке делается я знаю или нужно изобразить табличную часть в виде динамического списка? |
|||
60
Midaw
17.05.11
✎
10:47
|
(59)+ нашел работает v8: 1с 8.2 Управляемая форма отбор строк в табличной части
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |