Содержание проводки

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

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

Ответить
Pasynkova
Посетитель
Сообщения: 40
Зарегистрирован: 29 окт 2008, 13:00

Содержание проводки

Сообщение Pasynkova »

Здравствуйте!
Помогите разобраться как заполнить поле содержание проводки.
Из одного vip-а раскладываются проводки по разным счетам, в соответствии со счетом нужно заполнить Содержание проводки. Как это сделать в одном vip-е ?

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

#include TxoApi.vih
VipInterface TXO_SnabUsl implements ObjTxoIdentPlugin;
Interface TXO_SnabUsl;
 Create View
 From KatSopr (Readonly),Katpodr, SoprOrdB,     
      Spsopr (ReadOnly),
      ConnectDoc (ReadOnly); 
  
 function GetInfo : String;
 {
  GetInfo := 'Приобретение коммунальных услуг';
 }
 function ParamMaster : String;
 {
   Message('<режим 0 - организации> - дебет'#13+
           '<режим 1 - организации> - кредит'#13+
           '8.13_Приобретение  услу, выполненых работ(прочих)'#13+
           'Нужно задавать циклическую обработку.');
   ParamMaster := '';
 }
//-------------------------------------------------------------------------------
 procedure StoreCycles ( hTxo : LongInt; buf : TTxoApiInfoDoc );
 var SchetD: String[10];
     cSpKau101 : Comp;
    
 {
  if ( GetFirst KatSopr Where (( buf.cSoprDoc == KatSopr.nrec )) <> tsOk )
   Exit;
  
if ( GetFirst KatSopr Where (( buf.cSoprDoc == KatSopr.nrec )) = tsOk )
 {
   _loop Spsopr where ((   KatSopr.nrec     == SpSopr.cSopr     and
                                      Spsopr.nrec      == Soprordb.cspsopr)) 
            {
              _Loop SoprOrdB where ((  SoprordB.cpodr   == Katpodr.nrec  )) 
                                       and substr(Katpodr.kod,1,1) <> '4'
 {   
  if (Getfirst KatUsl Where ((Spsopr.cmcusl      == Katusl.nrec )) = tsOk ) 
                            
    {
     if ( MatchesMask(KatUsl.kod, '33#;63_002;32_001;71_028;71_025;71_049;71_005;|33_039;33_100') )   SchetD := '8041.06' ;    
     if ( MatchesMask(KatUsl.kod, '35_011;35_012;36_001;81_001')) SchetD := '8041.11' ;    
     if ( MatchesMask(KatUsl.kod, '61#;|61_016;61_022;61_017;61_019;61_020')) SchetD := '8041.12' ;
     if ( MatchesMask(KatUsl.kod, '85#'))  SchetD := '8041.16' ; 
     if ( MatchesMask(KatUsl.kod, '68_001;61_016;61_022') )   SchetD := '8041.17' ; 
     if ( MatchesMask(KatUsl.kod, '38_004;43_034;74_010;84_023;84_021;86#')) SchetD := '8041.18' ; 
    }
  { if (SchetD='8041.17')  SchetK:='3362.01'; else SchetK:='3311.01';  }

   cSpKau101 := Comp(0);
  // Отраслевой сегмент
  if ( GetFirst ConnectDoc Where (( LINKPODRKAU101   == ConnectDoc.Vid and
                                    SoprordB.cpodr   == ConnectDoc.cDoc2 )) = tsOk )
  cSpKau101 := ConnectDoc.cDoc1;
    if ( GetFirst BuhSchet Where (( coGetTune( 'FIN.USER.CPLANSSCH' ) == BuhSchet.cPlansSch and
                                                   SchetD == BuhSchet.Code )) = tsOk )  
    TxoBodyClear(hTxo);
//дебет  // потому что циклическая обработка
    TxoBodyAddSchet ( hTxo, wFlKau_mode0, BuhSchet.Schet, BuhSchet.SubSch );
    TxoBodyAddKau ( hTxo, wFlKau_mode0, 101, cSpKau101);
    TxoBodyAddKau ( hTxo, wFlKau_mode0, cgKau_KatPodr, Katpodr.nrec  ); 
    TxoBodyAddKau ( hTxo, wFlKau_mode0, cgKau_KatUsl, SpSopr.cmcusl );    
      //кредит
    if ( GetFirst BuhSchet Where (( coGetTune( 'FIN.USER.CPLANSSCH' ) == BuhSchet.cPlansSch and
                                    SchetK == BuhSchet.Code )) = tsOk )
     TxoBodyAddSchet ( hTxo, wFlKau_mode1, BuhSchet.Schet, BuhSchet.SubSch );
    TxoBodyAddKau   ( hTxo, wFlKau_mode1, 101, cSpKau101);
    TxoBodySetSum   ( hTxo,SoprOrdB.price,0,0);
    TxoBodyInsert   ( hTxo );
      }
    }
  }
}
end.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Содержание проводки

