|
Клиентская процедура в общем модуле | ☑ | ||
---|---|---|---|---|
0
seraf
20.11.19
✎
14:47
|
Привет, как выполнить в общем модуле с признаком Клиент-Сервер код
//Предупреждает о пересохранении уже существующего документа &НаСервере Процедура ПроверкаДокументовПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если НЕ Источник.ЭтоНовый() Тогда Отказ = ПолучитьНаКлиенте(); Иначе Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = ("Откорректирован существующий документ " + Источник); Сообщение.Сообщить(); КонецЕсли; КонецПроцедуры &НаКлиенте Функция ПолучитьНаКлиенте() Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос("Изменяется существующий документ. Уверены?", Режим); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат Ложь; КонецЕсли; Возврат Истина; КонецФункции |
|||
1
seraf
20.11.19
✎
14:48
|
и под тег свой код прятать)
|
|||
2
Александр Б
20.11.19
✎
14:49
|
Сервер никаким образом не может вызвать клиентский метод.
|
|||
3
seraf
20.11.19
✎
14:51
|
общий модуль же клиент-серверный, нет?
|
|||
4
fisher
20.11.19
✎
14:52
|
(0) Очень просто.
Функцию ПолучитьНаКлиенте() нужно вызывать с клиента, а функцию ПроверкаДокументовПередЗаписью() - с сервера. |
|||
5
Александр Б
20.11.19
✎
14:53
|
(3) Это означает, что в нём могут располагаться как клиентские методы, так и серверные.
Но клиентские методы могут быть вызваны только с клиента. А серверные только с сервера, и с клиента, если указан признак для модуля "Вызов сервера". |
|||
6
fisher
20.11.19
✎
14:53
|
Упс. Не заметил, что они связаны
|
|||
7
Александр Б
20.11.19
✎
14:54
|
+(5) Но ни при каких обстоятельствах сервер не может вызвать клиентский метод.
|
|||
8
fisher
20.11.19
✎
14:55
|
Должно выдать ошибку в рантайме при попытке компиляции модуля на сервере.
|
|||
9
seraf
20.11.19
✎
14:58
|
Вообще по задумке это код вызываемый подпиской ПриЗаписи документов.
Он уже с сервера же приходит? а куда вопрос воткнуть бы чтобы документы не трогать |
|||
10
fisher
20.11.19
✎
15:04
|
(3) Если общий модуль клиент-серверный, то это означает всего лишь, что возможна его компиляция/доступность как на клиенте, так и на сервере. В соответствии с твоими директивами компиляции, в клиентской версии модуля будет присутствовать одна процедура, а в серверной - другая. В итоге в серверной версии ругнется на попытку обращения к несуществующей процедуре (второй).
(9) Уже никуда не воткнешь. Подписки на серверные события никакого интерактива не предусматривают, так как у них точка входа - сервер. Информации о клиенте-инициаторе события в этот момент нет и прямого способа с ним "связаться" тоже. |
|||
11
Mort
20.11.19
✎
15:07
|
Все вопросы, которые программа задаёт пользователю тупые по определению.
А "Уверены?" это самый тупой вопрос который можно задать пользователю. |
|||
12
Александр Б
20.11.19
✎
15:11
|
(11) Абсолютно ошибочное мнение.
Вопрос типа "Уверены?" - это как минимум банальная защита от случайного нажатия кнопки. Лично на мой взгляд тупо как раз не задавать вопрос перед выполнением какой-то очень серьёзной и длительной операции, меняющий данные в программе. Особенно массово. |
|||
13
seraf
20.11.19
✎
15:16
|
понял, ну все равно было полезно проговорить, спасибо
|
|||
14
Mort
20.11.19
✎
15:21
|
(12) Ну да, нахер всех ведущих дизайнеров ПО, нахер эпл.
Сделаем программу для пенсионеров эпилептиков, которые напостой случайно жмут кнопки. Еще у них должно быть херово с памятью, потому что все нормальные люди начиная со второго раза начинают тупо скипать раздражающий диалог. Они вообще обретают привычку скипать все вылезающие диалоги. Когда они лезут из каждой щели, ценность им 0. |
|||
15
seraf
20.11.19
✎
15:22
|
Тогда наверное размещу на форме скрытую надпись КОПИЯ и изменю подписку При Копировании чтоб она горела
Цель - не изменить случайно существующий и знать что ты новый копированием создал |
|||
16
Александр Б
20.11.19
✎
15:23
|
(14) Ну да, нахер всех разработчиков банковских приложений, которые перед выполнением любой финансовой операции в обязательном порядке запрашивают подтверждение.
|
|||
17
Mort
20.11.19
✎
15:27
|
Если программа вынуждена спрашивать что-то у пользователя, это значит импотент-дизайнер не смог наладить диалог пользователя с ПО без уточняющих вопросов. Как глухая бабка, которая вынуждена переспрашивать.
(16) Странно, банкомат меня не спрашивает "Уверены что хотите снять 50000?" Ввожу сумму и слышу шелест купюр. (15) Если нельзя изменять существующие доки, просто не давай его редактировать и записывать и делов. Сделай в КП кнопку "Включить редактирование" которую будет нажимать юзер если осознанно хочет изменить. |
|||
18
unenu
20.11.19
✎
15:27
|
УППшники начали миграцию в УФ, что ж это будет больно
|
|||
19
Александр Б
20.11.19
✎
15:30
|
(17) Ой ну хватит тупость нести.
Есть ситуации, когда подтверждение не нужно. А есть, когда оно обязательно! Ты предлагаешь никогда не спрашивать, даже если последствия необратимы, а это и есть тупость. Я говорю, что когда процедура необратима, надо обязательно спрашивать. |
|||
20
pechkin
20.11.19
✎
15:32
|
(17) ты наживаешь кнопку "выдать"
|
|||
21
pechkin
20.11.19
✎
15:33
|
а можешь не нажать и забрать карту. так что практически тот же вопрос
|
|||
22
Mort
20.11.19
✎
15:34
|
+(17) Кстати, вот так пришли к БПС-шному решению "Разрешить изменение реквизитов". Если делать не через зад, рано или поздно затронешь best practise.
(19) Если программа хочет, чтобы пользователь проверил введеные данные, она открывает для него эти данные чтобы он посмотрел и проверил. Исключительно в практических целях. А вопрос в диалоге "Вы уверены" это упражнения школьников. Потому что никакой практической ценности он не несет. |
|||
23
Mort
20.11.19
✎
15:37
|
(21) Это называется диалог. Пользователь говорит - программа отвечает. Не переспрашивает, не выдает идиотских предупреждений, а продолжает диалог. Вот годный дизайн. В телефоне у вас наверняка такой, если это не Windows Phone.
|
|||
24
Александр Б
20.11.19
✎
15:39
|
(22) Т.е. перед очисткой табличной части при перезаполнении данными необходимо создать некую отдельную форму, в которой отобразятся данные, которые пользователь собирается удалить, вместо того, чтобы задать простой вопрос "Табличная часть будет очищена. Продолжить?".
Да, крутой эпловский подход. |
|||
25
Mort
20.11.19
✎
15:56
|
(24) Нет не нужна тут отдельная форма. Но и вопрос про очищение тоже тупой. Гораздо круче было бы, если действие (если не понравилось) можно было бы отменить. Годные приложения в телефоне не спрашивают "удалить фотографию", а вылезает ненавязчивая кнопка "Отменить", которую можно проигнорировать ничего не делая. Вот подход.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |