|
Открытие формы обработки созданной на сервере | ☑ | ||
---|---|---|---|---|
0
mrCreator
30.08.16
✎
08:47
|
Добрый день!
Извечный вопрос сервера и клиента в УФ Задача такая: ОбработчикОжидания у меня вызывает процедуру на сервере, в которой выполняется запрос по регистру на наличие подходящих записей и если они есть (их может быть несколько) создается обработка, заполняется и открывается. а теперь собственно боль. На сервере форму открыть нельзя, а вся процедура начиная от проверки нужно ли создать и до открытия заполненной формы выполняется на сервере &НаСервере Процедура СоздатьУведомлениеПользователя() Экспорт запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | ЗапланированныеЗадачиСрезПоследних.Период, | ЗапланированныеЗадачиСрезПоследних.ДатаНапоминания, | ЗапланированныеЗадачиСрезПоследних.Задача, | ЗапланированныеЗадачиСрезПоследних.ПоследнийКомментарий, | ЗапланированныеЗадачиСрезПоследних.Важность, | ЗапланированныеЗадачиСрезПоследних.Автор, | ЗапланированныеЗадачиСрезПоследних.Состояние |ИЗ | РегистрСведений.ЗапланированныеЗадачи.СрезПоследних КАК ЗапланированныеЗадачиСрезПоследних |ГДЕ | ЗапланированныеЗадачиСрезПоследних.Состояние = Истина | И ЗапланированныеЗадачиСрезПоследних.Автор = &Автор | И ЗапланированныеЗадачиСрезПоследних.ДатаНапоминания < &ТекущаяДата"; Запрос.УстановитьПараметр("Автор", ПараметрыСеанса.ТекущийПользовательИБ); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); выборка = Запрос.Выполнить().Выбрать(); пока выборка.Следующий() цикл Уведомление = Обработки.УведомлениеОЗаплпнированнойЗадаче.Создать(); Уведомление.Автор = Выборка.Автор; Уведомление.Важность = Выборка.Важность; Уведомление.Задача = Выборка.Задача; Уведомление.Контрагент = Уведомление.Задача.Контрагент; Уведомление.Ответственный = Уведомление.Задача.Ответственный; Уведомление.ПоследнийКоментарий = Выборка.ПоследнийКомментарий; Уведомление.Состояние = Выборка.Состояние; КонецЦикла; КонецПроцедуры |
|||
1
iceman2112
30.08.16
✎
08:53
|
Результат = СоздатьУведомлениеПользователя();
Для Каждого Строка Из Результат Цикл // а форме уже делаешь обработку параметров ОткрытьФорму("Обработки.УведомлениеОЗаплпнированнойЗадаче.Форма", Строка); КонецЦикла; |
|||
2
aleks_default
30.08.16
✎
08:54
|
"ОбработчикОжидания у меня вызывает процедуру на сервере"
вызывай процедуру на клиенте |
|||
3
mrCreator
30.08.16
✎
08:57
|
(2) Суть от этого не поменяется, мне нужно запросом получить данные нужно создавать или не нужно, а если нужно то сколько и чем заполнять, а это только на сервере
|
|||
4
aleks_default
30.08.16
✎
08:59
|
Ну и получай на сервере нужные данные, кто тебе мешает, только возвращай потом на клиент и там вызывай форму
|
|||
5
mrCreator
30.08.16
✎
09:00
|
(1) с сервера на клиент на сколько я помню можно передавать только примитивные типы а ТаблицаЗначений или РезультатЗапроса таковыми не являются
|
|||
6
iceman2112
30.08.16
✎
09:01
|
(5) у тебя этот код на форме выполняется? или это общий модуль?
|
|||
7
mrCreator
30.08.16
✎
09:02
|
это общий модуль
|
|||
8
aleks_default
30.08.16
✎
09:02
|
(5) ну дык это же вообще неразрешимая проблема, да
|
|||
9
DmitrO
30.08.16
✎
09:06
|
Омерзительная 8ка не позволяет передавать на клиента таблицу значений, но ее можно пихнуть во временное хранилище, а формы уведомлений открывать передавая им адрес в хранилище и номер строки в этой ТЗ.
|
|||
10
DmitrO
30.08.16
✎
09:07
|
а еще одинесники очень уважают массив структур :)
|
|||
11
iceman2112
30.08.16
✎
09:09
|
(9) массив структур
|
|||
12
aleks_default
30.08.16
✎
09:09
|
Вообще странная какая-то задача - обработчиком ожидания открывать форму обработки... А что потом с этой формой будут делать?
|
|||
13
DmitrO
30.08.16
✎
09:14
|
(12)а что странного.. сидишь такой сидишь, засыпаешь, и раз три формы тебе открылось, НА ПОЛУЧИ.. здорово
а если что-то делал при этом, какую-то форму заполнял.. поэтому на работе лучше ничего не делать, спать.. |
|||
14
oslokot
30.08.16
✎
09:14
|
(11) +1
для этого даже во всех типовых есть ОбщегоНазначения.ТаблицаЗначенийВМассив() на сервере запрос в таблицу и возвращай массив структур |
|||
15
aleks_default
30.08.16
✎
09:17
|
(13) А точно, это, наверное, проверка на то спит сотрудник на работе или нет. А по тому сколько форм открыто, можно считать сколько проспал...
|
|||
16
DmitrO
30.08.16
✎
09:19
|
(14)ога, т.е. это понимают все кто в ней пишет (даже разработчики БСП), но этого не понимают разработчики платформы (т.е. те кто в ней не пишет).
|
|||
17
mrCreator
30.08.16
✎
09:30
|
(12) пользователь ставит себе напоминание о каком то действии и программа должна переодический смотреть нет ли подошедших событий и сообщить об этом, для этого открывается форма с данными об этом событии и из этой формы можно либо перенести событие на более поздний срок либо перейти к выполнению задачи.
Вот для чего это нужно. |
|||
18
DmitrO
30.08.16
✎
09:34
|
(0)совет: сделай одну форму для отображения всех уведомлений, обработчик ожидания размести в ней, данные получай в ее контексте (получишь в ТЗ или ТЧ), форму поставь на рабочий стол, чтобы всегда торчала, а внимание пользователя привлекай ПоказатьОповещениеПользователя, либо миганием панели задач ОС (управление панелью задач ОС есть начиная с 8.3.8).
|
|||
19
aleks_default
30.08.16
✎
09:36
|
(18)+1 или сообщай через ПоказатьОповещениеПользователя()
|
|||
20
mrCreator
30.08.16
✎
09:42
|
Всем спасибо ребят! Воспользовался масивом структур.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |