|
v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения() | ☑ | ||
---|---|---|---|---|
0
Snork
30.09.15
✎
10:47
|
ЗиК 7.7. Попросили сделать дату запрета изменения данных. Штатной нет.
Во всех документах в ПриОткрытии() уже есть вызов глобальной функции. А вот при записи/проведении документов документов никаких глобальных вызовов функций не происходит. Придется в каждом документе писать код - обновлять потом тяжело. Есть ли какая ВК, чтоб подключить глобально перехват событий ПриЗаписи() или ОбработкаПроведения()? Или может еще есть какие варианты решения? |
|||
1
Ёпрст
30.09.15
✎
10:49
|
1cpp+Класс.Перехватчик
|
|||
2
Dump
30.09.15
✎
13:10
|
"Во всех документах в ПриОткрытии() уже есть вызов глобальной функции. " - а этого недостаточно?
Делай проверку и Форма.ТолькоПросмотр(1) |
|||
3
Snork
30.09.15
✎
13:34
|
(1) а образец код есть где нить?
|
|||
4
Snork
30.09.15
✎
13:34
|
(2) недостаточно. создаем документ. дата текущая - редактирование разрешено. меняем дату на минус месяц и проводим его
|
|||
5
Ёпрст
30.09.15
✎
13:35
|
||||
6
Ёпрст
30.09.15
✎
13:45
|
На вот, развлекайся
класс https://cloud.mail.ru/public/LhJD/ddrSdcMPb подключение Процедура ПриНачалеРаботыСистемы() ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Настройки=СоздатьОбъект("УправлениеНастройками"); Настройки.Сбросить("Проверка типов"); Настройки.Сбросить("Отладка"); //Настройки.Сбросить("Оптимизация"); Настройки.Включить("Оптимизация"); Настройки.Включить("TurboBL"); Настройки.Включить("ПерехватитьСобытияГК"); Перехватчик = СоздатьОбъект("Перехватчик"); ПерехватчикСобытийГМ = СоздатьОбъект("ПерехватСобытий"); Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМ); ПерехватчикСобытийГМ.ПерехватитьПроведение(); ////Перехватчик.ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации(); ЗагрузитьВнешнююКомпоненту("formex.dll"); |
|||
7
varelchik
30.09.15
✎
14:14
|
Если база SQL можно и программную запись перехватить используя триггеры.
|
|||
8
Snork
30.09.15
✎
15:40
|
(6) этот перехватчик будет работать как подписка в 1С 8? процедуры ПриЗаписи() уже описанные в документах отработают?
|
|||
9
Ёпрст
30.09.15
✎
15:48
|
(8) сперва будет отрабатывать процедуры/функции перехватчика, и если в них статуса возврата (или нет вызова оригинального события) - то оригинальное событие выполнено не будет. Вы сами можете рулить этим.
|
|||
10
Ёпрст
30.09.15
✎
15:49
|
просто расскомментите нужные события, понавтыкайте туда отладочных сообщений и глядите..
|
|||
11
Ёпрст
30.09.15
✎
15:50
|
+ все события перехватчика можно описывать как процедуры или функции, в зависимости от своих хотелок.
|
|||
12
Злопчинский
30.09.15
✎
16:02
|
А перехватчики только на интерактивные события действуют?
Или на программные действия тоже? |
|||
13
Ёпрст
30.09.15
✎
16:06
|
(12) смотря какие события - событие записи - интерактивное, проведение - любое
|
|||
14
Злопчинский
30.09.15
✎
16:07
|
(13) а есть описалово какие события ловятся только интерактивные?
|
|||
15
Ёпрст
30.09.15
✎
16:10
|
(14) перехватчик ловит все предопределенные события и не только 1с-ные, но и формекса, самой 1cpp.. а уже тебе решать какие они - интерактивные или "программные"
|
|||
16
mishaPH
модератор
30.09.15
✎
16:11
|
(0) Зик это такая хрень, у которой все в глобальнике.
Наверняка есть какие-то функции при записи или проведении, которые лезут в глобальник. их перехвати и верни статус возврата (0) |
|||
17
Злопчинский
30.09.15
✎
16:14
|
(15) хм а что такое "предопределенное событие"..?
Это то на что есть штатная процедура в гм? Или както иначе? Хочу в дбфной версии перехватывать Чтото.записать() |
|||
18
Ёпрст
30.09.15
✎
16:25
|
(17) не получится
предопределенное событие не в курсе что это ? :) Спроси у Дениски-бородоча, он торгует СП. ЗЫ: ну например, ВвоодНового(),ВВодНаосновании(),ОбработкаПроведения() и т.д, т.е те события, которые в СП лежат в папках Предопределенные методы |
|||
19
Mikeware
30.09.15
✎
16:31
|
(17) перехватыай. работает. от формата базы не зависит
|
|||
20
Ёпрст
30.09.15
✎
16:32
|
(19) Записать() он не перехватит..
|
|||
21
Ёпрст
30.09.15
✎
16:33
|
нет подхоящего события..
|
|||
22
Mikeware
30.09.15
✎
16:35
|
(21) интерактивную только
|
|||
23
Ёпрст
30.09.15
✎
16:36
|
(22) это то да, но Чебур то хочет программную отловить, тут болт :(
|
|||
24
Злопчинский
30.09.15
✎
16:53
|
(18) не
Я как бы догадывался Но хз куда там навлазили разработчики 1с++ |
|||
25
Ёпрст
30.09.15
✎
16:55
|
(24) скачай пример, что я выложил выше, там, почти все события..есть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |