|
Как отловить факт выполнения регламентного задания? | ☑ | ||
---|---|---|---|---|
0
suvolod
05.04.13
✎
09:41
|
Клиент-сервер, есть несколько подписок на событие, запрещающие "обычным" юзерам изменять некоторые документы, служебные элементы справочников и т.д... Но хотелось бы добавить в исключения регламентное заданию, которое выполняет обмен со сторонней ИБ.
Если бы обмен был по COM, я мог бы в подписке написать следующее: Если ПараметрыСеанса.ТекущийПользователь.Код <> "COM" ТОгда Отказ = Истина; КонецЕсли; Но у регламентного задания нет параметровсеанса... тогда отловить тот факт, что объект изменяет именно мое РЗ? |
|||
1
Sammo
05.04.13
✎
09:44
|
Например, регламентное выполняется на сервере.
Например, какой пользователь ставится при работе данного регламентного задания? (в параметры сеанса) |
|||
2
suvolod
05.04.13
✎
09:49
|
(1) Твой комментарий непонятен.
При выполнении на сервере РЗ запускается от имени USR1CV82, но в режиме 1С пользователь (и его параметры) не определены. В списке Активные пользователи колонка Пользователь при выполненении РЗ пустая. |
|||
3
Maxus43
05.04.13
✎
09:54
|
в доп свойства засунь "Это РЗ, мне можно"
|
|||
4
Maxus43
05.04.13
✎
09:56
|
в подписке пиши Если Источник.ДопослнительныеСвойства.Свойство("Это РЗ, мне можно") Тогда ...
|
|||
5
suvolod
05.04.13
✎
09:57
|
сейчас попробую.. спасибо
|
|||
6
suvolod
05.04.13
✎
10:09
|
Что-то не получается.. непонятно как подсунуть РЗ параметр. У меня РЗ предопределенное, обработчик - фция ВыполнитьОбменSМаркет() - без параметров.... куда/как зашить доп. свойство при вызове - не вижу...
|
|||
7
Maxus43
05.04.13
✎
10:10
|
(6) в объект доп свойство пиши, а не в само РЗ.
Объект.ДополнительныеСвойства.Вставить(...); Объект.Записать() |
|||
8
Sammo
05.04.13
✎
10:16
|
(2) Раз пользователь не заполнен - отлавливай при подписке, что ПараметрыСеанса.Пользователь пустой.
Но это не очень красиво, имхо. Через консоль заданий можно установвить - под каким пользователем 1с будет запускаться регламентное задание (т.е. пользователя под которым будет все его действия писаться в журнал регистрации) |
|||
9
suvolod
05.04.13
✎
10:17
|
(7) точно.. что-то я тупанул :).., РЗ как таковое здесь не при чем.
Но тогда не очень кашерно получается. У меня РЗ за раз обрабатывает до 100.000 объектов. Писать в каждое доп. параметр, только чтобы отловить его в подписке на событие, не слишком оптимально. Возьму на заметку, но пока подожду с реализацией. Спасибо |
|||
10
Sammo
05.04.13
✎
10:18
|
+ классика - делать записи докуметов, справочников в режиме ОбменДанными.Загрузка = Истина и в подписках проверять на это.
|
|||
11
Maxus43
05.04.13
✎
10:19
|
(9) наоборот кошерно всё, подписка один фиг сработает на каждый твой док, на все 100000 объектов. Где преступление не пойму
|
|||
12
Sammo
05.04.13
✎
10:20
|
+10 важное замечание, в этом режиме невозжомжно проводить документы. Т.е. Док.записать(РежимЗаписи.Проведение) будет выпадать по ошибке.
Для этого делают экпортные функции СформироватьДвиженияРегистров. (9) запись в режиме 10 получается немного быстрее, в том числе засчет отказа от некоторых подписок и проверок уникальности. |
|||
13
suvolod
05.04.13
✎
10:21
|
(8, 10) Спасибо за подсказки. Про режим обмена данными знаю, но не очень его люблю. Чуть не доглядел - у тебя справочники с задублированными кодами могут появиться. Чисть их потом
|
|||
14
Maxus43
05.04.13
✎
10:21
|
(10) это хорошо, если не надо определять что именно рег задание делает это. возможно будет достаточно
|
|||
15
suvolod
05.04.13
✎
10:24
|
(11) Мое имхо - что фция добавления параметра к 100000 объектов все равно по ресурсам затратная. Тогда уж лучше регистр сведений с флагом какой-нибудь сделать. РЗ перед выполнением взводит его и пишет данные.. после снимает. Хотя в этом решении тоже не все кашерно - юзеры в момент, когда флаг взведен, тоже могут что-то записать
|
|||
16
Maxus43
05.04.13
✎
10:25
|
(15) доп свойства работают очень быстро, и проверяются тоже. Они в базе не хранятся, живут только в процессе жизни самого объекта
|
|||
17
suvolod
05.04.13
✎
10:27
|
спасибо.. главное что узнал - напрямую факт изменения объекта РЗ не отследить, нужно писать костыть.. типа доп. параметра, который предложил предложил ув. Maxus43
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |