Страница 1 из 1
Обьект для получения информации по организации
Добавлено: 27 мар 2007, 16:46
WiRuc
Есть ли в Галактике объект, позволяющий по NREC получить различные реквизиты организации: наименование, ИНН, КПП, адрес?
Если существует, приведите пожалуйста VIH.
Добавлено: 28 мар 2007, 10:17
edward_K
if(initservtxo(0),sTxoGetField('X$USERS','XU$FULLNAME', lschet.atl_lastuser ),'???')
и сии вариации - это вроде в txo.pdf прописано
Добавлено: 28 мар 2007, 11:53
WiRuc
edward_K писал(а):if(initservtxo(0),sTxoGetField('X$USERS','XU$FULLNAME', lschet.atl_lastuser ),'???')
и сии вариации - это вроде в txo.pdf прописано
Я уж тогда лучше вьюху дополнительную пропишу и по ней буду получать данные. Хочется именно стандартной функциональности...
Блин, о чем только там программеры думают? Вот нужно мне сейчас в отчете добавить информацию о грузополучателе. В прототипе нет, поэтому придется вьюху рисовать. А был бы объект, вызвал например GetKatorgName, GetKatorgAddress, GetKatorgINN и все дела.
Добавлено: 28 мар 2007, 12:13
m0p3e
Я сам писал. Потрудись один раз

Вот выдержка конкретно по КПП.
Код: Выделить всё
Interface KatorgEx;
Create View
Var CorgNrec : comp;
As Select *
From Katorg ( READONLY )
Where ((
CorgNrec == Katorg.nrec and
));
Function CheckCorg ( cc : comp ) : boolean;
Begin
CheckCorg := false;
CorgNrec := cc;
If GetFirst Katorg = tsOk
then CheckCorg := true
End
Public Function GetKPP ( c : comp ) : string;
Begin
GetKPP := '';
If CheckCorg ( c )
then GetKPP := Katorg.KodPlatNDS;
End;
Public Function GetMyKPP : string;
Begin
GetMyKPP := '';
If CheckCorg ( coGetTune ( 'MyOrg' ) )
then GetMyKPP := Katorg.KodPlatNDS;
End;
END.
Добавлено: 28 мар 2007, 12:17
edward_K
vih то есть какой то - в лом искать.
да и проще свой написать - там вроде объект объектом погоняет, не думаю, что это положительно скажется на быстродействии - будет не быстрее чем в моем примере.
Добавлено: 28 мар 2007, 13:54
Алексей
WiRuc
Так и не понял, чем sTxoGetField не устраивает?
sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
поставье code вместо name - будет код...
Добавлено: 31 мар 2007, 23:47
Deinis
Алексей писал(а):WiRuc
Так и не понял, чем sTxoGetField не устраивает?
sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
поставье code вместо name - будет код...
Как я понимаю, просто хочется красоты. Объектного программирования. Типа VBA

) Эххх...

)
Добавлено: 02 апр 2007, 11:59
WiRuc
Все гораздо тривиальнее:)
Понятно, что я могу все это легко реализовать сам, единственное, за отсутсвием лицензии на VIP придется городить inculde файл, включаемый в необходимые отчеты. Проблема в другом, хочется, чтобы формирование этих ОЧЕНЬ ЧАСТО ИСПОЛЬЗУЕМЫХ характеристик происходило в одном месте. А то потом введут какой-нибудь дополнительный ИНН\КПП и переделывай свой объект

Объекты для получения характеристик МЦ,организаций,сотрудников просто обязаны быть в любой уважающей себя системе

