Имя: Пароль:
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 сек.

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