Имя: Пароль:
1C
1С v8
Тестирование регламентного задания
0 NIGHTHUNTER
 
11.05.22
10:14
Имеется обработка, с функцией осуществляющей уведомления на электронный адрес пользователей.
Обработка сделана как внешняя и добавляется во внешние отчеты и обработки. Ей я задаю расписание. Что бы проверить ее и отладить.
Но, точки останова не срабатывают в обработке.

Подскажите как мне отладить это регламент.


//
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации                 = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид             = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    НоваяКоманда                         = ПараметрыРегистрации.Команды.Добавить();
    //представление команды в пользовательском режиме
    НоваяКоманда.Представление           = "ОтправкаУведомленийНаРассчитаннуюДату_0_4";
    НоваяКоманда.Идентификатор           = НоваяКоманда.Представление;
    НоваяКоманда.Использование           = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Возврат ПараметрыРегистрации;
КонецФункции    
//
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
    Если ИдентификаторКоманды = "ОтправкаУведомленийНаРассчитаннуюДату_0_4" Тогда
        ОтправкаУведомленийНаРассчитаннуюДату_0_4();
    КонецЕсли;
КонецФункции
//


Почему не срабатывают точки останова7 Делаю запускать каждые три секунды.
1 PLUT
 
11.05.22
10:18
попробуй заклинание /РежимОтладки в параметры запуска ИБ добавить

в пофигураторе в Отладке поставь галочку подключаться к фоновым заданиям

и эта, на сервере 1С должна быть включена отладка (если клеент-серверный режЫм)
2 NIGHTHUNTER
 
11.05.22
10:33
(1) Ясно. Все должно работать. Я галки ставил. Но что то не срабатывает (. http://joxi.ru/Vm6jkblC37nqam
3 NIGHTHUNTER
 
11.05.22
10:36
Обработка добавлена во внешние отчеты и обработки. Расписание задано. Отладка фонового задания галка установлена.
Но точки останова не срабатывают.
4 Галахад
 
гуру
11.05.22
10:40
Может оно по ошибке валиться, еще на этапе компиляции? В модуле нет клиентских методов?
5 PLUT
 
11.05.22
10:41
(3) >Но точки останова не срабатывают

грусть пичаль

добавь запись в ЖыР

синтаксис:
ЗаписьЖурналаРегистрации(<ИмяСобытия>, <Уровень>, <ОбъектМетаданных>, <Данные>, <Комментарий>, <РежимТранзакции>)

Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
    Если ИдентификаторКоманды = "ОтправкаУведомленийНаРассчитаннуюДату_0_4" Тогда
        ЗаписьЖурналаРегистрации("йоптыть!", УровеньЖурналаРегистрации.Ошибка);
        ОтправкаУведомленийНаРассчитаннуюДату_0_4();
    КонецЕсли;
КонецФункции

посмотри в Журнале регистрации
6 NIGHTHUNTER
 
11.05.22
12:28
То о чем я спросил в этой теме. Невозможно выполнить. При подключении обработки во внешние отчеты и обработки, и настройки расписания, ее уже не отловить точкой останова ее выполнение.
Остается вопрос. как отлаживать этот механизм? Или остается полностью ему доверяться?
7 Kigo_Kigo
 
11.05.22
12:38
отладь как внешнюю(не из справочника)
8 NIGHTHUNTER
 
11.05.22
12:40
(7) Это понятно. Хотел увидеть как будет работать.
Я понял что этого не сделать, и отладить можно так, если регламентное задание в составе конфигурации.
9 ManyakRus
 
11.05.22
12:49
1) ДополнительныеОтчетыИОбработки при открытии обработки создаёт временный файл, который надо открыть для отладки, а не оригинальный файл обработки
(сложновато)
2) Свою внешнюю обработку надо доделать чтоб на ней были нужные кнопки и код который можно отловить. Например сделать свою кнопку "Печать" которую никто не делает из-за лени.
10 PLUT
 
11.05.22
12:49
(8) у меня отлаживаются любые фоновые задания, если выполнены условия (1)

увидеть, что фоновое выполнялось, можно по "журналу" в обслуживании регл. заданий (в ERP это обормотка.РегламентныеИФоновыеЗадания)

ну и если отладку по какой-то причине низзя или не шмогла - пиши всякую чушь в ЖыР (журнал регистрации)
11 Kigo_Kigo
 
11.05.22
12:51
По моему встречал способ, сделать намеренно ошибку и поставить точку останова по ошибке, но это не точно
12 PLUT
 
11.05.22
12:53
+(1) иногда у сеанса клиентского в Параметрах нужно разрешить "Отладка в текущем сеансе", это если нужно у пользователя какого-то отладить даже на другом компуктере
13 Kigo_Kigo
 
11.05.22
12:54
(12) Тебе же говорят, отлаживается не само фоновое задание, а обработка которая из этого фона вызывается
14 Kigo_Kigo
 
11.05.22
12:54
(13) Которая внесена в справочник ВнешниеОбработки, в этом весь затык
15 PLUT
 
11.05.22
13:03
(13)
> в этом весь затык

это внешняя обормотка по стандарту БСП, у которой можно задать расписание

запускалось ли само фоновое - можно в журнале регистрации или в "консоли" обслуживания регл. заданий

если ашипки в самой обормотке, уже писали выше - добавить форму и команду, которая эту же функцию дёрнет. но сдается мне, если автор фоновые не может отловить, то и серверные вызовы наверняка тоже не сможет.

и как ему тогда &НаСервере отлаживать, даже если она > внесена в справочник ВнешниеОбработки, в этом весь затык
16 PLUT
 
11.05.22
13:16
+(15) ну и для внешней обормотки - можно точку останова поставить на момент создания

обормотка = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку();
17 PLUT
 
11.05.22
13:18
(16) но проще отладить сначала как обычную внешнюю обормотку
18 Donkey_hot
 
11.05.22
18:18
(0) Перенесите отлаживаемый код в расширение, в обработке оставьте только вызов. После отладки либо вернуть все как было, либо оставить в расширении.
19 Остап Ибрагимович
 
11.05.22
22:42
При добавлении внешней обработки - в базу данных сохраняются двоичные данные файла внешней обработки.
При запуске на выполнение такой (добавленной в базу) внешней обработки - эти(!) двоичные данные преобразуются в формат обработки и полученная обработка запускается на выполнение (а вовсе не внешний файл, в котором ты пытаешься поставить брейкпойнт и поймать выполнение в отладку).
Т.е. вся беда у тебя не в том, что это фоновое задание (тут выше уже все правильно сказали - про флаги отладки, про авто-подключение) - а в том? что отлаживать надо не то что ты пытаешься.
Выход "в лоб" - (17).
можно и непосредственно отлаживать - но это хитро и в данном случае вряд ли овчинка выделки стоит (там весь смысл в том, чтобы в базу добавлять обработку с измененным кодом - который при запуске обработки - по полному пути запускает внешнюю обработку из твоего файла(!) и прекращает выполнение, а в самом этом запускаемом таким образом файле обработки этот блок кода закомментить (чтобы себя не запускало - уже ж запустилось))) и там уже в этой внешней обработке ловить и отлаживать как надо... а после отладки готовый вариант - снова загрузить. в общем - не бери в голову)))
20 NIGHTHUNTER
 
13.05.22
11:10
Код обработки я отладил.
Он отрабатывает.
Так же обработка отрабатывает, как загруженная во внешние обработки. По кнопке выполнить.
На почту приходят уведомления.
Что я и сам просмотрел, запуская ее с формы.


Сейчас вопрос. Почему обработка не отрабатывает по расписанию, как фоновое регламентное задание?

Я задавал разное расписание. Включая, запуск каждые 10 секунд. Должны были приходить письма. Но это не работает (((.

Почему обработка не работает как фоновое регламентное задание, по установленному в ней расписанию ????
21 Kassern
 
13.05.22
11:13
(20) а для базы разрешены регламентные задания? В кластере запрета нет на их выполнение? Пользователь службы 1с имеет право выполнять действия в обработке?
22 PLUT
 
13.05.22
11:13
(20) а в журнале регистрации ошибок нет у фонового задания?
23 Kassern
 
13.05.22
11:13
как только ответите на эти вопросы - скорее всего поймете в чем у вас проблема
24 NIGHTHUNTER
 
13.05.22
11:20
(21) (22) Ясно, сейчас буду искать на них ответы. Спасибо. Надеюсь найти. Буду сообщать о результате.
25 NIGHTHUNTER
 
16.05.22
07:21
(21) Как определить:

1). Разрешены ли для базы регламентные задания? Там есть другие регламентные задания, наверное разрешены. Загрузка с сайта и тд.
2). как определить, есть ли право у пользователя на выполнение регламентного задания?

Стал отлаживать регламентные задания. А не пойму что именно смотреть.
26 NIGHTHUNTER
 
17.05.22
04:27
Добавленное регламентное задание, по нажатию выполнить выполняется.
Как сделать что бы, оно работало по расписанию?
Подскажите пожалуйста?
Код модуля обработки такой.

//
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации                 = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид             = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    НоваяКоманда                         = ПараметрыРегистрации.Команды.Добавить();
    //представление команды в пользовательском режиме
    НоваяКоманда.Представление           = "ОтправкаУведомленийНаРассчитаннуюДату_0_4";
    НоваяКоманда.Идентификатор           = НоваяКоманда.Представление;
    НоваяКоманда.Использование           = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Возврат ПараметрыРегистрации;
КонецФункции    
//
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
    Если ИдентификаторКоманды = "ОтправкаУведомленийНаРассчитаннуюДату_0_4" Тогда
        ОтправкаУведомленийНаРассчитаннуюДату_0_4();
    КонецЕсли;
КонецФункции
//


Может ещё какие то процедуры нужны, в модуль обработки, что бы запускалось по расписанию?
27 NIGHTHUNTER
 
17.05.22
05:36
В одной из баз где хочу протестировать выполнение обработки по расписанию, загрузив ее в базу.
Открываю Регламентные и фоновые задания. Там состояние всех заданий неопределено и такая надпись http://joxi.ru/a2Xj7eECQMoy0r .
Как с этим поступают???
28 NIGHTHUNTER
 
17.05.22
09:44
Есть регламентное задание. Загружено во внешние обработки и установлено расписание.

Почему оно не отрабатывает?

Подскажите пожалуйста. что предметно посомтреть?
29 PLUT
 
17.05.22
09:46
(28) посмотри предметно журнал регистрации. ну и в списке рег.заданий на своем добавленном жмакни "Выполнить сейчас". Потом опять в журнале регистрации посмотри на предмет ашибок

может у тебя заблокированы рег.задания в свойствах базы на сервере 1С?
30 NIGHTHUNTER
 
17.05.22
11:27
(29) В тестовой базе сейчас установлено вот такое http://joxi.ru/l2Zz3VEClOypy2 .
Получается они там и не выполняются как я понял.
А в рабочей я не решаюсь подменять адреса почты. что бы проверить.

если по нажатию выполнить, задание выполняется. или при его загрузке. Свидетельствует ли это что оно работает?

Я хочу отследить его выполнение именно в фоне. каждые 10 секунд, например.

Что бы убедиться и поставить на выполнение раз в день.
31 Ёпрст
 
17.05.22
11:44
(30) нет.
32 NIGHTHUNTER
 
17.05.22
12:35
Сейчас я разблокировал выполнение регламентных заданий.
Отключил все существующие обработки. Что бы быть уверенным что будет выполняться только мой пример.
Прописал везде нужный почтовый адрес. Расписание установлено выполнять каждые 10 секунд.

Задание сработало только один раз, когда я нажал на кнопку выполнить сейчас. Дальше по прежнему, на почте ничего.

Открываю журнал регистрации, там ничего не прибавляется. то етсь оно не выполняется каждые 10 секунд, что ещё проверить предметно?
33 Kassern
 
17.05.22
12:37
(32) в кластере галочка не стоит напротив запретить регламентные задания?
34 Гений 1С
 
гуру
17.05.22
12:41
замер производительности поюзай, вызывай через консоль кода
35 NIGHTHUNTER
 
17.05.22
12:44
(33) Скажите пожалуйста , где это? Галка в кластере, запретить регламентные задания.

(34) Как это сделать? Что за консоль кода?
36 NIGHTHUNTER
 
17.05.22
12:45
В регламентных и фоновых заданиях сейчас стоят только 2 галки http://joxi.ru/1A5ER9vU4vxqZA .
37 rabota_v8
 
17.05.22
12:46
rabota.v8 (32) Повторять каждые 1 день установлено?
38 Kassern
 
17.05.22
12:46
(35) Администрирование серверов (консоль) -> Локальный кластер->ИмяВашейБазы->Свойства->Блокировка регламентных заданий включена
39 NIGHTHUNTER
 
17.05.22
12:52
(37) Что это?

(38) вы про это? http://joxi.ru/p27pgLvCLvbQOA
у меня нет прав на открытие этого?
40 rabota_v8
 
17.05.22
12:57
(39) https://ibb.co/bH7PcYV
в расписании задания указать
41 Kassern
 
17.05.22
12:59
(39) обратитесь к тому, у кого есть права, тестовую базу кто вам разворачивал?
42 Ёпрст
 
17.05.22
13:00
(39)>>>>у меня нет прав на открытие этого?

Позовите, наконец, кого-нибудь из взрослых
43 NIGHTHUNTER
 
17.05.22
13:09
(40) У меня вот во внешней обработке задано http://joxi.ru/Q2KkjxGsO3QgY2
44 NIGHTHUNTER
 
17.05.22
13:09
(41) Да я обратился уже.
45 Kassern
 
17.05.22
13:09
(44) ну и? Какой результат?
46 Ёпрст
 
17.05.22
13:10
Если что, вдруг, у вас там кто-то из гнезда вам права выделил по-ошибке/не знанию, то хотя бы зарегь, для начала утилиту администрирования - RegMSC.cmd, которая в папке bin валяется нужной версии.
Потом ужо, открывайц консоль и добавляй там сервер, если его нема.
47 NIGHTHUNTER
 
17.05.22
13:31
(45) Пока не ответили ещё.
48 NIGHTHUNTER
 
17.05.22
14:49
(45) Сказали что включили. У меня нет доступа к этой оснастке, по этому не особо знаю как там и что.
Но сказали включили. Теперь оно должно запускаться согласно установленного расписания?
49 Kassern
 
17.05.22
14:50
(48) блин что значит включили??
50 Kassern
 
17.05.22
14:51
Вот смотрите:
Есть там булевая опция "Блокировка регламентных заданий включена", когда она включена, то регламенты не работают у этой базы!!!
И вы тут пишите "Но сказали включили" - они что, там галку поставили, чтобы у вас наверняка не работали регламенты??
51 Kassern
 
17.05.22
14:52
Вот тут, есть там галка у вас или нет?
https://ibb.co/QQTNwPb
52 NIGHTHUNTER
 
17.05.22
14:59
(50) Я имел ввиду включили что бы работало. Сняли то есть эту галку.
Так как мне не доступно это, а деталях не могу сказать. Но мою почту уже засыпало и пришлось отключить это задание.
Завтра буду дальше с ним разбираться. То есть работает. Спасибо за подсказку.