Предназначена для редактирования для редактирования таблицы "SrcExclude". Эта таблица влияет на импорт полей exceptions.CSModule, exceptions.CSSource, exceptions.CSClass, exceptions.CSProcedure, exceptions.CSLineProc
Окно открывается в "Менеджере проектов" на вкладке «Исключения» кнопкой "Модули в Call Stack".
Кнопка "Помощь" открывает текущий документ.
При импорте данных в таблицу таблицу "exceptions" проверяются строки Calls Stack.
Например, Calls Stack может выглядеть следующим образом
Источник | Модуль | Класс | Функция/метод | Строка |
fib.pas | fib | FIBError | 406[1] | |
FIBDatabase.pas | FIBDatabase | TFIBDatabase | CheckActive | 1196[6] |
Classes.pas | Classes | TStringList | Changed | |
FIBDatabase.pas | FIBDatabase | TFIBBase | CheckDatabase | 4567[6] |
Classes.pas | Classes | TStrings | SetTextStr | |
pFIBDataset.pas | pFIBDataSet | TpFIBDataSet | Prepare | 814[3] |
TmpQuery.pas | TmpQuery | CreateTempQuery | 221[14] |
Тогда для каждой строки ищется запись в таблице SrcExclude, для которой "Файл модуля"="Источник" и "Наименование модуля"="Модуль" (SrcExclude.CSSource='fib.pas' и SrcExclude.CSSource='fib').
Если запись не найдена, то добавляется новая запись с пустыми полями "Модуль АГБИС" и "Внешний модуль" (SrcExclude.IS_Agbis, SrcExclude.IS_External).
– Внешний модуль
При выключенных настройках фильтра "Модули АГБИС" и "Внешние модули" таблица содержит список всех новых модулей, которые еще не определены как внешние или наши.
В идеале список при выбранных значения фильтра должен быть пустой.
Если в ней отображаются записи, то берем имя файла из графы "Файл модуля" и запускаем процесс поиска файла среди исходных файлов.
Если файл найден среди модулей АГБИС, то ставим отметку в графе "Модули АГБИС", иначе ставим отметку в графе "Внешние модули".
Таблица SrcExclude влияет на идентификацию исключения.
При импорте в таблицу таблицу "exceptions" выполняется поиск среди уже зарегистрированных исключений. Если запись найдена, то увеличивается счетчик количества исключений.
Если запись не найдена, то добавляется новая запись в таблицу таблицу "exceptions".
Для идентификации записи исключения используются поля:
"Файл модуля" и "Наименование модуля" ищутся с учетом SrcExclude.
В нашем примере, непосредственно ошибка произошла в модуле fib.pas в процедуре FIBError.
Однако это внешняя библиотека, в которой мы править ничего не будем.
Ищем наш модуль, который породил ошибку: TmpQuery процедура CreateTempQuery.
Таким образом модули fib.pas, FIBDatabase.pas, Classes.pas, FIBDatabase.pas должны быть отмечены как внешние, а модуль TmpQuery.pas должен быть отмечен как модуль АГБИС.
Делаем двойной щелчок по названию модуля. Текст отправляется в буфер обмена.
Открываем Total Commander и запускаем поиск файла в папке _Projects.
Файл не найден. Значит это внешний файл. Двойным щелчком делаем отметку в графе "Внешний модуль".
Строка скрывается, так как включен фильтр скрывать отмеченные.
Делаем снова двойной щелчок по названию модуля. Текст отправляется в буфер обмена.
В Total Commander запускаем поиск файла в папке _Projects.
Файл найден. Значит это модуль нашей разработки. Двойным щелчком делаем отметку в графе "Модуль АГБИС".
Строка скрывается, так как включен фильтр скрывать отмеченные.