|
Как подключить обработчик ожидания к процедуре с параметром? | ☑ | ||
---|---|---|---|---|
0
Storm2404
15.04.13
✎
11:54
|
1с 8.2 управляемое приложение. Если без параметра, то можно было бы так написать: ПодключитьОбработчикОжидания("ОбработчикНапоминаний", 60);
а как если с параметром написать? Код в модуле управляемого приложения: Процедура ПриНачалеРаботыСистемы(КоличествоЗаписей) ОбработчикНапоминаний(КоличествоЗаписей); ПодключитьОбработчикОжидания("ОбработчикНапоминаний(КоличествоЗаписей)", 60); //Вот этот момент! КонецПроцедуры &НаКлиенте Процедура ОбработчикНапоминаний(КоличествоЗаписей) СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей); Если КоличествоЗаписей > 0 Тогда ОткрытьФорму("Документ.Напоминания.Форма.ФормаСписка1") КонецЕсли; КонецПроцедуры; |
|||
1
ДенисЧ
15.04.13
✎
11:54
|
И какой параметр туда передаваться будет?
|
|||
2
cw014
15.04.13
✎
11:57
|
(1) Просто когда процедура вызывается, она телепатически считыывает у юзверя из головы хаотичное число и подставляет в параметр
|
|||
3
Storm2404
15.04.13
✎
11:57
|
количество записей наверное
|
|||
4
Maxus43
15.04.13
✎
11:58
|
дак храни в корнстанте или параметрах сеанса нужное значение, потом считывай
|
|||
5
cw014
15.04.13
✎
11:59
|
(3) количество записей наверное???
То есть ты сам не знаешь, что туда передаешь, но точно знаешь, что нужно? |
|||
6
Storm2404
15.04.13
✎
12:05
|
мне нужно чтобы обработчик ожидания вызывал вот эту процедуру:
&НаКлиенте Процедура ОбработчикНапоминаний(КоличествоЗаписей) |
|||
7
ale-sarin
15.04.13
✎
12:06
|
(6) Ну... и откуда программа узнает чему должно быть равно КоличествоЗаписей? Каждый раз разное или нет?
|
|||
8
В тылу врага
15.04.13
✎
12:08
|
а почему все твои последние темя в секции "Математика и алгоритмы"?
|
|||
9
Storm2404
15.04.13
✎
12:08
|
из серверных механизмов(общий модуль) процедура, там считает количество записей попавших в запрос:
СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей); |
|||
10
ale-sarin
15.04.13
✎
12:11
|
(9) если у тебя здесь "СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний" определяется КОличествоЗаписей, то нахрена параметр до этого нужен?
Процедура ОбработчикНапоминаний() КоличествоЗаписей = 0; СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей); Если КоличествоЗаписей > 0 Тогда ОткрытьФорму("Документ.Напоминания.Форма.ФормаСписка1") КонецЕсли; КонецПроцедуры; Так пойдет? |
|||
11
Maxus43
15.04.13
✎
12:11
|
(9) да неважно, ответ на (0) - нельзя. Подключается 1 раз всего обработчик, и срабатывает с определённым интервалом, вот и вся его задача.
Считай всё в своей процедуре специальной... ПодключитьОбработчикОжидания("ОбработчикНапоминанийМой", 60); Процедура ОбработчикНапоминанийМой() Экспорт Записей = ОбщийМодулькакойто.СчитаемСколькоЗаписей; СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний(Записей); ... |
|||
12
Storm2404
15.04.13
✎
12:16
|
ale-sarim, по вашему коду выдает ошибку недопустимое значение параметра 1 при запуске
|
|||
13
ale-sarin
15.04.13
✎
12:18
|
(12) Может на это ругается? ПодключитьОбработчикОжидания("ОбработчикНапоминаний(КоличествоЗаписей)", 60); //Вот этот момент!.
Убрать нафиг "(КоличествоЗаписей)" |
|||
14
Storm2404
15.04.13
✎
12:18
|
Maxus43, а почему "экспорт" у меня в том же модуле обе процедуры клиентские
|
|||
15
Storm2404
15.04.13
✎
12:19
|
Нет, уже убрал:
Процедура ПриНачалеРаботыСистемы(КоличествоЗаписей) ОбработчикНапоминаний(); ПодключитьОбработчикОжидания("ОбработчикНапоминаний", 3); КонецПроцедуры &НаКлиенте Процедура ОбработчикНапоминаний() Экспорт КоличествоЗаписей = 0; СерверныеМеханизмы.ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей); Если КоличествоЗаписей > 0 Тогда ОткрытьФорму("Документ.Напоминания.Форма.ФормаСписка1") КонецЕсли; КонецПроцедуры; |
|||
16
ale-sarin
15.04.13
✎
12:21
|
(15) Смешно.
А это что такое? ПриНачалеРаботыСистемы(КоличествоЗаписей) |
|||
17
Storm2404
15.04.13
✎
12:22
|
это уже тоже убрал, все равно параметр нужен
|
|||
18
Storm2404
15.04.13
✎
12:23
|
тьфу, не параметр нужен, а недопустимое значение параметра
|
|||
19
ale-sarin
15.04.13
✎
12:24
|
(17) В какой строке ругается? Отладчик запустил хоть?
|
|||
20
Storm2404
15.04.13
✎
12:26
|
{МодульУправляемогоПриложения(3)}: Ошибка при вызове метода контекста (ПодключитьОбработчикОжидания)
ПодключитьОбработчикОжидания("ОбработчикНапоминаний", 3); по причине: Недопустимое значение параметра (параметр номер '1') Недопустимое значение параметра (параметр номер '1') |
|||
21
Storm2404
15.04.13
✎
12:28
|
ПодключитьОбработчикОжидания("ОбработчикНапоминаний", 3);
если на этой строке точку останова ставлю программа зависает, точнее загрузка крутится бесконечно |
|||
22
Storm2404
15.04.13
✎
12:38
|
Процедура ПриНачалеРаботыСистемы(КоличествоЗаписей)
ОбработчикНапоминаний(); //ПодключитьОбработчикОжидания("ОбработчикНапоминаний", 3); КонецПроцедуры стоит закоментировать эту строчку и форма открывается |
|||
23
Storm2404
15.04.13
✎
13:39
|
&НаКлиенте
Процедура ПриОткрытии(Отказ) Список.Параметры.УстановитьЗначениеПараметра("ТекущаяДатаНачала", ТекущаяДата()); Список.Параметры.УстановитьЗначениеПараметра("ТекущаяДатаОкончания", ТекущаяДата()); ПодключитьОбработчикОжидания("ВызовПроверки", 5); КонецПроцедуры &НаКлиенте Процедура ВызовПроверки() КоличествоЗаписей = 0; ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей); Если КоличествоЗаписей > 0 Тогда ОткрытьФорму("Документ.Напоминания.Форма.ФормаСписка1") КонецЕсли; КонецПроцедуры &НаСервере Процедура ПроверкаНаличияАктуальныхНапоминаний(КоличествоЗаписей) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Напоминания.Напоминать |ИЗ | Документ.Напоминания КАК Напоминания |ГДЕ | Напоминания.Напоминать = ИСТИНА | И Напоминания.ДатаНачала < &ТекущаяДатаНачала | И Напоминания.ДатаОкончания > &ТекущаяДатаОкончания | И Напоминания.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("ТекущаяДатаНачала", ТекущаяДата()); Запрос.УстановитьПараметр("ТекущаяДатаОкончания", ТекущаяДата()); Выборка = Запрос.Выполнить().Выбрать(); КоличествоЗаписей = Выборка.Количество(); КонецПроцедуры блин похоже в процедуре при начале работы системы модуля управляемого приложения нельзя обработчик ожидания подключить. сделал, все в модуле формы списка, при открытии формы подключается обработчик, но для этого потребовалось вынести форму на рабочий стол, чтобы она автоматом открывалась при запуске программы. получилось одна на рабочем столе открывается, другая в отдельном окне, нельзя её как-нибудь с рабочего стола скрыть, чтобы только всплывающее окно выскакивало? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |