|
Отладка регламентных заданий на сервере. | ☑ | ||
---|---|---|---|---|
0
WED
19.12.12
✎
22:46
|
Знаю, что тема не новая. Уже перерыл гугл и яндекс, но не помогает.
Процедура вызываемая по регламентному заданию отладке не поддается. т.е. брейкпоинт не работает. Сервер запущен с ключом отладки. И как сервис и из командной строки - результат один. В подключении для отладки к отлаживаемой конфе галка "фоновые задания" стоит. В параметрах базы сервер прописывал и по имени и по ip. Конфигуратор запускается на одном компе, сервер на другом. На обоих платформа 8.2.16.368 Что упускаю и как отлаживать фоновые задания? |
|||
1
WED
19.12.12
✎
22:47
|
+(0) Процедура точно вызывается - записью в журнал проверял.
|
|||
2
Undefined vs NULL
19.12.12
✎
22:47
|
(0) попробовать запускать как обычную обработку например
|
|||
3
WED
19.12.12
✎
22:49
|
(2) мм. не очень понял. Предлагаешь процедуру, которая из регл.задания вызывается вынести в обработку? а что это даст?
|
|||
4
Fragster
гуру
19.12.12
✎
22:49
|
сделать модуль только "на сервере", подключиться отладкой к серверу, запустить процедуру обработкой
|
|||
5
йети
19.12.12
✎
22:51
|
(0) какое имя у базы в sql, сервере 1С и форме запуска 1С
|
|||
6
WED
19.12.12
✎
22:51
|
(2,4) аааа, понял. это я уже пробовал - работает нормально, проблемы возникают при работе именно из фонового задания, я так понимаю, что из-за работы на сервере, а не на клиенте.
|
|||
7
WED
19.12.12
✎
22:52
|
(5) одинаковое везде, ничем необычным не выделяется: jl_test
|
|||
8
Fragster
гуру
19.12.12
✎
22:52
|
(6) модуль с процедурой ТОЛЬКО НА СЕРВЕРЕ, остальные галочки сними
|
|||
9
WED
19.12.12
✎
22:55
|
(8) Я ж говорю - пробовал. Работает. Причем не выдает ни ошибок, ничего. Просто код внутри процедуры не работает и всё. Почему отладка и понадобилась.
|
|||
10
Александр_
Тверь 19.12.12
✎
23:00
|
Э.. тут какая-то путаница.
Регламентное задание, запускает фоновое задание по расписанию. Для отладки кода, который выполняется по расписанию фоновым заданием, достаточно двух шагов: 1. Запустить сервер предприятия в режиме отладки 2. Запустить процедуру, которую выполняет регламентное задание (сделай внешнюю обработку и в ней форму, по кнопе выполнить напиши что-то типа: МойМегаМодуль.РегламентнаяПроцедура() ). Единственный ньюанс,вызываемая процедура должна находиться в модуле, выполняющимся на сервере. И хоть наотлаживайся. |
|||
11
WED
19.12.12
✎
23:03
|
(10) Вот и я так думал. Пока не столкнулся, что если просто вызываешь процедуру - работает идеально, а когда она вызывается при срабатывании фонового задания - код не работает вообще. Причем если среди кода в любое место воткнуть запись в журнал - пишет. Я вообще в недоумении.
|
|||
12
Jaap Vduul
19.12.12
✎
23:04
|
Насколько помню, строки подключения на сервере приложения и в конфигураторе должны совпадать (в т.ч. и регистр)
|
|||
13
Александр_
Тверь 19.12.12
✎
23:07
|
(11) какая проблема отладчиком посмотреть, что происходит?
А ситуацию, которую ты описал - достаточно часто встречается. возможные причины: 1. Твой код использует методы не доступные на сервере. 2. Твой код использует объекты (com например) системы, которые не доступны на сервере 3. Твой код обращается к каким либо файлам или сервисам на которые у процесса под которым запущен сервер предприятия нет прав. Список можно и дальше продолжить |
|||
14
WED
19.12.12
✎
23:09
|
(13) Блин, так и не получается отладчиком попасть - не работает брейкпоинт когда процедура вызывается из фонового задания. А код там простой и ничего из перечисленного нет - чистая математика по формулам.
|
|||
15
Александр_
Тверь 19.12.12
✎
23:11
|
(15) если ты хочешь отлаживать процедуру, то тебе ее надо вызывать не фоновым заданием!
А прямым вызовом: т.е. МойМегаМодуль.РегламентнаяПроцедура(); |
|||
16
WED
19.12.12
✎
23:13
|
(15) Еще раз: когда вызываю процедуру как ты описываешь - работает идеально. Когда процедура вызывается из фонового - код не работает вообще, хотя процедура точно вызывается, ибо если в код внедрить строку записи в журнал - пишется.
|
|||
17
Александр_
Тверь 19.12.12
✎
23:13
|
тогда другой вопрос
какой должен быть результат выполнения? Как ты определяешь, что ничего не делается? |
|||
18
Jaap Vduul
19.12.12
✎
23:14
|
(15)
Запиши в ЖР из фонового СтрокаСоединенияИнформационнойБазы() и сравни с тем, что у тебя в конфигураторе в окошке "О программе". |
|||
19
WED
19.12.12
✎
23:17
|
(17) Код - простая математика: на входе два числа, в зависимости от первого изменяется второе. И результат и оба входящих числа пишу в журнал для проверки. Когда вызов простой - результат правильный, когда вызов из фонового - входящие числа есть, результата нет, точнее первое число как было так и осталось.
|
|||
20
WED
19.12.12
✎
23:19
|
(18) совпадают.
|
|||
21
WED
19.12.12
✎
23:20
|
Пробовал писать в журнал изменяемое число после каждой формулы - не изменяется вообще. т.е. запись в журнал работает, а математика (банальное А=А+2) нет. Ну как так?
|
|||
22
Александр_
Тверь 19.12.12
✎
23:21
|
попробуй перегрузить сервер предприятия.
|
|||
23
WED
19.12.12
✎
23:22
|
(22) Уже пробовал. Практически самое первое и было.
|
|||
24
Александр_
Тверь 19.12.12
✎
23:23
|
(23) динамическое обновление использовал?
|
|||
25
WED
19.12.12
✎
23:26
|
Всё. Заработал код.
скопировал весь код из модуля в блокнот, убил модуль (с сохранением конфы), создал заново, вставил код. |
|||
26
WED
19.12.12
✎
23:28
|
Вопрос из разряда: А шо это было?!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |