====== Форма "Модули в Call Stack" ====== Предназначена для редактирования для редактирования таблицы **[[:SrcExclude|"SrcExclude"]]**. Эта таблица влияет на импорт полей exceptions.CSModule, exceptions.CSSource, exceptions.CSClass, exceptions.CSProcedure, exceptions.CSLineProc\\ Окно открывается в "Менеджере проектов" на вкладке **«Исключения»** кнопкой **"Модули в Call Stack"**.\\ {{:pc_TFormSrcExclude_1.png}}\\ Кнопка "Помощь" открывает текущий документ.\\ ===== Графы таблицы ===== * **"ID"** - ID записи таблицы **[[:SrcExclude|"SrcExclude"]]**. * **"Файл модуля"** - значение из графы Calls Stack **"Источник"** * **"Наименование модуля"** - значение из графы Calls Stack **"Модуль"** * **"Модуль АГБИС"** - модуль разработан командой АГБИС * **"Внешний модуль"** - модуль внешних разработчиков ===== Основные понятия ===== При импорте данных в таблицу **[[:exceptions|таблицу "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"]]** выполняется поиск среди уже зарегистрированных исключений. Если запись найдена, то увеличивается счетчик количества исключений. Если запись не найдена, то добавляется новая запись в таблицу **[[:exceptions|таблицу "exceptions"]]**.\\ Для идентификации записи исключения используются поля:\\ * **"Тип ошибки"** * **"Сообщение об ошибке"** * **"Наименование исполняемого модуля"** * **"Файл модуля"** * **"Наименование модуля"** * **"Наименование класса объектов программы"** * **"Наименование процедуры/метода"** * **"Номер строки в коде процедуры"** **"Файл модуля"** и **"Наименование модуля"** ищутся с учетом SrcExclude.\\ В нашем примере, непосредственно ошибка произошла в модуле fib.pas в процедуре FIBError.\\ Однако это внешняя библиотека, в которой мы править ничего не будем.\\ Ищем наш модуль, который породил ошибку: TmpQuery процедура CreateTempQuery.\\ Таким образом модули fib.pas, FIBDatabase.pas, Classes.pas, FIBDatabase.pas должны быть отмечены как внешние, а модуль TmpQuery.pas должен быть отмечен как модуль АГБИС.\\ ===== Операции ===== {{:pc_TFormSrcExclude_1.png}}\\ Делаем двойной щелчок по названию модуля. Текст отправляется в буфер обмена.\\ {{:pc_TFormSrcExclude_2.png}}\\ Открываем Total Commander и запускаем поиск файла в папке _Projects. {{:pc_TFormSrcExclude_3.png}}\\ Файл не найден. Значит это внешний файл. Двойным щелчком делаем отметку в графе **"Внешний модуль"**.\\ Строка скрывается, так как включен фильтр скрывать отмеченные. Делаем снова двойной щелчок по названию модуля. Текст отправляется в буфер обмена.\\ {{:pc_TFormSrcExclude_4.png}}\\ В Total Commander запускаем поиск файла в папке _Projects. {{:pc_TFormSrcExclude_5.png}}\\ Файл найден. Значит это модуль нашей разработки. Двойным щелчком делаем отметку в графе **"Модуль АГБИС"**.\\ Строка скрывается, так как включен фильтр скрывать отмеченные. ===== Дополнительная информация ===== * [[exept_monitoring|Мониторинг исключений]]\\ * [[:pc_TFormTask|Форма "Карточка задачи"]]\\ * [[:pc_TFormSrcExclude|Форма "Модули в Call Stack"]]\\ * [[:eurekalog|Таблица "eurekalog"]]\\ * [[:appl|Таблица "appl"]]\\ * [[:applver|Таблица "applver"]]\\ * [[:exceptions|Таблица "exceptions"]]\\ * [[:excapplver|Таблица "excapplver"]]\\ * [[:excappl|Таблица "excappl"]]\\ * [[:excappld|Таблица "excappld"]]\\ * [[:tasks|tasks]]\\ * [[:Status|Status]]\\ * [[:Priority|Priority]]\\ * [[:SrcExclude|SrcExclude]]\\ * [[:Clients|Clients]]\\ * [[:Client_Lic|Client_Lic]]\\ * [[:ProjectsControl3|Менеджере проектов]]\\