Имя: Пароль:
1C
1С v8
Регламентное задание
0 makkut
 
08.06.18
13:14
Добрый день!
Поступила задача сделать регламентное задание на обработку договоров контрагента. Автоматически переводить в статус "Не действующие" те договора срок действия которых истек и не пролонгированы.
Сначала я сделал обработочку, протестил её, отрабатывает нормально.
Далее создал общий модуль куда вбил код процедуры

Процедура ГЭС_ДоговораКонтрагентовНеДействующие() Экспорт
        
    Выборка    =    Справочники.ДоговорыКонтрагентов.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        Если Выборка.ГЭС_СтатусДоговора = Перечисления.ГЭС_СтатусыДоговоров.Действует    И Выборка.СрокДействия    < ТекущаяДата() И НЕ Выборка.СрокДействия =  Дата('00010101') И (Выборка.ГЭС_ВидДействияДоговора = Перечисления.ГЭС_ВидДейстивияДоговора.Бессрочный ИЛИ Выборка.ГЭС_ВидДействияДоговора = "")    Тогда
            
            ВыборкаОбъект    =    Выборка.ПолучитьОбъект();
            
            ВыборкаОбъект.ГЭС_СтатусДоговора =  Перечисления.ГЭС_СтатусыДоговоров.НеДействует;
                    
            ВыборкаОбъект.Записать();
                                    
        КонецЕсли;    
        
        
    КонецЦикла;    
        
КонецПроцедуры

далее создал рег задание привязал туда этот модуль.
установил параметры расписания. Но оно не срабатывает. В журнале регистрации пусто, что не так сделал?
1 bavkyz
 
08.06.18
13:22
(0) какая кон-ция?
2 makkut
 
08.06.18
13:23
(1) УПП 1.3
3 lubitelxml
 
08.06.18
13:25
Справочники.ДоговорыКонтрагентов.Выбрать(); - вырвите мне глаза
4 piter3
 
08.06.18
13:26
если не прошло.И это а запросом по религиозным соображениям не делается?
5 DexterMorgan
 
08.06.18
13:26
(0) Г0вн0код потому что
6 makkut
 
08.06.18
13:27
(3) скажите как правильно, однако обработкой этот код работает
7 DexterMorgan
 
08.06.18
13:29
(0) фу так писать
8 DexterMorgan
 
08.06.18
13:29
сначала выбрать все договора, а потом проверять условие на каждый
9 makkut
 
08.06.18
13:32
(8) и так работает всё нормально, не там советуете. вопрос в другом
10 piter3
 
08.06.18
13:34
что-то мне не нравиться еще,что сначала сравниваешь с текущей датой,а потом только с пустой
11 3achem
 
08.06.18
13:35
(9) Сделай запись в журнал, посмотри, что происходит. 95%, что расписание настроил не правильно.
12 lubitelxml
 
08.06.18
13:35
попробуй вручную запустить задание, без ошибок выполнится?
13 lubitelxml
 
08.06.18
13:36
расписание из конфигуратора убери, настрой в предприятии
14 anatoly
 
08.06.18
13:36
(0) а в консоли заданий что?
15 bavkyz
 
08.06.18
13:37
(2) КонсольЗаданий есть обработка? посмотрите может не создано ваше регзадание, поэтому не стартует....
16 makkut
 
08.06.18
13:37
(10) у договора может быть не проставлена дата окончания
17 makkut
 
08.06.18
13:39
(12) в консоле заданий пробовал и как предопределённое и как не предопределённое
18 makkut
 
08.06.18
13:40
(15) Есть там всё.... И там расписание настраивал..
19 lubitelxml
 
08.06.18
13:41
другие задания выполняются?
20 makkut
 
08.06.18
13:42
(19) да, можно ли отладить регл задание?
21 lubitelxml
 
08.06.18
13:43
да, поставь точку в общем модуле и руками запусти задание
22 Mankubus
 
08.06.18
13:43
(18) другие регл задания работают? А то может блокировка стоит?
23 makkut
 
08.06.18
13:47
(21) как его запустить то вручную? через консоль заданий? нет там кнопки запуска в окне регл заданий
24 Мандалай
 
08.06.18
13:50
Должна быть - не туда смотришь.
В отладчике в настройках поставь галочку автоматически подключаться к фоновым заданиям.
25 Мандалай
 
08.06.18
13:51
Если платформа позволяет запусти http отладку.
26 3achem
 
08.06.18
13:52
(23) Своя обработку в одну строку запускает регламентное задание
27 makkut
 
08.06.18
13:55
(24) походу что то с правами.... буду искать скачал с инета другую консоль один фиг правой кнопкой мыши на задании а запустить нет ...
28 Necessitudo
 
09.06.18
06:39
Файловая базенка-то?
29 Смешной 1С
 
09.06.18
06:51
(9) понятно, что работает. Но работает очень не оптимально. Переделай на запрос, в котором сразу отбор нужный установи. Тогда перебирать будешь только нужные тебе договоры.

Представь ситуацию из жизни: тебе нужно сварить гречневую кашу. Ты понимаешь, что для того чтобы сварить, тебе нужно сходить и купить гречки.
Но по твоему методу, ты идешь в магазин и покупаешь все крупы которые там есть, тащишь к себе домой их все, а потом стоишь дома перед кастрюлей и смотришь:
Если ЭтоГречка Тогда ПоложитьВКастрюлю; КонецЕсли;
Ты сваришь гречку, а остальные просто выкинешь. Зачем покупал? Зачем домой тащил?

И так будет при каждой варке любой каши...
30 Смешной 1С
 
09.06.18
06:52
(27) в журнале регистрации что-нибудь может пишет? База файловая или клиент серверная?
31 Сияющий в темноте
 
09.06.18
08:00
Во-впервых,через выбрать,это семерочный код,там он может работать быстрее запроса,в восьмерке же нужно выбирать запросом,тем более,что несколько условий.
И получать обьект только для тех элементов,которые меняем.

во-вторых,я бы разделил вопрос на два и попытался бы просто запустить регламентное задание,которое пишет в журнал строку и сразу завершается,и после того,как оно отработает,уже бы шел к нужной процедуре
32 Strogg
 
09.06.18
08:45
1) в параметрах отладки выбрать отладку фоновых заданий.
2) В случае, если база клиент-серверная, убедиться, что в свойствах не включена блокировка выполнения регл. заданий.
3) качнуть обработку консоль заданий с выполнением.
ну а список договоров к изменению, конечно. лучше получать запросом. Разница примерно как с условием в запросе, и параметрами ВТ...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой