Имя: Пароль:
1C
1С v8
Помогите разобраться НаКлиенте-НаСервере 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
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если Параметры.Свойство("АдресТЗ") Тогда
       Задачи.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресТЗ));
   КонецЕсли;
КонецПроцедуры
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.