Добавлено: 02 апр 2007, 12:06
Алексей
WiRuc
так и не ответили на вопрос, чем не устраивает та функция, что была предложена?
Добавлено: 02 апр 2007, 14:15
WiRuc
Алексей писал(а):WiRuc
так и не ответили на вопрос, чем не устраивает та функция, что была предложена?
Блин, ну о чем я по вашему писал постом выше
Если взять даже такой простой случай, как получение наименования организации, то
sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
просто так мы не используем. В Галактике форма образования может быть отделена от названия организация, даже есть специальная настройка, которая это регулирует. А уж по адресу вообще песня - получить индекс, прибавить город, прибавить адрес... Чем юзать sTxoGetField в этом случае, я лучше небольшой include файл с вьюхой напишу. Но хотелось именно стандартной функциональности

Добавлено: 18 апр 2007, 22:30
Screw
Содержимое OrganizationInfo.obj
Код: Выделить всё
//******************************************************************************
// (с) корпорация Галактика
// Галактика 7.12 - базовая функциональность
// Объявления объектных интерфейсов для выборки информации (юридической,
// налоговой и т.п.) об организации
//******************************************************************************
#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
Содержимое OrganizationInfo.vih
Код: Выделить всё
//******************************************************************************
// (с) корпорация Галактика
// Галактика 7.12 - базовая функциональность
// Объявления стандартных реализаций объектных интерфейсов для выборки
// информации об организации
//******************************************************************************
#ifndef _OrganizationInfo_vih_INCLUDED_
#define _OrganizationInfo_vih_INCLUDED_
#include OrganizationInfo.obj
#include IBankAccountValidator.obj
#include IProtectable.obj
#ifdef ComponentVersion
#component "L_KATORG"
#end
vipinterface OrganizationJuridicalInfo
implements
IOrganizationInfoFinder,
IOrganizationJuridicalInfo,
IOrganizationJuridicalInfo1,
IOrganizationNaming,
IProtectable
#ifdef ATL51
licensed (free)
parameters (OrganizationRef: comp)
#end
;
vipinterface OrganizationTaxationInfo
implements
IOrganizationInfoFinder,
IOrganizationTaxationInfo,
IProtectable,
ITaxationInspectionInfo
#ifdef ATL51
licensed (free)
parameters (OrganizationRef: comp)
#end
;
vipinterface OrganizationAccountsInfo
implements
IOrganizationInfoFinder,
IOrganizationAccountsInfo,
IProtectable
#ifdef ATL51
licensed (free)
parameters (OrganizationRef: comp)
#end
;
vipinterface OrganizationBanksList
implements
IOrganizationInfoFinder,
IOrganizationBanksList,
IBankAccountValidator,
IProtectable,
IBankInfo
#ifdef ATL51
licensed (free)
parameters (OrganizationRef, BankRef: comp; Options: longint)
#end
;
vipinterface OrganizationDefaultBank
implements
IOrganizationInfoFinder,
IBankInfo
#ifdef ATL51
licensed (free)
#end
;
#end
Добавлено: 19 апр 2007, 14:48
WiRuc
Вот это другое дело
Жаль немножко запоздало, уже все переделал на свою вьюху. Но ничего, еще понадобиться.
Вопрос к Screw. Почему корпорация не выложит в свободный доступ
все VIH файлы? Скажем выложить их первоначально на фтп, а затем в патчах обновлять, как это делается с FRM файлами. Ведь функциональность есть, пользоваться ею разрешают, а такая "мелочь" препятствует нормальной работе. Не понимаю...
Добавлено: 12 май 2007, 01:30
Screw
Ну, на 7.12 и 8.0 это вряд ли уже будет делаться...
На 8.10 в поставку включен целый каталог с документацией для разработчика. В оной доке содержатся описания объектных, vip-интерфейсов, базовых форм, FR-потоков и т.д. Всё с комментариями разработчиков, правда, пока без "литературной" части, то есть, чисто техническая инфа вроде той, что я привел в своём предыдущем ответе. Дока поставляется в chm-формате. В стандарт кодирования внесен пункт об обязательном документировании каждой разрабатываемой сущности (которую можно документировать).
А будут ли впредь выкладываться заголовки... даже не знаю. Может с докой это уже и не будет нужно...