Обьект для получения информации по организации

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Обьект для получения информации по организации

Сообщение WiRuc »

Есть ли в Галактике объект, позволяющий по NREC получить различные реквизиты организации: наименование, ИНН, КПП, адрес?
Если существует, приведите пожалуйста VIH.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

if(initservtxo(0),sTxoGetField('X$USERS','XU$FULLNAME', lschet.atl_lastuser ),'???')
и сии вариации - это вроде в txo.pdf прописано
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

edward_K писал(а):if(initservtxo(0),sTxoGetField('X$USERS','XU$FULLNAME', lschet.atl_lastuser ),'???')
и сии вариации - это вроде в txo.pdf прописано
Я уж тогда лучше вьюху дополнительную пропишу и по ней буду получать данные. Хочется именно стандартной функциональности...
Блин, о чем только там программеры думают? Вот нужно мне сейчас в отчете добавить информацию о грузополучателе. В прототипе нет, поэтому придется вьюху рисовать. А был бы объект, вызвал например GetKatorgName, GetKatorgAddress, GetKatorgINN и все дела.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение 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.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

vih то есть какой то - в лом искать.
да и проще свой написать - там вроде объект объектом погоняет, не думаю, что это положительно скажется на быстродействии - будет не быстрее чем в моем примере.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

WiRuc
Так и не понял, чем sTxoGetField не устраивает?

sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
поставье code вместо name - будет код...
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение Deinis »

Алексей писал(а):WiRuc
Так и не понял, чем sTxoGetField не устраивает?

sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
поставье code вместо name - будет код...
Как я понимаю, просто хочется красоты. Объектного программирования. Типа VBA :)) Эххх... :))
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

Все гораздо тривиальнее:)
Понятно, что я могу все это легко реализовать сам, единственное, за отсутсвием лицензии на VIP придется городить inculde файл, включаемый в необходимые отчеты. Проблема в другом, хочется, чтобы формирование этих ОЧЕНЬ ЧАСТО ИСПОЛЬЗУЕМЫХ характеристик происходило в одном месте. А то потом введут какой-нибудь дополнительный ИНН\КПП и переделывай свой объект :(
Объекты для получения характеристик МЦ,организаций,сотрудников просто обязаны быть в любой уважающей себя системе :-(
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

WiRuc
так и не ответили на вопрос, чем не устраивает та функция, что была предложена?
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

Алексей писал(а):WiRuc
так и не ответили на вопрос, чем не устраивает та функция, что была предложена?
Блин, ну о чем я по вашему писал постом выше :D
Если взять даже такой простой случай, как получение наименования организации, то
sTxoGetField('katorg','name',хххх.corg) - выдаст вам наименование
просто так мы не используем. В Галактике форма образования может быть отделена от названия организация, даже есть специальная настройка, которая это регулирует. А уж по адресу вообще песня - получить индекс, прибавить город, прибавить адрес... Чем юзать sTxoGetField в этом случае, я лучше небольшой include файл с вьюхой напишу. Но хотелось именно стандартной функциональности :-(
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение 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

Виталий
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

Вот это другое дело :cool:
Жаль немножко запоздало, уже все переделал на свою вьюху. Но ничего, еще понадобиться.
Вопрос к Screw. Почему корпорация не выложит в свободный доступ все VIH файлы? Скажем выложить их первоначально на фтп, а затем в патчах обновлять, как это делается с FRM файлами. Ведь функциональность есть, пользоваться ею разрешают, а такая "мелочь" препятствует нормальной работе. Не понимаю...
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Ну, на 7.12 и 8.0 это вряд ли уже будет делаться...
На 8.10 в поставку включен целый каталог с документацией для разработчика. В оной доке содержатся описания объектных, vip-интерфейсов, базовых форм, FR-потоков и т.д. Всё с комментариями разработчиков, правда, пока без "литературной" части, то есть, чисто техническая инфа вроде той, что я привел в своём предыдущем ответе. Дока поставляется в chm-формате. В стандарт кодирования внесен пункт об обязательном документировании каждой разрабатываемой сущности (которую можно документировать).
А будут ли впредь выкладываться заголовки... даже не знаю. Может с докой это уже и не будет нужно...
Виталий
Ответить