|   |   | 
| 
 | Как задать вопрос на сервере? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Zombi 18.03.14✎ 11:12 | 
        Обработкой загружаю данные, все происходит в серверной процедуре. Хочу у пользователя спросить, не хочет ли он ручками 1 реквизит выбрать. Вопрос() доступен только на клиенте, а серверная процедура не видит клиентские. Как можно спросить у пользователя в данном случае?     | |||
| 1
    
        DexterMorgan 18.03.14✎ 11:13 | 
        ТС - никак.
 Наверное пользователь нажимает какую то кнопку? | |||
| 2
    
        mikecool 18.03.14✎ 11:13 | 
        вернуть управление на клиента, спросить, вернуть взад - все же просто     | |||
| 3
    
        Aleksey 18.03.14✎ 11:13 | 
        никак, по новым стандартам нужно спросить ДО отхода поезда     | |||
| 4
    
        mikecool 18.03.14✎ 11:13 | 
        (1) дануна?     | |||
| 5
    
        ДенисЧ 18.03.14✎ 11:14 | 
        Кого на сервере будем спрашивать?     | |||
| 6
    
        Defender aka LINN 18.03.14✎ 11:14 | 
        Серверная, тишина, и тут из стойки с сервером приложений: "Документ не провелся! Что делать?"     | |||
| 7
    
        mikecool 18.03.14✎ 11:14 | 
        (3) что за стандарты?     | |||
| 8
    
        Aleksey 18.03.14✎ 11:14 | 
        (4) А ты как думал     | |||
| 9
    
        DexterMorgan 18.03.14✎ 11:14 | 
        Спрашивай на клиенте кароче заранее и передавай на сервер     | |||
| 10
    
        Aleksey 18.03.14✎ 11:14 | 
        (2) Как???? как прервать серверную процедуру и вернуть управления на клиента, чтобы потом вернуться обратно     | |||
| 11
    
        Aleksey 18.03.14✎ 11:14 | 
        я на этот вопрос 3 год не могу получить ответ на этом форуме     | |||
| 12
    
        Aleksey 18.03.14✎ 11:15 | 
        (5) никого, вопрос спросить у клиента на кленте     | |||
| 13
    
        Zombi 18.03.14✎ 11:15 | 
        Непонятно, что сложного было бы в процессе выполнения серверной процедуры вернуться в клиента, спросить и ответ передать серверу.     | |||
| 14
    
        mikecool 18.03.14✎ 11:15 | 
        делал при подборе товара по штрихкоду - если подбирается более одного возвращал список на клиента, юзер выбираал, возвращал взад выбранное значение и продолжал процедуру далее     | |||
| 15
    
        Aleksey 18.03.14✎ 11:16 | 
        (13) сам в офигиваю. Главное на сервер с клиента можно в любой момент уйти, а вот обратно - фиг там     | |||
| 16
    
        DexterMorgan 18.03.14✎ 11:16 | 
        (2) Ага. а потом опять на сервер, а потом опять на клиент, ты наверное любишь ибацо туда-сюда     | |||
| 17
    
        mikecool 18.03.14✎ 11:16 | 
        +14 или я не так понял задачу в (0)?     | |||
| 18
    
        bborisko 18.03.14✎ 11:16 | 
        Просто вызывать с клиента серверные процедуры по очереди - придется разбить одну серверную на несколько.     | |||
| 19
    
        mikecool 18.03.14✎ 11:16 | 
        (16) мне пох, ибеца железо, я только формирую задачу     | |||
| 20
    
        Aleksey 18.03.14✎ 11:17 | 
        (14) это обратная ситуация когда ты на клиенте, и переодически сервер дергаешь     | |||
| 21
    
        mikecool 18.03.14✎ 11:17 | 
        +19 главное - задача работает     | |||
| 22
    
        mikecool 18.03.14✎ 11:17 | 
        (20) так и (0) обработкой грузит, старт наверное таки с клиента идет     | |||
| 23
    
        vde69 модератор 18.03.14✎ 11:18 | 
        делается так
 Процедура НаКлиентеКнопка1() Вопрос = НаСервереПодготовитьДанные(); Если ЗначениеЗаполнено(Вопрос) Тогда //задать вопрос и ввести доп данные КонецЕсли; НаСервереВыполнитьПроцедуру(); КонецПроцедуры | |||
| 24
    
        Aleksey 18.03.14✎ 11:19 | 
        (16) вроде бы не глупый
 Дано, загрузить 20 документов Вариант 1. Каждый документ обрабатываем на клиенте, затем данные грзим на сервере, и так 20 раз Вариант 2. Все делаем на сервере и лишь при необходимости возвращаемся на клиенте Вариант 3. Всё грузим на клиенте в ТЗ, переодически запрашивая и проверяя данные на сервере, а затем грузим скопом ТЗ на сервере Ну и в каком случае туда-сюда будет меньше? | |||
| 25
    
        Avganec 18.03.14✎ 11:19 | 
        (0) либо через деление на блоки, либо через распараллеливаемость.     | |||
| 26
    
        fisher 18.03.14✎ 11:19 | 
        (0) Разбить обработку на этапы 
 1) предварительное сканирование с формированием списка всех вопросов пользователю 2) получение ответов на вопросы 3) окончательная обработка (14) Можешь предложить универсальный способ сохранения серверного контекста между серверными вызовами? Пример - подготовил на сервере мега-таблицу. Начинаешь её обработку. Вернул в середине управление на клиента. Куда мега-таблицу серверную девать? В параметр сеанса паковать? | |||
| 27
    
        fisher 18.03.14✎ 11:23 | 
        (26) + Хотя вру. Знаю способ. Можно через модуль с повторным использованием возвращаемых значений извратиться.     | |||
| 28
    
        Aleksey 18.03.14✎ 11:25 | 
        (27) это как? При условии что речь про внешние обработки     | |||
| 29
    
        DexterMorgan 18.03.14✎ 11:31 | 
        (24) Че за вопрос? По возможности обращения к серверу с клиента нужно минимизировать. Т.е. для ТС нужно подготовить данные, задать все вопросы и т.д. Если же для вопроса нужно обращение к серверу, ну будет два вызова сервера, но для данной задачи больше быть не должно     | |||
| 30
    
        kumena 18.03.14✎ 11:51 | 
        (16) спасибо, посмеялся от души!     | |||
| 31
    
        H A D G E H O G s 18.03.14✎ 11:53 | 
        (12) Мозг сворачивается.
 Вот поэтому и нельзя семерочников к клиент-серверу подпускать. | |||
| 32
    
        fvadim 18.03.14✎ 11:56 | 
        (26) я может ошибаюсь, ПоместитьВоВременноеХранилище не поможет?     | |||
| 33
    
        Infsams654 18.03.14✎ 11:57 | 
        (0) не хочешь получить от серверного метода то, на что на клиенте можно ответить?     | |||
| 34
    
        PR 18.03.14✎ 12:04 | 
        (0) Кому?     | |||
| 35
    
        MSII 18.03.14✎ 12:09 | 
        (6) А потом из серверной внезапно поседевший админ выскакивает.     | |||
| 36
    
        H A D G E H O G s 18.03.14✎ 12:11 | 
        (32) Именно он и поможет. Только так. Но, сюрприз, сюрприз, с 8.2.14 МВТ нельзя в нем хранить.     | |||
| 37
    
        H A D G E H O G s 18.03.14✎ 12:12 | 
        Вообще забавно. Проблема высосана из пальца.
 Да, конечно, клиентский вызов сервера был бы нелишним и я не вижу причин в отказе от него, но раз сделали - так сделали, ничего страшного. | |||
| 38
    
        IKSparrow 18.03.14✎ 12:14 | 
        (10)(11) Регистр сведений и запись прогресса процедуры тебя спасет.     | |||
| 39
    
        kiruha 18.03.14✎ 12:17 | 
        (0)
 Достаточно просто - Запускаешь какую нибудь com в которой реализован вопрос, анализируешь ответ | |||
| 40
    
        НеБорис Нуралиев 18.03.14✎ 12:22 | 
        (37) Это концепция stateless-сервера.     | |||
| 41
    
        Aleksey 18.03.14✎ 12:23 | 
        (33) эээ например устройство куда нужно записать файл недоступно, нужно предложить пользователю записать в другое место
 При загрузки произошла ошибка записи (транзакция к примеру), нужно предложить пользователю провести интерактивно, или отказаться от загрузки Вариантов много когда нужно прервать работу и спросить что-то | |||
| 42
    
        kiruha 18.03.14✎ 12:26 | 
        (41)
 Я вызываю сторонние com объекты. Тот же Exel работает на ура. Но вопросов в транзакции конечно не задаю - это перебор | |||
| 43
    
        НеБорис Нуралиев 18.03.14✎ 12:27 | 
        (41) Вроде бы для таких целей придумали фоновые операции, аля "асинхронные события".
 Мозг конечно выворачивает, но логика в этом есть. | |||
| 44
    
        Infsams654 18.03.14✎ 13:24 | 
        (41) (43) что тут сложного - объясни клиенту что не так (если за рулём не китаец). См (37) "Проблема высосана из пальца. "     | |||
| 45
    
        fvadim 18.03.14✎ 13:34 | 
        (41) не корректнее записывать файл на клиенте?
 и как на счёт предварительной настройки? перед загрузкой крыжиками пользователь выбирает действия, например, если ошибка записи - прерывать/продолжать. предложение о ручном проведении можно выдать и после загрузки. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |