Страница 2 из 3

Добавлено: 06 июн 2008, 15:00
PViP
Очень была бы рада примеру ручного создания SoprHoz и BaseFin
:[
в чем тут трудность? insert soprhoz set .... и т.д. подставляете требуемые значения поля и главное по журналу смотрите что там еще создается.
Код:
Function PlPor_Insert (bufPlPor : TPlPor) : Comp;
Добавление PlPor, с проверкой корректности и формированием SoprHoz
Здесь вам надо загрузить сначала vip interface. vih для него здесь Gal810\FRM\F_PlPor.rar\CompSrc\F\F_PlPor\Vip\PlPorSimple.vih.

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

 var myPlPorSimple : PlPorSimple;
 var bufPlPor : TPlPor;
 ......
 //заполение bufPlPor
 ......
 LoadVipInterface(myPlPorSimple);
 myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
 FreeVipInterface(myPlPorSimple);

Добавлено: 06 июн 2008, 15:52
eyolkina
Здесь вам надо загрузить сначала vip interface. vih для него здесь Gal810\FRM\F_PlPor.rar\CompSrc\F\F_PlPor\Vip\PlPorSimple.vih.

Код:

var myPlPorSimple : PlPorSimple;
var bufPlPor : TPlPor;
......
//заполение bufPlPor
......
LoadVipInterface(myPlPorSimple);
myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
FreeVipInterface(myPlPorSimple);
Большое спасибо. Касательно ручного создания - немного начала разбираться, но очень хочется использовать интерфейс, раз уж я его подключаю.

Жаль только, что

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

LoadVipInterface(myPlPorSimple); 
myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor); 
FreeVipInterface(myPlPorSimple); 
не помогло :(

Добавлено: 06 июн 2008, 15:54
eyolkina
На всякий случай привожу код:

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

   //считываем значения из файла
   LoadRecordFromDBF();
   LoadVipInterface(piPlPor);
   piPlPor.PlPor_Fill(bufPlPor, TIDKGAL, TIDK, DATVIP,0);

   bufPlPor.NODOK:=NODOK;
   
   bufPlPor.NAMEPL1:=NAMEPL1;
   bufPlPor.NAMEPL2:=NAMEPL2;
   bufPlPor.NAMEPL3:=NAMEPL3;
   bufPlPor.NAMEPL4:=NAMEPL4;
   bufPlPor.PODOTCHET:=PODOTCH;
   bufPlPor.TAX:=TAX;
   
   bufPlPor.SUMPLAT:=SUMPLAT;
  
   
   bufPlPor.cplat:=GetOrg(PLAT_INN,PLAT_RS);//281474976739064;
   bufPlPor.cpol:=GetOrg(POL_INN,POL_RS);//12081;
  Message( 'bufPlPor.cbankplat:=GetBank(PLAT_INN,PLAT_RS)');
   bufPlPor.cbankplat:=GetBank(PLAT_INN,PLAT_RS);//281474976739064;
 Message( 'bufPlPor.cbankpol:=GetBank(POL_INN,POL_RS)');
   bufPlPor.cbankpol:=GetBank(POL_INN,POL_RS);//12081;

   Message( bufPlPor.cplat);
   Message( bufPlPor.cpol);
 if(piPlPor.PlPor_Check(bufPlPor,0)=false)
 then message('Чтото неправильно заполнили');
	Message('вставляем');
//LoadVipInterface(myPlPorSimple); 
// myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor); 
// FreeVipInterface(myPlPorSimple); 
   	 
  nrec_my:=piPlPor.PlPor_Insert(bufPlPor);
  FreeVipInterface(piPlPor); 
вариант

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

   //считываем значения из файла
   LoadRecordFromDBF();
  
  piPlPor.PlPor_Fill(bufPlPor, TIDKGAL, TIDK, DATVIP,0);
...

 LoadVipInterface(piPlPor);
nrec_my:=piPlPor.PlPor_Insert(bufPlPor);
  FreeVipInterface(piPlPor); 
тоже не прошел :(((

Добавлено: 06 июн 2008, 16:14
PViP
eyolkina, тоесть вываливается исключение когда выполняются операции с объектным файсом или платежка не создается?

Также надо объявить #define ComponentVersion перед инклюдами vih файлов. Иначе работать ниче не будет, в следствии компонентной принадлежности!

Добавлено: 06 июн 2008, 16:34
eyolkina
eyolkina, тоесть вываливается исключение когда выполняются операции с объектным файсом или платежка не создается?

Также надо объявить #define ComponentVersion перед инклюдами vih файлов. Иначе работать ниче не будет, в следствии компонентной принадлежности!
никакого исключения не вываливается, платежка отлично создается,
но SoprHoz и BaseFin не создаются...

Добавлено: 06 июн 2008, 17:24
Max_Fin
что-то не понял
сперва у вас

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

piPlPor.PlPor_Fill
а только потом

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

LoadVipInterface(piPlPor);
поменяйте местами

Добавлено: 07 июн 2008, 08:59
eyolkina
поменяйте местами
в таком порядке тоже не работает... журнализация упрямо показывает создание только платежек.
может быть я забываю выхвать какой-нибудь секретный метод?

Добавлено: 07 июн 2008, 11:37
Алексей
если ошибок при отработке методов объектного интерейса нет - значит всё ок, видимо метод не предусматривает создание хоз.операции.
попробуйте найти объектный фейс по хоз.операциям, там тоже скорее всего есть метод. А вообще, когда вы потом в платеже зайдете во вкладку хоз.операции - она создасться автоматически.
так что не так страшно - что они не создаются.

Добавлено: 07 июн 2008, 11:44
eyolkina
если ошибок при отработке методов объектного интерейса нет - значит всё ок, видимо метод не предусматривает создание хоз.операции.
попробуйте найти объектный фейс по хоз.операциям, там тоже скорее всего есть метод. А вообще, когда вы потом в платеже зайдете во вкладку хоз.операции - она создасться автоматически.
так что не так страшно - что они не создаются
это правда - создаются. Вот думаю, может пусть остаются с вопросиком, зато сразу видно свежевыгруженные непроконтролированные платежки....

Добавлено: 07 июн 2008, 11:57
Алексей
в принципе да, сразу знак финансисту - "быстро обработай!" :)

Добавлено: 07 июн 2008, 14:12
eyolkina
в принципе да, сразу знак финансисту - "быстро обработай!"
и в инструкции как фичу описать :)))))))))))))))))

Добавлено: 07 июн 2008, 17:26
Max_Fin
создание SoprHoz'а

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

        ClearBuffer(tnSoprHoz);
        SoprHoz.TiDkGal := PlPor.TiDkGal;
        SoprHoz.TipDoc := Plpor.TiDk;
        SoprHoz.cSoprDoc := Plpor.nRec;
        SoprHoz.DesCr := PlPor.DesCr;
        SoprHoz.DesGr := Plpor.DesGr;
        SoprHoz.FilialNo := PlPor.FilialNo;
        SoprHoz.cFilKor := Plpor.cFilKor;
        SoprHoz.NoDoc := Plpor.NoDok;

        SoprHoz.cHozOper := PlPor.cHozOper;
        SoprHoz.Summa := PlPor.SumPlat;
        SoprHoz.SumValut := PlPor.SumPlatV;
        SoprHoz.KodValut := PlPor.cVal;
        SoprHoz.DatOb := PlPor.DatOb;
        SoprHoz.NameSHO := Trim(Trim(PlPor.NamePl1) + ' ' + 
                                     Trim(PlPor.NamePl2));
        SoprHoz.VhSumHoz := '+' ;

        SetBitKontras(PlPor.ModeDoc, SoprHoz.ModeDoc);
        insert current SoprHoz;

Добавлено: 09 июн 2008, 11:36
eyolkina
Max_Fin
Спасибо! Учту на будущее..

Еще вопрос: Можно ли как-нибудь определить число записей, возвращаемых при:

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

if (modifier getfirst Katorg where ((ORG_INN/==Katorg.UNN ))
          )=tsOk then
  begin
...
 end;

Добавлено: 09 июн 2008, 12:03
edward_K
была какая то переменная которая возвращала кол-во записей при груповых операциях (loop,update и так далее). tailly кажись - но она в доке не описана. loop еще почитайте. Да - modifier лучше не использовать - он вроде приводит к пересканированию экрана и тормозит выполнение.

Добавлено: 09 июн 2008, 12:10
eyolkina
т.е. делать:

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

if ( getfirst Katorg where ((ORG_INN/==Katorg.UNN )) 
          )=tsOk then 
  begin 
... 
 end;
???

еще ругается на:

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

if((getfirst Katbank where 
     ((CORG/==Katbank.corg  and ORG_RS/==Katbank.schet1 ))
          )=tsOk )
Пишет: Нужен ключ на CORG+SCHET1 для KATBANK...
Я что-то не так подцепляю??? странный этот механизм с подцепками...