Перехватчик

Перехватчик

Класс "Перехватчик" / "Hooker".

Специальный класс, предназначенный для перехвата предопределенных событий 1С и ВК FormEx, вызываемых для групповых контекстов и/или глобального модуля, с помощью специальных объектов пользовательских классов 1С++.

Версия: релиз 2.5 и выше.

Общая схема перехвата:

0. Для использования перехвата должна быть включена настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " См. SettingsManager

1. Необходимо использовать пользовательский класс 1С++, в котором должны быть определены обработчики соответствующих событий с названием события (ПриЗакрытии, ПриНачалеВыбораЗначения, ПриНажатииКнопкиКлавиатуры) или со специальным названием в виде Событие_НаименованиеСобытия (Событие_ПриЗакрытии, Событие_ПриНачалеВыбораЗначения, СобытиеГМ_ПриНажатииКнопкиКлавиатуры)

1.1 Для событий глобального модуля всегда используется префикс ``СобытиеГМ_`` (СобытиеГМ_ПриЗавершенииРаботыСистемы, СобытиеГМ_ПриНажатииКнопкиКлавиатуры)

2. Каждый обработчик должен быть определен с атрибутом Экспорт, иначе перехват указанного события будет невозможен.

Например, для перехвата событий ПриЗакрытии и ПриНачалеВыбораЗначения в классе-перехватчике необходимо написать

Процедура ПриЗакрытии() Экспорт
// текст обработчика события

КонецПроцедуры

Процедура Событие_ПриНачалеВыбораЗначения(НужныеПараметры и т.д.) Экспорт
// текст обработчика события

КонецПроцедуры

Или для перехвата события ПриЗавершенииРаботыСистемы в классе-перехватчике необходимо написать

Процедура СобытиеГМ_ПриЗавершенииРаботыСистемы() Экспорт
// текст обработчика события

КонецПроцедуры

3. Для включения перехвата конкретного контекста формы нужно использовать код

  • ОбъектПерехватчикГК = СоздатьОбъект("КлассПерехватчикГК");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГК (КонтФормы, ОбъектПерехватчикГК);

или

  • Перехватчик. ПерехватитьСобытияГлобальногоМодуля (ОбъектПерехватчикГМ);

или

  • ПредОбработчик = Перехватчик. ПерехватитьСобытияГК (ОбъектПерехватчикГК);
  • ПредОбработчик = Перехватчик. ПерехватитьСобытияГлобальногоМодуля (ОбъектПерехватчикГМ);

4. В перехваченном контексте или перехваченном глобальном модуле обработчики событий могут вообще отсутствовать или быть определены без атрибута Экспорт.

5. После установки перехвата при вызове системой события управление будет передано в соответствующий обработчик события в классе-перехватчике. В этом случае встроенные обработчики предопределенных событий в перехваченном контексте или глобальном модуле автоматически вызываться не будут. Разработчик сам должен вызвать данные обработчики (см. п.7), когда это необходимо.

6. Для включения перехвата событий глобального модуля необходимо использовать код

  • ОбъектПерехватчикСобытийГлобальногоМодуля = СоздатьОбъект("КлассПерехватчикСобытийГлобальногоМодуля");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГлобальногоМодуля (ОбъектПерехватчикСобытийГлобальногоМодуля);

7. При необходимости вызова обработчиков событий, которые определены в контексте или в глобальном модуле, в обработчике события внутри пользовательского класса нужно использовать код

Процедура Событие_ПриЗакрытии() Экспорт

  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ВыполнитьОригинальноеСобытиеГК (КонтПерехваченнойФормы, "ПриЗакрытии");

или для вызова предыдущего сохраненного обработчика

  • Перехватчик. ВыполнитьСобытиеГК (КонтПерехваченнойФормы, "ПриЗакрытии", ПредыдущийОбработчик);

КонецПроцедуры

или

Процедура СобытиеГМ_ПриЗавершенииРаботыСистемы() Экспорт

  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ВыполнитьОригинальноеСобытиеГлобальногоМодуля ("ПриЗавершенииРаботыСистемы");

или для вызова предыдущего сохраненного обработчика

  • Перехватчик. ВыполнитьСобытиеГлобальногоМодуля ("ПриЗавершенииРаботыСистемы", ПредыдущийОбработчик);

КонецПроцедуры

При этом неважно, существует ли обработчик в модуле формы или глобальном модуле.

Таким образом, для обработки цепочки из нескольких перехватчиков существуют методы ВыполнитьСобытиеГК ВыполнитьСобытиеГлобальногоМодуля

8. Важно помнить, что после установки перехвата на контекст формы или глобальный модуль на пользовательский объект-перехватчик добавляется еще одна ссылка. В результате деструктор данного объекта-перехватчика будет вызван только при закрытии формы или завершении работы 1С соответственно или снятии перехвата вручную.

