Страница 1 из 1

Получить "Руководителя" карточка организации

Добавлено: 27 фев 2017, 18:15
Masygreen
В карточке организации, на вкладке "Юридическая информация" есть поле "Руководитель", в поле вписать вручную имя ..
Судя по журнализации там какой-то бред в таблицу allmemo постоянно добавляются поля .. без удаления .. подобрал метод получения...

Код: Выделить всё

 _loop allmemo where ((katorg.nrec == allmemo.crec and cokatorg == allmemo.wtable and 1014 == allmemo.tip(noindex)))
              sGetDopInf := allmemo.name;
Но что-то мне подсказывает, что получить можно более гуманным способом

Re: Получить "Руководителя" карточка организации

Добавлено: 27 фев 2017, 18:46
Den
Вроде в podrinfo это лежало а не в мемо. Может конечно поменяли что то недавно
метод GetDirectorName в OrganizationInfo.obj

Re: Получить "Руководителя" карточка организации

Добавлено: 28 фев 2017, 00:47
Masygreen
Den писал(а):Вроде в podrinfo это лежало а не в мемо. Может конечно поменяли что то недавно
метод GetDirectorName в OrganizationInfo.obj
там что-то хитрое .. в podrinfo пихается с какими-то символами псевдоразметки и только короткое.. не понял закономерности вставки ..
с GetDirectorName посмотрю, спасибо

Re: Получить "Руководителя" карточка организации

Добавлено: 28 фев 2017, 10:26
edward_K
Лучше всегда юзать объект. Мало ли - поля из PodrInfo частью например уже перекачевали в katorg - адреса например. А в AllMemo видимо пишется история. Чтобы не гадали вот последний вариант

Код: Выделить всё

  
//------------------------------------------------------------------------------
  function GetNameByMet(met : char) : string;   //Получение имен представителя,
  {                                             //директора и бухгалтера
    var i
       ,j
       ,k     : byte;
    var Names : string;

    Names := PodrInfo.PostAddr;
    j     := 0;
    k     := 0;

    j := inStr(met + ';',Names);

    if (j = 0)
      Result := ''
    else
    {
      for ( i := j-1; i < length(Names); i++ )
        if (Names[i+1] = '&')
          {
            k := i+1;
            break;
          }

      if (k = 0)
        k := length(Names) + 1;

      Result := SubStr(Names, j + 2, k - j - 2);
    }
  }

//------------------------------------------------------------------------------
  function GetBigBoss : string;
  {
    Result := GetNameByMet('B');
  }


// руководитель (ссылка на физическое лицо)
  function GetDirector: comp;
  {
    if (KATORG.cBoss = 0) and IsOwnOrganization
      Result := coGetTune('Boss');
    else
      Result := KATORG.cBoss;
  }

  //ФИО
  function GetDirectorName: string;
  var nRec : comp;
  {
    nRec := GetDirector;

    Result := '';

    if (nRec <> 0)
    {
      if ( GetFirst Persons where (( nRec == Persons.nRec )) = tsOk )
        Result := Persons.FIO;
    }
    else
      Result := GetBigBoss;
  }

Re: Получить "Руководителя" карточка организации

Добавлено: 28 фев 2017, 11:31
Irina_
Здравствуйте.
Как-то понадобилось тоже получить ФИО директора и главбуха не своей организации. Тогда нашла их так. Сейчас немного подправила.
Function FindInfoOfOrg( cOrg:Comp; var Fio_dir: String; var Fio_gb: String):Boolean;
Var
String1 : String;
Pos_b, pos_e, len_ : Byte ;
Find_info : Boolean;
Begin
Find_info:= False;
Fio_dir:= ’’;
Fio_gb:= ’’;
If (Getfirst Katorg Where (( cOrg == KatOrg.Nrec )) = tsok)
{
Find_info:= True;
If (Getfirst Podrinfo Where (( cOrg == Podrinfo.cPodr )) = tsok)
{
String1:= Podrinfo.Postaddr;
Len_:= Length(String1);
Pos_b:= Pos( ’M;’ , String1);
If pos_b > 0
{
pos_e:= Pos( ’&B;’ , String1);
if pos_e > 0 then Fio_gb:= Substr(String1, Pos_b+2, Pos_e-Pos_b-2);
String1:= Substr( String1, Pos_e + 1, len_ - Pos_e + 1);
}
Pos_b:= Pos( ’B;’, String1);
If pos_b > 0
{
pos_e:= Pos( ’&’, String1);
if pos_e > 0 then Fio_dir:= Substr(String1, Pos_b+2, Pos_e-3);
}
}
}
FindInfoOfOrg:= Find_info;
End.

Re: Получить "Руководителя" карточка организации

Добавлено: 28 фев 2017, 18:16
Masygreen

Код: Выделить всё

#include OrganizationInfo.vih    

Код: Выделить всё

            var
              Finder: IOrganizationInfoFinder;     // загрузка информации об организации
            var
              Info: OrganizationJuridicalInfo;  // юридические атрибуты организации

            Finder := IOrganizationInfoFinder(Info);        // загрузка информации об организации

            Finder.Seek(katorg.nrec)

            message(Info.GetDirectorName);            
Всем спасибо .. все получилось