Имя: Пароль:
1C
 
Не выполняется регламентное задания
0 myr4ik07
 
27.01.15
13:59
Запуск регламентного задания
Люди добрые, помогите разобраться с запуском регламентных заданий на платформе 1С:Предприятие 8.3 (8.3.4.389)
Конфигурация самописная. Управляемые формы.
Хочу сделать проверку на наличие установленной галки в документе.
И так, создаю регламентное задание ПроверкаОповещения с галками Использование, Предопределенное с расписанием Каждый день, каждые 10 секунд. Имя метода ведет на Общий модуль Модуль Пользовательский, в котором стоят галки Сервер, Вызов с сервера к Процедуре
Процедура ПроверкаОповещения() Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Заявка.Архивный,
    |    Заявка.Продиагностировано,
    |    Заявка.КлиентОповещен,
    |    Заявка.Отремонтировано,
    |    Заявка.Ссылка,
    |    Заявка.ТоварОтдан
    |ИЗ
    |    Документ.Заявка КАК Заявка";
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();    
    Если ПроверитьПрава() Тогда
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Если Не ВыборкаДетальныеЗаписи.Архивный Тогда
                Если ВыборкаДетальныеЗаписи.Отремонтировано И Не ВыборкаДетальныеЗаписи.ТоварОтдан Тогда
                    Сообщить("Номенклатура с документа  " + ВыборкаДетальныеЗаписи.Ссылка + "   отремонтирована!");
                КонецЕсли;            
                Если ВыборкаДетальныеЗаписи.Продиагностировано И Не ВыборкаДетальныеЗаписи.КлиентОповещен Тогда
                    Сообщить("Номенклатура с документа  " + ВыборкаДетальныеЗаписи.Ссылка + "  продиагностирована но Клиент не оповещен!");
                КонецЕсли;        
            КонецЕсли;                    
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
Тут у меня проверяется Если стоит галка Отремонтирован но не стоит галки Оповещен должно быть уведомление пользователю в списке Документов, только пользователю
Функция  ПроверитьПрава() Экспорт
    Права = РольДоступна("Кассир");
    Возврат Права;    
КонецФункции
должно приходить уведомление о Не оповещен клиент и нужно оповестить.
Читал, что в 8.3 не нужно создавать дополнительную Обработку которая будет делать вот это
Процедура ОбработкаЗаданий
  ВыполнитьОбработкуЗаданий
КонецПроцедуры
ПодключитьОбработчикОжидания"ОбработкаЗаданий"  
НО, задание на выполняется у меня, документы «делаю» на такой лад, что бы «документ» был отремонтирован но не оповещен, запускаю два пользователя, один из полными правами, второй из правами кассира и ничего не происходит, сообщение из запроса нет.
Запрос рабочий так как вызывая его по событию проведения документа запрос выполняется.
Так же, в модуле Управляемого приложения  написал
Процедура ПроверкаЗаданий()  Экспорт
    ВыполнитьОбработкуЗаданий();
КонецПроцедуры
ПодключитьОбработчикОжидания("ПроверкаЗаданий",3);
Но по замыслу регламентное задание не показывает уведомление по запросу.
Поставил точку останова на Процедура ПроверкаЗаданий()  Экспорт
При запуске 1с предприятие отладка происходит, останавливается на
Процедура ПроверкаЗаданий()  Экспорт
и все, дальше в модуль по регламентному заданию f11 не идет.

Почему не выполняется регламентное задание?
1 myr4ik07
 
27.01.15
14:02
файловы режим
2 Лефмихалыч
 
27.01.15
14:05
оно выполняется, просто показывает уведомления одному и тому же пользователю - роботу, под которым запущено регламентное задание. Ты, судя по всему, путаешь регламентное задание и обработку ожидания
3 myr4ik07
 
27.01.15
14:13
(2) а куда смотреть, что бы увидеть Сообщить()?
Есть две Роли: Кассир и Сервис
Вот я хочу, что бы когда пользователь с правами Сервис поставил галку на Отремонтирован сразу регламентное задание проверило наличие этой галкий в документах и если есть и проверила, что нет галки Оповещен Только Пользователю с правами Кассир показало Сообщить("то и то"); где бы он не находился, имею ввиду, то ли в документе каком то то ли в списке документов
4 Лефмихалыч
 
27.01.15
14:14
(3) регламентное задание не может что-то сообщить пользователю.
Посмотри. Документацию. Про обработку ожидания.
А регламентное задание свое выкоси к херам, оно не нужно
5 myr4ik07
 
27.01.15
14:15
(2) мне обработчики наверное не подойдут, так как проверка на наличие галки должна быть запущена в фоновом режиме, неважно какой обьект сейчас открыт и открыт ли
6 myr4ik07
 
27.01.15
14:15
(4) будьте добры, приведите полезный мануал по Обработчику ожидания, спасибо, что бы сразу начать с полезного
7 Лефмихалыч
 
27.01.15
14:16
а еще лучше бизнес процесс сделай с нормальными человечьими задачами, которые надо выполнить, чтобы они стали выполнены
8 Лефмихалыч
 
27.01.15
14:16
(6) контролэфодин
9 myr4ik07
 
27.01.15
14:17
(4) так, а не регл. задание ж сообщает пользователю, а метод в процедуре модуля, или я ошибаюсь?
10 myr4ik07
 
27.01.15
14:21
(8) так это типа означает, что регл задание запускается?!
11 Лефмихалыч
 
27.01.15
14:22
(9) ошибаешься
12 myr4ik07
 
27.01.15
14:37
(11) понял, ознакамливаюсь с ожиданием, спасибо
13 myr4ik07
 
27.01.15
15:07
(11) а подскажите как выйти с ситуации ПодключитьОбработчикОжидания() тут нет сервера
а название обработчика ожидания - процедуры у меня данные получает из сервера

т.е.

&НаКлиенте
Процедура ПриОткрытии(Отказ)    
    ПодключитьОбработчикОжидания("ПроверкаОповещения", 10);
КонецПроцедуры

&НаСервере
Процедура ПроверкаОповещения()
...
КонецПроцедуры
14 myr4ik07
 
27.01.15
15:09
ну
если
&НаСервере
Процедура ПриОткрытии(Отказ)    
    ПодключитьОбработчикОжидания("ПроверкаОповещения", 10);
КонецПроцедуры

&НаСервере
Процедура ПроверкаОповещения()
...
КонецПроцедуры
то не выпоняется
это у меня при открытии списка документов
15 myr4ik07
 
27.01.15
15:24
хух
&НаКлиенте
Процедура ПриОткрытии(Отказ)    
    ПодключитьОбработчикОжидания("ПолучатьСтатус", 10);
КонецПроцедуры

&НаКлиенте
Процедура ПолучатьСтатус(Отказ)    
  ПроверкаОповещения();
КонецПроцедуры

Процедура ПроверкаОповещения()
...запрос..
КонецПроцедуры
16 myr4ik07
 
27.01.15
15:32
(11) я жму руку вам, спасибо за направление в нужное русло, все элементарно с помощью ПодключитьОбработчикОжидания() решается
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан