Имя: Пароль:
1C
1C 7.7
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) скачай пример, что я выложил выше, там, почти все события..есть
AdBlock убивает бесплатный контент. 1Сергей