Например, код

  • ОбъектПерехватчикГК = СоздатьОбъект("КлассПерехватчикГК");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГК (КонтФормы, ОбъектПерехватчикГК);
  • ОбъектПерехватчикГК = 0;

не вызывет деструктор немедленно!

9. Метод-обработчик события может возвращать необходимый статус возврата. Для этого обработчик нужно определить как функцию

Функция ПриЗакрытии() Экспорт
        // текст обработчика события
        Возврат 0; // т.е. фактически СтатусВозврата(0) и форма не будет закрыта.
КонецФункции
  10. Все вышесказанное относится также и к предопределенным событиям ВК FormEx.

11. В добавление ко всем стандартным событиям 1С и ВК FormEx добавлено событие "СобытиеГМ_ПриОткрытии" для перехвата глобального модуля. Если есть обработчик этого события, то она будет вызван раньше системного обработчика ПриОткрытии в модуле формы контекста. Если обработчик вернет 0, то форма не будет открыта и вызов обработчика ПриОткрытии из модуля формы контекста не будет выполнен.

Формат: СобытиеГМ_ПриОткрытии(КонтФормы)

Функция СобытиеГМ_ПриОткрытии(КонтФормы) Экспорт
        // текст обработчика события
        Возврат 0; // возвращаемое значение является статусом возврата, т. е. в таком случае форма не будет открыта.
        // в случае Возврат 1; форма будет открыта.
КонецФункции

Если в глобальнике просто определить функцию СобытиеГМ_ПриОткрытии(КонтФормы), то она работать не будет. Данная функция сделана только для перехвата в классах перехвата.

12. В добавление ко всем стандартным событиям 1С и ВК FormEx добавлено событие "СобытиеГМ_ВводНового(КонтФормы, флагКопирования)" для перехвата глобального модуля. Событие работает аналогично событию СобытиеГМ_ПриОткрытии

Методы

ПерехватитьСобытияГК / HookEventsOfGroupContext | Перехватывает любые предопределенные события контекста формы, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГK .
ВыполнитьСобытиеГК / RunEventOfGroupContext | Вызывает соответствующий обработчик события контекста формы. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГК Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.
ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext | Вызывает обработчик события контекста формы, который опреден в модуле этой формы. Если обработчика в форме не существует, ошибки не выдается.
ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext | Возвращает объект-перехватчик событий, если для данной формы был включен перехват.
СнятьПерехватСобытийГK / UnHookEventsOfGroupContext | Снимает перехват событий контекста формы, если перехват был установлен для данной формы.
ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule | Перехватывает любые предопределенные события глобального модуля, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГлобальногоМодуля .
ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule | Вызывает соответствующий обработчик события глобального модуля. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГлобальногоМодуля Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.
ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule | Вызывает обработчик события глобального модуля, который опреден в глобальном модуле. Если обработчика в глобальном модуле не существует, ошибки не выдается.
ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule | Возвращает объект-перехватчик событий, если был включен перехват событий глобального модуля.
СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule | Снимает перехват событий глобального модуля, если перехват был установлен.
ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError | Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()
ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA | Подключает возможность получения события запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.
ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent | Подключает возможность получения события пользовательская запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.
ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure | Подключает возможность вывода очень длинных строк в окно сообщений. Т.е. метод решает известный баг 1С - если длина строки очень велика, например, 500, тогда данная строка в окно сообщений не выводится, а выдается предупреждение на экран, причем данное предупреждение выдается всегда, даже в блоке Попытка-Исключение-КонецПопытки

События глобального модуля

Инструкция для использования

1. Для использования перехвата должна быть включена настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " с помощью встроенного класса "УправлениеНастройками" См. SettingsManager

2. Подключение любого из событий возможно в произвольный момент, по умолчанию при загрузке 1С++ они выключены.

Например:

Перехватчик = СоздатьОбъект("Перехватчик");
Перехватчик.ПодключитьСобытие_НеобработаннаяОшибка();
Перехватчик.ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации();
Перехватчик.ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации();
  3. При подключении в глобальнике единственный раз идет поиск соответствующих событий
    • Событие_НеобработаннаяОшибка ()
    • Событие_ЗаписьСобытияЖурналаРегистрации ()
    • Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации ()

В дальнейшем повторного поиска не происходит, в отличие от ФормЕкс, что дает хорошую скорость работы.

4. Обработчики событий могут быть функциями, в этом случае если возвращается 0, системная функция не вызывается. Если обработчик события является процедурой, то системная функция вызывается всегда.

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

Событие_НеобработаннаяОшибка | Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()
Событие_ЗаписьСобытияЖурналаРегистрации |
Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации |


Перехватчик::ПерехватитьСобытияГК / HookEventsOfGroupContext

1C++ :: Перехватчик | Ранее: Перехватчик | Далее: ВыполнитьСобытиеГК / RunEventOfGroupContext
Перехватчик :: ПерехватитьСобытияГК / HookEventsOfGroupContext

Синтаксис: ПерехватитьСобытияГК(ГрупповойКонтекстФормы, ОбъектПользовательскогоКлассаОбработчикаПерехвата)

Возвращает: тип: Объект или пустое значение.

Параметры:

  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

  • ОбъектПользовательскогоКлассаОбработчикаПерехвата - тип: Класс КОП.

    Пользовательский класс, в котором определены обработчики событий контекста формы.

Описание: Перехватывает любые предопределенные события контекста формы, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГK .

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является групповым контекстом, выдается исключение. В случае, если второй параметр не является пользовательским классом, выдается исключение.


Перехватчик::ВыполнитьСобытиеГК / RunEventOfGroupContext

1C++ :: Перехватчик | Ранее: ПерехватитьСобытияГК / HookEventsOfGroupContext | Далее: ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext
Перехватчик :: ВыполнитьСобытиеГК / RunEventOfGroupContext

Синтаксис: ВыполнитьСобытиеГК(ОбработчикСобытияИлиПустоеЗначение, ГрупповойКонтекстФормы, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля указанного контекста.

Параметры:
  • ОбработчикСобытияИлиПустоеЗначение - тип: класс 1С++ или пустое значение.
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает соответствующий обработчик события контекста формы. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГК Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.


Перехватчик::ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext

1C++ :: Перехватчик | Ранее: ВыполнитьСобытиеГК / RunEventOfGroupContext | Далее: ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext
Перехватчик :: ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext

Синтаксис: ВыполнитьОригинальноеСобытиеГК(ГрупповойКонтекстФормы, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля указанного контекста.

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает обработчик события контекста формы, который опреден в модуле этой формы. Если обработчика в форме не существует, ошибки не выдается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является групповым контекстом, выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение.


Перехватчик::ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext

1C++ :: Перехватчик | Ранее: ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext | Далее: СнятьПерехватСобытийГK / UnHookEventsOfGroupContext
Перехватчик :: ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext

Синтаксис: ПолучитьПерехватчикСобытийГК(ГрупповойКонтекстФормы)

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

Возвращает: тип: объект КОП, если для данной формы был включен перехват или Неопределено, если нет.

Описание: Возвращает объект-перехватчик событий, если для данной формы был включен перехват.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.


Перехватчик::СнятьПерехватСобытийГK / UnHookEventsOfGroupContext

1C++ :: Перехватчик | Ранее: ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext | Далее: ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule
Перехватчик :: СнятьПерехватСобытийГK / UnHookEventsOfGroupContext

Синтаксис: СнятьПерехватСобытийГK(ГрупповойКонтекстФормы)

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

Описание: Снимает перехват событий контекста формы, если перехват был установлен для данной формы.

Если на пользовательский объект-перехватчик больше нет ссылок, будет вызван деструктор данного объекта.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.


Перехватчик::ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule

1C++ :: Перехватчик | Ранее: СнятьПерехватСобытийГK / UnHookEventsOfGroupContext | Далее: ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule
Перехватчик :: ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule

Синтаксис: ПерехватитьСобытияГлобальногоМодуля(ОбъектПользовательскогоКлассаОбработчикаПерехвата)

Возвращает: тип: Объект или пустое значение.

Параметры:
  • ОбъектПользовательскогоКлассаОбработчикаПерехвата - тип: Класс КОП.

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

Описание: Перехватывает любые предопределенные события глобального модуля, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГлобальногоМодуля .

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если переданный параметр не является пользовательским классом, выдается исключение.


Перехватчик::ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule

1C++ :: Перехватчик | Ранее: ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule | Далее: ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule
Перехватчик :: ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule

Синтаксис: ВыполнитьСобытиеГлобальногоМодуля(ОбработчикСобытияИлиПустоеЗначение, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля глобального модуля.

Параметры:
  • ОбработчикСобытияИлиПустоеЗначение - тип: класс 1С++ или пустое значение.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает соответствующий обработчик события глобального модуля. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГлобальногоМодуля Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.


Перехватчик::ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule

1C++ :: Перехватчик | Ранее: ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule | Далее: ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule
Перехватчик :: ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule

Синтаксис: ВыполнитьОригинальноеСобытиеГлобальногоМодуля(ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата глобального модуля.

Параметры:
  • ИмяСобытия - тип: Строка.

Описание: Вызывает обработчик события глобального модуля, который опреден в глобальном модуле. Если обработчика в глобальном модуле не существует, ошибки не выдается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является строкой или строка пуста, выдается исключение.


Перехватчик::ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule

1C++ :: Перехватчик | Ранее: ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule | Далее: СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule
Перехватчик :: ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule

Синтаксис: ПолучитьПерехватчикСобытийГлобальногоМодуля()

Возвращает: тип: объект КОП, если был включен перехват событий глобального модуля или Неопределено, если нет.

Описание: Возвращает объект-перехватчик событий, если был включен перехват событий глобального модуля.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.


Перехватчик::СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule

1C++ :: Перехватчик | Ранее: ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule | Далее: ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError
Перехватчик :: СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule

Синтаксис: СнятьПерехватСобытийГлобальногоМодуля()

Описание: Снимает перехват событий глобального модуля, если перехват был установлен.

Если на пользовательский объект-перехватчик больше нет ссылок, будет вызван деструктор данного объекта.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.


Перехватчик::ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError

1C++ :: Перехватчик | Ранее: СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule | Далее: ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA
Перехватчик :: ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError

Синтаксис: ПодключитьСобытие_НеобработаннаяОшибка()

Описание: Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()

Описание обработчика: Функция/Процедура Событие_НеобработаннаяОшибка(СообщениеОбОшибке, Маркер, ИмяФайла, Парам4, НомерСтрокиОшибки, Парам6)

Если обработчик является функцией, то если он возвращает 0, системное сообщение об ошибке не показывается. Если 1, то показывается. Если процедурой, системное сообщение об ошибке также показывается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.


Перехватчик::ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA

1C++ :: Перехватчик | Ранее: ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError | Далее: ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent
Перехватчик :: ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA

Синтаксис: ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации()

Описание: Подключает возможность получения события запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Описание обработчика: Функция/Процедура Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory, Event, EvType, comment, object, ObjDescr)

Если обработчик является функцией, то если он возвращает 0, системная запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена. Если процедурой, системная запись в журнал регистрации будет выполнена.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.


Перехватчик::ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent

1C++ :: Перехватчик | Ранее: ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA | Далее: ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure
Перехватчик :: ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent

Синтаксис: ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации()

Описание: Подключает возможность получения события пользовательская запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Описание обработчика: Функция/Процедура Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(EventCategory, Event, EvType, comment, object, ObjDescr)

Если обработчик является функцией, то если он возвращает 0, системная запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена. Если процедурой, системная запись в журнал регистрации будет выполнена.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.


Перехватчик::ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure

1C++ :: Перехватчик | Ранее: ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent | Далее: Событие_НеобработаннаяОшибка
Перехватчик :: ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure

Синтаксис: ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить()

Описание: Подключает возможность вывода очень длинных строк в окно сообщений. Т.е. метод решает известный баг 1С - если длина строки очень велика, например, 500, тогда данная строка в окно сообщений не выводится, а выдается предупреждение на экран, причем данное предупреждение выдается всегда, даже в блоке Попытка-Исключение-КонецПопытки

При использовании данного метода подобные длинные строки перед выводом в окно сообщений делятся на строки размером 450 символов + перевод строки, и только потом показываются на экран, уже без ошибок и предупреждений.

Перехват можно только включить, для его отключения нужно перезапустить сеанс 1С.

Работа перехвата не зависит от настройки 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext "


Перехватчик::Событие_НеобработаннаяОшибка

1C++ :: Перехватчик | Ранее: ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure | Далее: Событие_ЗаписьСобытияЖурналаРегистрации
Перехватчик :: Событие_НеобработаннаяОшибка

Синтаксис: Функция/Процедура Событие_НеобработаннаяОшибка(СообщениеОбОшибке, Маркер, ИмяФайла, Парам4, НомерСтрокиОшибки, Парам6)

Описание: Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()

Если обработчик является функцией, то если он возвращает 0, системное сообщение об ошибке не показывается. Если 1, то показывается. Если процедурой, системное сообщение об ошибке также показывается.


Перехватчик::Событие_ЗаписьСобытияЖурналаРегистрации

1C++ :: Перехватчик | Ранее: Событие_НеобработаннаяОшибка | Далее: Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации
Перехватчик :: Событие_ЗаписьСобытияЖурналаРегистрации
Синтаксис: Функция/Процедура Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory,
Event, EvType, comment, object, ObjDescr)
Описание: Подключает возможность получения события запись в системный журнал регистрации 1С

в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Если обработчик является функцией, то если он возвращает 0, системная

запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена.
Если процедурой, системная запись в журнал регистрации будет выполнена.


Перехватчик::Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации

1C++ :: Перехватчик | Ранее: Событие_ЗаписьСобытияЖурналаРегистрации | Далее:
Перехватчик :: Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации
Синтаксис: Функция/Процедура Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(EventCategory,
Event, EvType, comment, object, ObjDescr)
Описание: Подключает возможность получения события пользовательская запись

в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Если обработчик является функцией, то если он возвращает 0, системная

запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена.
Если процедурой, системная запись в журнал регистрации будет выполнена.