![]() |
![]() |
![]() |
|
Помогите разобраться НаКлиенте-НаСервере 8.2 | ☑ | ||
---|---|---|---|---|
0
Big_Nic
04.08.11
✎
21:58
|
Добрый день.
Помогите разобраться как правильно реализовать задачу. Есть регистр сведений в нем хранятся документы, которые надо обработать в определенное время. Обработка ожидания запускает Функцию из общего модуля, которая запросом собирает данные из регистра. Теперь надо открыть "Общую форму" и в ней заполнить таблицу значений результатом запроса. Немогу сообразить, как реализовать передачу ТЗ с сервера для заполнения ТЗ на форме. Чтобы получить форму нужно вызывать процедуру на клиенте, а как вызвать из серверной процедуры клиентскую? У меня что то не получается, сложность (для меня) еще в том, что есть только одна форма, да и то общая, все остальное в общих модулях. |
|||
1
Rie
04.08.11
✎
22:03
|
(0) А зачем с сервера вызывать что-то на клиенте? Нехорошо это как-то. Если нечто запускает функцию - то оно ведь дождётся завершения этой функции. И откроет нужную форму.
|
|||
2
Big_Nic
04.08.11
✎
22:05
|
Функцию запускает ОбработчикСобытия, я не знаю как в нем принять результат, тем более ТЗ.
|
|||
3
GROOVY
04.08.11
✎
22:14
|
"как реализовать передачу ТЗ с сервера для заполнения ТЗ на форме" - Через временное хранилище.
"а как вызвать из серверной процедуры клиентскую" - это невозможно. |
|||
4
Big_Nic
04.08.11
✎
22:23
|
Спасибо. Буду пробовать.
|
|||
5
Escander
04.08.11
✎
22:26
|
(0)заполнить что-бы на экране юзера это добро отображалось или что потом?
|
|||
6
Escander
04.08.11
✎
22:27
|
+(5) в смысле для чего всё это?
|
|||
7
Big_Nic
05.08.11
✎
14:15
|
Это напоминание, у документа есть время, когда напомнить, обработчик ожидания проверяет таблицу документов и время, если врем пришло, то нужно вывести на экран.
|
|||
8
Escander
05.08.11
✎
14:23
|
(7) тогда действительно через временное хранилище. А может идиологически правильнее сообщение пользователю?
|
|||
9
GROOVY
05.08.11
✎
14:26
|
(8) Не, фиг его знает в контексте какого окна оно откроется.
|
|||
10
Escander
05.08.11
✎
14:31
|
(9)зато не будет такой фигни, что как попрутся открываться окна одно за другим пачками... с нервным юзером истерика может случиться...
а лучше ещё так: банальоне сообщение что есть на что обратить внимание - юзер тыкает по кнопке - открывается форма со списком документов на которые пора обратить внимание... |
|||
11
Big_Nic
07.08.11
✎
17:50
|
При открытии окна со списком документов, я хочу прекратить действия обработчика ожидания. Чтобы не было куча окон, ну или добавлять список в открытое окно.
У меня сейчас проблема в том, что я не могу заполнить ТЗ в общей форме на стороне клиента. Форму можно получить только из клиентской процедуры, а ТЗ заполнить только в серверной, но у общей форму нет данных на сервере. Как мне это правильнее сделать? АдресТЗ=НапоминаниеНаСервере.ПолучитьЗадачиДляНапоминания(); ФормаЗадач=ПолучитьФорму("ОбщаяФорма.ФормаАктуальныхЗадач"); ФормаЗадач.Задачи.Загрузить(ПолучитьИзВременногоХранилища(АдресТЗ)); Пишет: Ошибка при вызове метода контекста (Загрузить) по причине: Метод недоступен на клиенте |
|||
12
Escander
07.08.11
✎
18:32
|
А кто мешает сделать вызов клиентской процедуры общей формы, которая САМА сделает вызов функции в контексте сервера?
Из клиента сервер всегда доступен! |
|||
13
Big_Nic
07.08.11
✎
18:58
|
Она сама не вызывает. У меня задача открыть форму, только когда нужно, для этого надо проанализировать данные и если форму выводить, то только тогда вывести.
Все решил вопрос, через параметры формы. ФормаЗадач=ПолучитьФорму("ОбщаяФорма.ФормаАктуальныхЗадач",Новый Структура("АдресТЗ",АдресТЗ)); |
|||
14
Big_Nic
07.08.11
✎
18:59
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("АдресТЗ") Тогда Задачи.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресТЗ)); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |