|
Вызов формы из &НаСервере | ☑ | ||
---|---|---|---|---|
0
korableg
23.07.13
✎
06:38
|
Может есть какая нибудь стандартная форма на которой можно сформировать таблицу значений? Может как нибудь можно вызвать из серверной функции? Может что-то типа "СообщениеПользователю". Кто знает подскажите? Говорить что надо было делать &НаКлиенте не нужно, если бы это было возможно сделал бы.
|
|||
1
korableg
23.07.13
✎
06:41
|
забыл сказать Конфигурация УТ 11
|
|||
2
Лодырь
23.07.13
✎
06:45
|
ЗначениеВРеквизитФормы не подойдет?
|
|||
3
Wobland
23.07.13
✎
06:49
|
(0) ТабДок делай и отдавай клиенту. построителем строчки 4-5 выйдет
|
|||
4
Wobland
23.07.13
✎
06:50
|
и таки да! надо было делать на клиенте или применять другую логику
|
|||
5
korableg
23.07.13
✎
06:53
|
(3) проблема в том что где идет нужная мне проверка находится на глубине 5 серверных процедур, а мне нужно выполнить эту проверку и вывести форму чтоб пользователь выбрал нужное значение и она продолжила после этого обработку.
(4) я бы сделал, разработчики 1С решили сделать именно так. |
|||
6
korableg
23.07.13
✎
06:54
|
Есть вариант в самом начале сделать проверку и дописать параметры к этим процедуром с уже готовым значением - поддержите если считаете, что это самый верный вариант ,если нет, то подскажите.
|
|||
7
Лодырь
23.07.13
✎
06:54
|
(5) Тогда делай как в (2) написал. Вполне работает.
|
|||
8
Wobland
23.07.13
✎
06:54
|
(5) меняй логику, это клиент-сервер
|
|||
9
sonsimo
23.07.13
✎
06:55
|
(0) Это невозможно. Открыть форму можно только с клиента
|
|||
10
andreymongol82
23.07.13
✎
06:58
|
(0) Декомпозиция наше все. Будь мужиком. Используй правильную логику!
|
|||
11
Wobland
23.07.13
✎
06:58
|
(9) ему надо придумать, как юзеру подсунуть выбор посреди процесса на сервере
|
|||
12
sonsimo
23.07.13
✎
06:58
|
+(9) самый кошерный способ - вместо нужной формы открыть промежуточную, показать таблицу пользователю и открыть нужную форму, передав ей в параметрах таблицу
|
|||
13
sonsimo
23.07.13
✎
07:00
|
(11) посреди процесса - нельзя. С сервера на клиент по желанию не уйти. Только естественным путем
|
|||
14
korableg
23.07.13
✎
07:06
|
Ладно, попробую сделать дополнительный параметр этим процедурам и передавать его, выполнив проверку заранее.
(2) подошлоб, если выводить на эту же форму, а тут нужно создавать новую и там выбирать. |
|||
15
Лодырь
23.07.13
✎
07:22
|
(14) Можно вернуть в реквизиты прежней формы, и открыть новую форму передав их через параметры. И да, это извращенно.
|
|||
16
ИС-2
naïve
23.07.13
✎
07:49
|
мне вот тоже интересно как такое сделать по нормальному.
(0) может в серверном модуле вызвать исключение, которое обрабатывается на клиенте? |
|||
17
Wobland
23.07.13
✎
07:50
|
(16) разделить весь процесс на две части, вызываемые с клиента. имхо только это вписывается в парадигму клиент-серверной архитектуры
|
|||
18
IamAlexy
23.07.13
✎
07:58
|
временное хранилище в поставке вашей платформы отсутствует ?
|
|||
19
IamAlexy
23.07.13
✎
07:58
|
обработки ожидания отключены в целях экономии?
|
|||
20
ИС-2
naïve
23.07.13
✎
09:01
|
(16) сам не проверял, но можно использовать новый СообщениеПользователю.
В хэлпе написано: Если сообщение еще не было показано пользователю (такое может быть при работе на стороне сервера, в фоновом задании, внешнем соединении или Web-сервисах), можно получить накопленные сообщения методом ПолучитьСообщенияПользователю стоп, это не то, что нужно в (0) |
|||
21
sonsimo
23.07.13
✎
09:06
|
(18), (19) и как эти механизмы помогут проблеме из (0)?
Все равно на клиент с сервера не уйти, а требуется именно это - открыть модально форму из сервера, получить параметры, вернуться на сервер и что-то с этими параметрами сотворить |
|||
22
ИС-2
naïve
23.07.13
✎
09:07
|
(17) вот это и неправильно. Тот факт, что в 1C победили инженеры может привести чуть ли не к гибели всей системы т.к из-за это стоимость разработки сильно повышается.
Кто готов платить за батон хлеба не 15 руб, а 17 только из-за того, что учет произоводства ведется с использованием "клиент-серверной парадигмы"? Я нет. 1C должна быть максимально эффективной в плане экономии при разработке, а разработчики вместо понимания этого стали витать где-то в своих облаках. А на все претензии отвечать "это не кошерно". |
|||
23
famnam
23.07.13
✎
09:22
|
(0) Ваш процесс поделить на две части: 1) предварительное формирование данных (например, выборка), результат поместить во временное хранилище. Вернуться на клиент и спросить пользователя, что делать. А затем 2) извлечение из вр.хранилища и обработать данные.
|
|||
24
ИС-2
naïve
23.07.13
✎
09:26
|
(23) "гладко было на бумаге да забыли про овраги" (c).
Ну и как быть если, надо вносить изменения в типовой функционал? Все переписать? |
|||
25
olegves
23.07.13
✎
09:52
|
+ (17) только так и не иначе.
У меня была полгода назад задача, в которой пришлось разделить серверный процесс на 2 части, поскольку пользователь должен был повлиять на один из параметров второй части серверного процесса 1-я часть формировала список для выбора этого параметра, а 2-я часть уже получала окончательные данные. |
|||
26
olegves
23.07.13
✎
09:53
|
+ (25) а если тебе нужна таблица значения, доступная на клиенте и на сервере, то создай реквизит формы этого типа и вызывай серверные контекстные процедуры этой формы
|
|||
27
Полотенчик
23.07.13
✎
10:21
|
(18) + 1
Приходится какой-то пошаговый процесс разбивать на тучу клиент-серверных функций: на сервере считать, помещать рассчитанные таблицы в хранилище, возвращать на клиент адрес хранилища, выбирать что-то на клиенте, опять вызывать серверную функцию, которая по адресу достает из хранилища таблицы, что-то делает с учетом выбранных/установленных параметров на клиенте, опять запоминать в хранилище и т.д. ps бОльшая часть геморроя из-за невозможности нормального использования МенеджераВременныхТаблиц в серверных процедурах, которые разбиваются клиентскими вызовами "Какая же гадость эти ваши УФ" |
|||
28
olegves
23.07.13
✎
10:53
|
(27) это не гадость, а цена универсальности клиентской части, в т.ч. многоплатформенности и быстродействия.
Не нравится - иди пиво продавать. 1С скоро все переведет на УФ |
|||
29
Полотенчик
23.07.13
✎
11:01
|
(28) Какое быстродействие? 95% всего времени работы - это Запрос.Выполнить(), который и так выполняется на сервере. Пустяковые расчеты выполнять не на клиенте, а не сервере ценой такого геморроя - непозволительная роскошь.
Многоплатформенность - да, но спорный вопрос. Количество невинды минимально. Терминальная лицензия (для RemoteApp) стоит 100 долл. на всю жизнь, а не сотни/тысячи человекочасов для перевода/поддержки УФ. |
|||
30
korableg
23.07.13
✎
11:15
|
Проблему разрешил как и писал в (14) проверкой на начальном этапе и передачей параметра в процедурах на сервере.
Насчет гавнистости уф от себя добавлю, что как ни крути как-то это более логично смотрится и более масштабируемо в конечном итоге + экономия для предприятия, хотя смотря как посмотреть - сервер уже однозначно нужен по мощнее. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |