"Возникло необработанное исключение exObjIfcNoLoad(exref) ошибки загрузки объекта из ресурсного файла(TotalOrganizationAttributes)",
"Возникло необработанное исключение exObjIfcNoLoad(exref) ошибки загрузки объекта из ресурсного(RunRaise)"
Хотелось бы понять почему такая ругань Галактики?
Приведу код
Код: Выделить всё
#include CatFunc.vih
#include StrFunc.vih
#include DeptIer.vih
#include DepartmentsLimiter.vih //Интерфейс разграничения прав доступа к подразделениям
#include PickCat.VIH
#include STRUCTFN.VIH // для формирования отчета с сигналом, какие именно подразделения нужны в отчете
#include TotalOrganizationAttributes.vih // работа с атрибутами организации
#include RunRaise.vih // Интерфейс расчета доплат в кадрах
#include RunStaj.vih
#include TotalOrganizationAttributes.obj
#include OrganizationInfo.obj
const
clWhite = 0FFFFFFh;
clNone = 1FFFFFFFh;
end;
interface XXX 'YYY'
(,hcNoContext,) EscClose, gray;
show at (00,5,78,27);
var iCatFunc : CatalogsFunctions; // Переменная типа интерфейс CatalogsFunctions
var iStrFunc : StringFunctions; // Переменная типа интерфейс StringFunctions
var iDepartIer : DepartIer; // Переменная типа интерфейс DepartIer
var VuserAcs : IDepartmentsLimiter; // Переменная типа интерфейс DepartmentsLimiter
var iRaiseSts : ObjRunRaiseSts;//RunRaise; // переменная типа RunRaise
var iRaise : ObjRunRaise;//RunRaise; // переменная типа RunRaise
var objSHierarchy: IStructHierarchy; // Переменная типа интерфейс STRUCTFN
var iRunStaj : RunStaj;
//-------------------------------------------------------------------------------------------
parameters Title, StrTitleNrec, VidOtch,dateSts;
//------------------------------------------------------------------------------------------
//здесь кусок кода с процедурами и функциями и объявлением переменных опустил
//-------------------------------------------------------------------------------------------
HandleEvent
cmInit:
{
StartNewVisual(vtRotateVisual, vfTimer, ''#3'Идет загрузка требуемых объектов и данных', 1);
NamePrefis := 'Keramin_';
if ( not GetVipRef(iRaise, 'RunRaise') )or( not GetVipRef(iRaiseSts, 'RunRaise') )
{
Message('Не найден интерфейс расчет доплат RunRaise.');
ExitProc;
StopVisual('', 0);
Abort;
Exit;
}
var dVar: double;// передернуть объект для данных
dVar := iRaise.GetPercentRaise(comp(0), date(0,0,0));
dVar := iRaiseSts.GetPercentRaiseSts(comp(0), date(0,0,0));
// грузим объект разграничения доступа
if not GetVipRef(VuserAcs, 'UserDepartmentsLimiter')
{
Message('Не найден интерфейс разграничения прав доступа UserDepartmentsLimiter.', Information);
ExitProc;
StopVisual('', 0);
abort;
exit;
}
LoadVariables; // загрузить настройки отчета
TOA.Bind(0); // связываем TOA с собственной организацией
// грузим объект иерархий
LoadVipRef(objSHierarchy, 'StructHierarchy');
// инициализация нужных маркеров
DeptMarker_T3 := InitMarker(NamePrefis+String(Title)+'_DeptMarker_T3', 8, 200, 10); // подразделений
KategMarker := InitMarker(NamePrefis+String(Title)+'_Kategory_Marker', 8, 200, 10);
_SearchMarker := InitMarker('', 8, 200, 10); // вспомогательный
DoplOkrug1 := InitMarker(NamePrefis+String(Title)+'_MarkerDoplOkrug1', 8, 200, 10); // маркер от первой суммы
DoplOkrug2 := InitMarker(NamePrefis+String(Title)+'_MarkerDoplOkrug2', 8, 200, 10); // маркер от второй суммы
DDDopl := InitMarker(NamePrefis+String(Title)+'_MarkerDDDopl', 8, 200, 10); // маркер от должностного оклада
DDDoplAlg := InitMarker(NamePrefis+String(Title)+'_MarkerDDDoplAlg', 8, 200, 10); // маркер от должностного оклада
DDDoplMes := InitMarker(NamePrefis+String(Title)+'_MarkerDDDoplMes', 8, 200, 10); // маркер от должностного оклада
DDOkladDopl := InitMarker(NamePrefis+String(Title)+'_MarkerDDOkladDopl', 8, 200, 10); // маркер от должностного оклад
DS1 := InitMarker(NamePrefis+String(Title)+'_MarkerDS1', 8, 200, 10); // маркер от первой суммы
DS2 := InitMarker(NamePrefis+String(Title)+'_MarkerDS2', 8, 200, 10); // маркер от второй суммы
RejimMarker := InitMarker(NamePrefis+String(Title)+'_RejimMarker', 8, 200, 10);
PostMarker:= InitMarker(NamePrefis+String(Title)+'_PostMarker', 8, 100, 10 );
delete all RT;
delete all RezultTable;
ItogoSum := 0;
ItogoSumQuant := 0;
DoblIerItogo := 0;
DoblIerItogoQuant := 0;
// наполним таблицу уровней
FillLevelTable;
// набить временную таблицу, из которой будем затем осуществлять вывод
PickTmpTableWithNeedInfo;
// запустить формирование отчета
case PrintReport(Level) of
0: Message('Не удалось загрузить шаблон ' + fXlsBook, Information);
1:
{
Message('Нет данных для формирования отчета', Information);
xlDisplayAlerts(false);
xlKillExcel;
xlDisplayAlerts(true);
}
2:
{
Message('Приказ не утвержден!', Information);
xlDisplayAlerts(false);
xlKillExcel;
xlDisplayAlerts(true);
}
end; //case
#ifdef Atl51
#ifndef ServerApp
PutFileToClient(fXlsBook, false);
#end
#end
// закрыть маркер подразделений
DoneMarker(DeptMarker_T3, NamePrefis+String(Title)+'_DeptMarker_T3'); // подразделений
DoneMarker(KategMarker, NamePrefis+String(Title)+'_Kategory_Marker');
DoneMarker(_SearchMarker , '' ); // вспомогательный
DoneMarker(DDDopl, NamePrefis+String(Title)+'_MarkerDDDopl');
DoneMarker(DDDoplAlg, NamePrefis+String(Title)+'_MarkerDDDoplAlg');
DoneMarker(DDDoplMes, NamePrefis+String(Title)+'_MarkerDDDoplMes');
DoneMarker(DDOkladDopl, NamePrefis+String(Title)+'_MarkerDDOkladDopl');
DoneMarker(DS1, NamePrefis+String(Title)+'_MarkerDS1');
DoneMarker(DS2, NamePrefis+String(Title)+'_MarkerDS2');
DoneMarker(DoplOkrug1, NamePrefis+String(Title)+'_MarkerDoplOkrug1');
DoneMarker(DoplOkrug2, NamePrefis+String(Title)+'_MarkerDoplOkrug2');
DoneMarker(RejimMarker, NamePrefis+String(Title)+'_RejimMarker');// Маркер для полей
DoneMarker(PostMarker, NamePrefis+String(Title)+'_PostMarker');
// закрыть интерфейс
ExitProc;
abort;
exit;
}
end;
End.
Код: Выделить всё
#ifndef _TOTALORGANIZATIONATTRIBUTES_VIH_INCLUDED_
#define _TOTALORGANIZATIONATTRIBUTES_VIH_INCLUDED_
#include TotalOrganizationAttributes.obj
#ifdef ComponentVersion
#component "L_KATORG"
#end
vipinterface TotalOrganizationAttributes
implements
ITotalOrganizationAttributes,
ITotalOrganizationAttributes1
#ifdef ATL51
licensed (free)
#end
;
#end
Код: Выделить всё
var TOA: ITotalOrganizationAttributes;
var TOA1: ITotalOrganizationAttributes1;
handleevent
cmInit:
{
LoadVipRef(TOA, 'TotalOrganizationAttributes');
TOA1 := ITotalOrganizationAttributes1(TOA);
}
cmOnVipLoad:
{
LoadVipRef(TOA, 'TotalOrganizationAttributes');
TOA1 := ITotalOrganizationAttributes1(TOA);
}
end;
Код: Выделить всё
#ifndef _TOTALORGANIZATIONATTRIBUTES_OBJ_INCLUDED_
#define _TOTALORGANIZATIONATTRIBUTES_OBJ_INCLUDED_
#ifdef ComponentVersion
#component "L_KATORG"
#end
// выборка информации (юридической, нологовой и т.п.) об организации
#include OrganizationInfo.obj
// Для использовния интерфейса необходимо после описания логической таблицы
// подключить TotalOrganizationAttributes.var (объявление ссылки и создание
// нового экземпляра интерфейса).
#doc
набор методов для выборки атрибутов организации
#end
objinterface ITotalOrganizationAttributes;
#doc
нахождения головной организации по списку подразделений
#end
function Calc(Departments: longint): comp;
#doc
привязка к организации OrganizationRef
#end
procedure Bind(OrganizationRef: comp);
#doc
ссылка на текущую организацию
#end
function GetOrganizationRef: comp;
#doc
ссылка на юридические атрибуты организации (см. методы IOrganizationJuridicalInfo)
#end
function GetJuridicalInfo: IOrganizationJuridicalInfo;
#doc
ссылка на дополнительные юридические атрибуты организации (см. методы IOrganizationJuridicalInfo1)
#end
function GetJuridicalInfo1: IOrganizationJuridicalInfo1;
#doc
ссылка на налоговые атрибуты организации (см. методы IOrganizationTaxationInfo)
#end
function GetTaxationInfo: IOrganizationTaxationInfo;
#doc
ссылка на банковские счета организации (см. методы IOrganizationAccountsInfo)
#end
function GetAccountsInfo: IOrganizationAccountsInfo;
#doc
ссылка на список банков, в которых организация имеет расчетные счета
#end
function GetBanksList: IOrganizationBanksList;
#doc
ссылка на банк по умолчанию
#end
function GetDefaultBank(var Value: IBankInfo): boolean;
end;
#doc
Дополнительный метод для извлечения полного имени организации
#end
objinterface ITotalOrganizationAttributes1;
#doc
Ссылка на vip-интрефейс с методом, который возвращает имя организации в зависимости от системных настроек
#end
function GetNaming: IOrganizationNaming;
end;
#end
Код: Выделить всё
#ifndef _ORGANIZATIONINFO_OBJ_INCLUDED_
#define _ORGANIZATIONINFO_OBJ_INCLUDED_
#ifdef ComponentVersion
#component "L_KATORG"
#end
#doc
набор методов для выборки информации об организации
загрузка информации об организации по ее номеру записи OrganizationRef
#end
objinterface IOrganizationInfoFinder;
#doc
загрузить информации об организации по ее номеру записи OrganizationRef
#end
function Seek(OrganizationRef: comp): boolean;
end;
#doc
набор методов для выборки информации об организации
юридические атрибуты организации
#end
objinterface IOrganizationJuridicalInfo;
#doc
наименование организации
#end
function GetName: string;
#doc
дата регистрации
#end
function GetRegistrationDate: date;
#doc
дата ликвидации
#end
function GetLiquidationDate: date;
#doc
код по ОКВЭД (ОКОНХ)
#end
function GetOkvedCode: string;
#doc
код по ОКПО
#end
function GetOkpoCode: string;
#doc
код по ОКАТО
#end
function GetOkatoCode: string;
#doc
код по КБК
#end
function GetKbkCode: string;
#doc
код по ОГРН
#end
function GetOgrnCode: string;
#doc
регистрационный номер в ПФ
#end
function GetPfRegistrationNumber: string;
#doc
орган исполнительной власти
#end
function GetExecutiveOrgan: string;
#doc
адрес органа исполнительной власти
#end
function GetExecutiveOrganAddress: comp;
#doc
почтовый адрес (ссылка на запись в каталоге адресов)
#end
function GetPostAddress: comp;
#doc
юридический адрес (ссылка на запись в каталоге адресов)
#end
function GetJuridicalAddress: comp;
#doc
юридический адрес
#end
function GetJuridicalAddressStr: string;
#doc
индекс для юридического адреса
#end
function GetJuridicalAddressIndex: string;
#doc
электронный адрес
#end
function GetEmail: string;
#doc
контактная информация
#end
function GetContactInfo: string;
#doc
телефоны, факсы
#end
function GetPhones: string;
#doc
форма собственности
#end
function GetFormSobs: string;
#doc
Вид деятельности
#end
function GetVidD: string;
#doc
уполномоченный представитель (ссылка на физическое лицо)
#end
function GetDelegate: comp;
#doc
руководитель (ссылка на физическое лицо)
#end
function GetDirector: comp;
#doc
главный бухгалтер (ссылка на физическое лицо)
#end
function GetChiefAccountant: comp;
end;
#doc
набор методов для выборки информации об организации
дополнительные юридические атрибуты организации
#end
objinterface IOrganizationJuridicalInfo1;
#doc
внутренний номер
#end
function GetCode: string;
#doc
тип организации
#end
function GetType: string;
#doc
код по ОКДП
#end
function GetOkdpCode: string;
#doc
ссылка на запись в KatState (каталог стран)
#end
function GetStateRef: comp;
#doc
страна
#end
function GetStateStr: string;
#doc
ссылка на запись в KatCity (каталог городов)
#end
function GetCityRef: comp;
#doc
город
#end
function GetCityStr: string;
#doc
альтернативное наименование организации
#end
function GetAlternativeName: string;
#doc
признак входимости в состав корпорации
#end
function IsInCorporation: boolean;
#doc
признак архивной организации
#end
function IsArchive: boolean;
end;
#doc
набор методов для выборки информации об организации
налоговые атрибуты организации
#end
objinterface IOrganizationTaxationInfo;
#doc
идентификационный номер налогоплательщика
#end
function GetTaxPayerID: string;
#doc
код категории налогоплательщика
#end
function GetTaxPayerCategoryCode: string;
#doc
категория налогоплательщика
#end
function GetTaxPayerCategory: string;
#doc
ссылка на запись в таблице KATKOD (Классификатор кодов постановки на учет)
#end
function GetKppRef: comp;
#doc
строковое представление кода постановки на учет
#end
function GetKppStr: string;
#doc
серия и номер свидетельства о постановке на учет
#end
function GetSertificate: string;
#doc
дата выдачи свидетельства о постановке на учет
#end
function GetCertificateIssueDate: date;
#doc
наименование налоговой инспекции
#end
function GetTaxationInspection: string;
end;
#doc
набор методов для выборки информации об организации
атрибуты налоговой инспекции
#end
objinterface ITaxationInspectionInfo;
#doc
nrec
#end
function GetInspectionRef: comp;
#doc
наименование
#end
function GetName: string;
#doc
код
#end
function GetCode: string;
#doc
ссылка на единицу административно-территориального деления
#end
function GetAtdItemRef: comp;
#doc
ссылка на представляющую данную инспекцию организацию
#end
function GetOrganizationRef: comp;
#doc
ссылка на вышестоящую инспекцию
#end
function GetParentRef: comp;
end;
#doc
набор методов для выборки информации об организации
информация о ролях банков, в которых организация имеет расчетные счета
#end
objinterface IOrganizationAccountsInfo;
#doc
расчетный счет в банке
#end
function GetBank: comp;
#doc
валютный расчетный счет в банке
#end
function GetMonetaryBank: comp;
end;
#doc
набор методов для выборки информации об организации
атрибуты банков
#end
objinterface IBankInfo;
#doc
ссылка на банк
#end
function GetBankRef: comp;
#doc
наименование
#end
function GetName: string;
#doc
адрес банка
#end
function GetAddress: string;
#doc
ссылка на организацию
#end
function GetOrganizationRef: comp;
#doc
наименование организации банка
#end
function GetOrganization: string;
#doc
код 1
#end
function GetCode1: string;
#doc
код 2
#end
function GetCode2: string;
#doc
номер счета 1
#end
function GetAccount1: string;
#doc
номер счета 2
#end
function GetAccount2: string;
#doc
номер счета для платежных документов
#end
function GetPaymentDocumentsAccount: string;
#doc
признак активного счета
#end
function IsActive: boolean;
#doc
признак расчетного счета
#end
function IsAccounting: boolean;
end;
#doc
набор методов для выборки информации об организации
информация о списке банков, в которых организация имеет расчетные счета
#end
objinterface IOrganizationBanksList;
#doc
установить (Value = true) или сбросить (Value - false) режим редактирования
#end
procedure SetEditMode(Value: boolean);
#doc
позиционироваться на заданный банк
#end
function SeekBank(BankRef: comp): boolean;
end;
#doc
#end
objinterface IOrganizationNaming;
#doc
получить имя организации с типом или нет (в зависимости от системной настроки)
#end
function GetFullName: string;
end;
#end
Код: Выделить всё
#ifndef _RunRaise_vih_Included
#define _RunRaise_vih_Included
#ifdef ComponentVersion
#component "z_Staff"
#end
Table Struct RaiseVal (
NRecKlVal : comp, // NRec валюты
Summa : double // Сумма в текущей валюте
)
with index (
indexNRecKlVal = NRecKlVal
);
#doc
Расчет доплат
#end
objinterface ObjRunRaise;
#doc
получение суммы доплат на указанную дату в национальной валюте (иностранная валюта переводится по курсу на день расчета)
#end
public function GetSum(PsnNRec : comp; RunDate : date) : double;
#doc
получение суммы доплат на указанную дату во всех валютах в виде строки
#end
public function GetSumStr(PsnNRec : comp; RunDate : date) : string;
#doc
получение суммы доплат на указанную дату в национальной валюте по назначению
#end
public function GetSumApp(AppNRec : comp; RunDate : date) : double;
#doc
получение суммы доплат на указанную дату в национальной валюте по рабочему месту
#end
public function GetSumSts(StsNRec : comp; RunDate : date) : double;
#doc
получение суммы доплат на указанную дату в национальной валюте по приказу для персоны
#end
public function GetSumPrikaz(PsnNRec : comp; ContDocNRec : comp; RunDate : date) : double;
#doc
получить наименование доплаты по ее Nrec
#end
public function GetNameRaise(RaiseNrec : comp) : string;
#doc
получить сумму доплаты по ее Nrec на указанную дату
#end
public function GetSumRaise(RaiseNrec : comp; //Nrec записи о доплате
RunDate : date; //Дата, на которую берется история
Puth_TaxRate : integer;
Nrec_TaxRate : comp
) : double;
#doc
получить процент доплаты по ее Nrec
#end
public function GetPercentRaise(RaiseNrec : comp; RunDate : date) : double;
#doc
получить вид валюты доплаты по ее Nrec
#end
public function GetValRaise(RaiseNrec : comp) : string;
end;
#doc
#end
objinterface ObjRunRaiseSts;
// Функции работы с доплатами ШР
#doc
получить сумму доплаты по ее Nrec на указанную дату
#end
public function GetSumRaiseSts(RaiseStsNrec : comp; //Nrec записи о доплате
RunDate : date; //Дата, на которую берется история
Puth_TaxRate : integer;
Nrec_TaxRate : comp
) : double;
#doc
получить процент доплаты по ее Nrec
#end
public function GetPercentRaiseSts(RaiseStsNrec : comp; RunDate : date) : double;
#doc
получить вид валюты доплаты по ее Nrec
#end
public function GetValRaiseStS(RaiseStsNrec : comp; RunDate : date) : string;
end;
vipinterface RunRaise implements ObjRunRaise, ObjRunRaiseSts
#ifdef ATL51
Licensed (free)
#end
;
#endif