Сообщение edward_K »

Я не знаю как можно заполнить содержание с помощью функций TxoApi. Ед. что вы можете указать в настройке шаблона формулы на основе кау и функционал сам это заполнит. Но есть фишка. Добавить в шаблон тхо последней проводку в которой вызвать либо ту же апиху с особыми ключами, либо лучше отдельную, в которой пробегаете oborot в разрезе csoprdoc + cplanssch и ставите содержание какое хотите. Смысл в том , что после отработк каждого шаблона проводки oborot физически пишется в базу, и в последующих шаблонах вы уже можете использовать результаты предыдущих.
Pasynkova
Посетитель
Сообщения: 40
Зарегистрирован: 29 окт 2008, 13:00

Re: Содержание проводки

Сообщение Pasynkova »

edward_K писал(а):Я не знаю как можно заполнить содержание с помощью функций TxoApi. Ед. что вы можете указать в настройке шаблона формулы на основе кау и функционал сам это заполнит. Но есть фишка. Добавить в шаблон тхо последней проводку в которой вызвать либо ту же апиху с особыми ключами, либо лучше отдельную, в которой пробегаете oborot в разрезе csoprdoc + cplanssch и ставите содержание какое хотите. Смысл в том , что после отработк каждого шаблона проводки oborot физически пишется в базу, и в последующих шаблонах вы уже можете использовать результаты предыдущих.
А можно небольшой примерчик??
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Содержание проводки

Сообщение edward_K »

http://tyumbit.ru/gal_forum/viewtopic.php?f=8&t=11644
не забудьте плюсик поставить в репутацию 8)
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Содержание проводки

Сообщение edward_K »

а оценку :cry: .
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Содержание проводки

Сообщение savov »

edward_K писал(а):Я не знаю как можно заполнить содержание с помощью функций TxoApi. Ед. что вы можете указать в настройке шаблона формулы на основе кау и функционал сам это заполнит. Но есть фишка. Добавить в шаблон тхо последней проводку в которой вызвать либо ту же апиху с особыми ключами, либо лучше отдельную, в которой пробегаете oborot в разрезе csoprdoc + cplanssch и ставите содержание какое хотите. Смысл в том , что после отработк каждого шаблона проводки oborot физически пишется в базу, и в последующих шаблонах вы уже можете использовать результаты предыдущих.
А если надо в содержание проводки записать некую цифру, которую надо ввести вручную при разноске . Тут как быть? Неужели нет никаких функций записи?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Содержание проводки

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

savov писал(а):
edward_K писал(а):Я не знаю как можно заполнить содержание с помощью функций TxoApi. Ед. что вы можете указать в настройке шаблона формулы на основе кау и функционал сам это заполнит. Но есть фишка. Добавить в шаблон тхо последней проводку в которой вызвать либо ту же апиху с особыми ключами, либо лучше отдельную, в которой пробегаете oborot в разрезе csoprdoc + cplanssch и ставите содержание какое хотите. Смысл в том , что после отработк каждого шаблона проводки oborot физически пишется в базу, и в последующих шаблонах вы уже можете использовать результаты предыдущих.
А если надо в содержание проводки записать некую цифру, которую надо ввести вручную при разноске . Тут как быть? Неужели нет никаких функций записи?
нет...
как вариант можно завести пользовательскую аналитику со значениями (цифрами) в випе эту цифру заполнять в кау, в настройке ТХО сказать что циклическая по этой аналитике и уже в содержание вывести значение КАУ...
либо в ПиР предложение доработать метод по заполнению содержания.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Содержание проводки

Сообщение edward_K »

Никто не мешает вам в той же апихе вызвать модально окно с запросом числа,но это плохой стиль - лучше тогда внешний атрибут к документу
Ответить