Имя: Пароль:
1C
1С v8
Как трассировать регламентные задачи?
0 vde69
 
07.02.13
15:27
собственно 1с большую часть отчетов сделало через рег задания.

как их трассировать?
1 Maxus43
 
07.02.13
15:28
это в какой конфе оно их так сделало?
2 Нуф-Нуф
 
07.02.13
15:28
не через регзадания, а через фоновые. ловить фоновые в отладчике
3 Нуф-Нуф
 
07.02.13
15:28
(1)  в ут11 каждый второй отчет
4 GANR
 
07.02.13
15:31
(0) Вот так:

ФЗ = ФоновыеЗадания.найтиПоУникальномуИдентификатору(ИД_ФЗ);
МассивСообщений = ФЗ.ПолучитьСообщенияПользователю()

(2) а запуск отладки имеет некоторые тонкости v8: Не запускается отладка регламентного задания 8.2.16.362
5 GANR
 
07.02.13
15:33
6 Нуф-Нуф
 
07.02.13
15:33
(5) ого! спасибо за инфу
7 Maxus43
 
07.02.13
15:35
с УТ не работал, буду знать
8 GANR
 
07.02.13
15:39
(7) Да, по-моему, уже все отчеты так работаю. Появилась общая форма для всех отчетов, подставляемая в корень конфы - так она всё вертит через фон.
9 Maxus43
 
07.02.13
15:41
(8) я на УПП, там нет сего. в 2.0 видимо только
10 GANR
 
07.02.13
15:45
(9) Это из БСП универсальный механизм - всюду прикручивается.
11 Maxus43
 
07.02.13
15:46
(10) Буду знать, БСП целиком не ковырял. В УПП 2.0 прикрутят, в 1.3 типовых ещё нет
12 Maxus43
 
07.02.13
16:08
хм, Нуф-Нуф, ты не знал как к фоновым подключаться?
13 Нуф-Нуф
 
07.02.13
16:13
(12) не знал п.2 в (5)
14 GANR
 
07.02.13
16:22
(13) Главные грабли: строка соединения с информационной базой, используемая в Конфигураторе, должна быть точно такой-же С УЧЕТОМ РЕГИСТРА, как и строка соединения с информационной базой, которую можно получить в работающем фоновом задании с помощью функции СтрокаСоединенияИнформационнойБазы(). Иначе не ФЗ / РЗ не выловится.

P.S. Я не мог воспользоваться СтрокаСоединенияИнформационнойБазы(), поэтому просто подставил имя сервера и базы точно как в консоли кластера - прокатило.
15 Maxus43
 
07.02.13
16:26
да, тонкость, согласен
16 Maxus43
 
07.02.13
16:50
Кстати, подскажите где в БСП это реализовано? не могу найти, ослеп совсем. Собсно интересует механизм получения результата работы фонового задания (несколько вариантов знаю, все кривые имхо)
17 GANR
 
07.02.13
17:22
(16) >где в БСП
Не так давно появилось. Прямо в корне конфы свойство "Основная форма отчета". В БСП (2.0.1.17) ещё нету, а в БСП (2.1.2.21) - уже есть.

>механизм получения результата
В 1С:Бух. 3.0 бухгалтерски отчеты работают по принципу:
1. Передают в ФЗ переменную АдресХранилища.
2. ФЗ, в свою очередь, при завершении
ПоместитьВоВременноеХранилище(Результат, АдресХранилища);
3. Клиент раз в секунду проверяют завершилось ли ФЗ (обработчик ожидания).
4. Если п.3 = завершилось, то форма отчета хватает данные Данные = ПолучитьИзВременногоХранилища(АдресХранилища) и выводит пользователю.
18 Maxus43
 
07.02.13
17:23
(17) принцип понятен, имхо криво. обработчики ожидания и т.д. Но видимо других вариантов нет даже у разрабов
19 GANR
 
07.02.13
17:28
(18) Нужно посылать уведомление с сервера на клиент и ловить его специальным обработчиком - этого в платформе пока что не предусмотрено.
20 vde69
 
07.02.13
17:38
(17) кстати из-за " Клиент раз в секунду проверяют завершилось ли ФЗ", время любого самого мелкого отчета не может быть меньше 1 сек,

реально скорость увеличилась в среднем на 1.5 сек только из-за ожидания...
21 GANR
 
07.02.13
17:45
(20) Зато пока тяжелый отчет часами ворочается можно в этом-же сеансе что-то делать :).
22 hhhh
 
07.02.13
17:56
(21) можно другую 1с запустить и всё. Зачем в этом же сеансе?
23 НачинающийЮзер
 
07.02.13
18:09
(22) фи, это просто, скучно и банально. То ли дело помудохоться с фоновым запуском отчета.
24 GANR
 
07.02.13
18:29
(23) Что-ж в (22) удобного?
25 Нуф-Нуф
 
07.02.13
19:31
(22) ограничение количества сеансов не зря придумали. Сервер лицензий обычно не резиновый
26 GANR
 
14.02.13
20:47
(18) Похоже, нашел спасение ситуации для отчетов

&НаКлиенте
Процедура Сформировать(Команда)
   ЭтаФорма.СкомпоноватьРезультат( РежимКомпоновкиРезультата.Фоновый);
КонецПроцедуры

Убивается минимум 2 зайца:
1. Нет зависимости от общих модулей "ДлительныеОперации", что дает возможность использовать, например, универсальный отчет, как внешний.
2. Не нужно прописывать в форме отчета алгоритмы (17).
27 MaxS
 
14.02.13
21:01
(20) 1С стремиться к 1 сек.

Ещё бы научить отчет отправлять задание, например на соседнюю распределённую базу. Так можно распределить нагрузку. Правда результат отчета может оказаться неактуальный.