Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Экспорт в формате PayDocRuXE

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4
View previous topic :: View next topic  
Author Message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 22 Jun 2005 10:40    Post subject: Экспорт в формате PayDocRuXE Reply with quote

Из руководства к ДБО BS-Client v.3.0:
Quote:

Взаимодействие с БС «БЭСТ»
Обмен данными возможен между системой BS-Client и БС БЭСТ-4 версии 9.03 и выше. Импорт документов из БЭСТ 4.10 может осуществляться в формате PayDocRuXE.

PayDocRuXE это и есть Клиент Банк New?
Back to top
View user's profile Send private message Send e-mail
Квазимодо



Joined: 14 Mar 2005
Posts: 17
Location: Алексей


PostPosted: 22 Jun 2005 11:33    Post subject: Reply with quote

PayDocRuXE - это новый формат импорта данных в систему BS-Client 3.0 - 30 полей вместо 15, которые были в PayDocRu. Если мы говорим об одной системе (а у нас программисты из 3 банков ставили 3 разные клиентские программы), то в BS-Client Вам нужно заходить в "Связь с БС" -> "Форматы импорта документов" и полям его базы данных присваивать значения полей rsdoc.dbf, причем настройки не слишком жесткие - какие-то поля можно будет убрать, если потребуется. Более конкретно мало чего могу сказать - нам ставили эту программу без поддержки импорта из БЭСТ4, так что пришлось заводить в БЭСТ свой формат экспорта в текстовый файл.
Back to top
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 22 Jun 2005 12:43    Post subject: Reply with quote

Скорей всего говорим об одном и том же.
Вот и у меня сомнения по поводу прямого импорта из rsdoc.
Похоже одно и то же.
Может выложите формат экспорта в упомянутую систему, юзерам для использования, разработчику для включения в дистрибутив?

Но прочитать что система поддерживала импорт из БЭСТ-4 приятно
Правда теперь пункта этого нет
Back to top
View user's profile Send private message Send e-mail
Квазимодо



Joined: 14 Mar 2005
Posts: 17
Location: Алексей


PostPosted: 22 Jun 2005 15:34    Post subject: Reply with quote

У меня настройки импорта в ДБО BS-Client такие:

Описание формата:
Quote:

DocumentDate : Date;
DocumentNumber : String;
CurrCode : String;
PayerAccount : String;
PayerName : String;
ReceiverBIC : String;
ReceiverAccount : String;
Receiver : String;
ReceiverINN : String;
Amount : Float;
Ground : String;
Nds : String;
PaymentUrgent : String;
PayUntil : Date;
OperType : String;
SendType : String;
ReceiverKPP : String;
Stat1256 : String;
CBCcode : String;
OKATOcode : String;
PayGrndParam : String;
TaxPeriodParam1 : String;
TaxPeriodParam2 : String;
TaxPeriodParam3 : String;
DocNumParam2 : String;
DocDateParam1 : String;
DocDateParam2 : String;
DocDateParam3 : String;
PayTypeParam : String;
PayerKPP : String;


Описание действий:
Quote:

PAYDOCRU. %DATECREATE = %Date;
PAYDOCRU. %TIMECREATE = %Time;
PAYDOCRU. %TABLEIDENT = 1;
PAYDOCRU. CLIENT = %GETCLIENT;
PAYDOCRU. STATUS = %GetSchemeID(PayDocRu);
PAYDOCRU. CUSTID = %GETCUSTOMER;
PAYDOCRU. SERVICE = 1;
PAYDOCRU. DESTCLIENT = SQL: select Client from Customer where PostLevel=1;
PAYDOCRU. DOCUMENTDATE = DocumentDate;
PAYDOCRU. DOCUMENTNUMBER = DocumentNumber;
PAYDOCRU. CURRCODE = CurrCode;
PAYDOCRU. PAYER = PayerName;
PAYDOCRU. PAYERINN = SQL: select Customer.INN from Customer,Account where (Account.Account='PayerAccount') and (Account.Client=Customer.Client) and (Account.CustId=Customer.CustId);
PAYDOCRU. PAYERKPP = PayerKPP;
PAYDOCRU. PAYERACCOUNT = PayerAccount;
PAYDOCRU. PAYERBIC = SQL: select BIC from Account where Account.Account='PayerAccount';
PAYDOCRU. PAYERCORRACCOUNT = SQL: select BankRu.CorrAccount from BankRu,Account where (Account.Account='PayerAccount') and (Account.BIC=BankRu.BIC);
PAYDOCRU. PAYERBANKNAME = SQL: select BankRu.Name from BankRu,Account where (Account.Account='PayerAccount') and (Account.BIC=BankRu.BIC);
PAYDOCRU. PAYERBANKTYPE = SQL: select BankRuType.NameShort from BankRuType, BankRu, Account where (Account.Account='PayerAccount') and (Account.BIC=BankRu.BIC)AND(BankRuType.Code = BankRu.Type);
PAYDOCRU. PAYERPROPERTYTYPE = SQL: select Propertytype.NameShort from Propertytype, Account where (Account.Account='PayerAccount') and (Account.Propertytype=Propertytype.Autokey);
PAYDOCRU. PAYERPLACE = SQL: select BankRu.Place from BankRu,Account where (Account.Account='PayerAccount') and (Account.BIC=BankRu.BIC);
PAYDOCRU. PAYERPLACETYPE = SQL: select PlaceType.NameShort from PlaceType, BankRu, Account where (Account.Account='PayerAccount')AND(Account.BIC=BankRu.BIC)AND(BankRu.PlaceType = PlaceType.Autokey);
PAYDOCRU. RECEIVER = Receiver;
PAYDOCRU. RECEIVERINN = ReceiverINN;
PAYDOCRU. RECEIVERACCOUNT = ReceiverAccount;
PAYDOCRU. RECEIVERBIC = ReceiverBIC;
PAYDOCRU. RECEIVERCORRACCOUNT= SQL: select BankRu.CorrAccount from BankRu where (BankRu.BIC='RECEIVERBIC');
PAYDOCRU. RECEIVERBANKNAME = SQL: select BankRu.Name from BankRu where (BankRu.BIC='RECEIVERBIC');
PAYDOCRU. RECEIVERBANKTYPE = SQL: select BankRuType.NameShort from BankRuType, BankRu where (BankRu.BIC='RECEIVERBIC')AND(BankRuType.Code=BankRu.Type);
PAYDOCRU. RECEIVERPLACE = SQL: select BankRu.Place from BankRu where (BankRu.BIC='RECEIVERBIC');
PAYDOCRU. RECEIVERPLACETYPE = SQL: select PlaceType.NameShort from PlaceType, BankRu where (PlaceType.AutoKey=BankRu.PlaceType)AND(BankRu.BIC='RECEIVERBIC');
PAYDOCRU. AMOUNT = Amount;
PAYDOCRU. GROUND = %CONCATE(Ground,Nds);
PAYDOCRU. PAYMENTURGENT = PaymentUrgent;
PAYDOCRU. PAYUNTIL = PayUntil;
PAYDOCRU. OPERTYPE = OperType;
PAYDOCRU. SENDTYPE = SendType;
PAYDOCRU. RECEIVERKPP = ReceiverKPP;
PAYDOCRU. STAT1256 = Stat1256;
PAYDOCRU. CBCCODE = CBCcode;
PAYDOCRU. OKATOCODE = OKATOcode;
PAYDOCRU. PAYGRNDPARAM = PayGrndParam;
PAYDOCRU. TAXPERIODPARAM1 = TaxPeriodParam1;
PAYDOCRU. TAXPERIODPARAM2 = TaxPeriodParam2;
PAYDOCRU. TAXPERIODPARAM3 = TaxPeriodParam3;
PAYDOCRU. DOCNUMPARAM2 = DocNumParam2;
PAYDOCRU. DOCDATEPARAM1 = DocDateParam1;
PAYDOCRU. DOCDATEPARAM2 = DocDateParam2;
PAYDOCRU. DOCDATEPARAM3 = DocDateParam3;
PAYDOCRU. PAYTYPEPARAM = PayTypeParam;


Соответственно, в настройках экспорта в БЭСТ4 ("Настройка системы Клиент-Банк" -> "Текстовый формат" -> по Alt-1) прописываются поля, которые в описании формата, в этом же порядке (имена не важно какие), а источники формирования для них будут такими (выбираются из справочника):

DocumentDate - Дата документа
DocumentNumber (*) {||right(rsdoc->ndoc,3)}
CurrCode - пустое поле (*) {||''} (в формате будет "ФОРМУЛА""810"; 810 - код рубля)
PayerAccount - Счет плательщика
PayerName - Организация плательщик
ReceiverBIC - МФО получателя
ReceiverAccount - Счет получателя
Receiver - Организация получателя
ReceiverINN - ИНН получателя
Amount - Сумма
Ground - Назн.платежа
Nds - у меня стоит пустое поле (в структуре rsdoc.dbf отдельно НДС нет, но в банке при приеме и обработке он выделяется)
PaymentUrgent - Очередность платежа
PayUntil - Срок платежа
OperType - Вид операции
SendType - Вид платежа
ReceiverKPP - КПП получателя
Stat1256 - Статус предприятия (можно пустое поле)
CBCcode - КБК
OKATOcode - ОКАТО получателя
PayGrndParam - Показатель основания платежа
TaxPeriodParam1 : (*) {||aGlobVars[4]}
TaxPeriodParam2 : (*) {||aGlobVars[5]}
TaxPeriodParam3 : (*) {||aGlobVars[6]}
DocNumParam2 (*) {||aGlobVars[7]}
DocDateParam1 (*) {||aGlobVars[8]}
DocDateParam2 (*) {||aGlobVars[9]}
DocDateParam3 (*) {||aGlobVars[10]}
PayTypeParam (*) {||rsdoc->type_plat}
PayerKPP - КПП плательщика

(*) - те поля, которые в справочнике надо добавить ("Имя источника" -> F2 -> F4) и ввести в описание эти выражения. А для их расчета предусмотрен fileeval exp.fev:

Quote:

aGlobVars[1]:=aGlobVars[1]+1
aGlobVars[4]:=if(Alltrim(rsdoc->nalog_srok)=='','',left(rsdoc->nalog_srok,2))
aGlobVars[5]:=if(Alltrim(rsdoc->nalog_srok)=='','',substr(rsdoc->nalog_srok,4,2))
aGlobVars[6]:=if(Alltrim(rsdoc->nalog_srok)=='','',right(rsdoc->nalog_srok,4))
aGlobVars[7]:=if((Alltrim(rsdoc->dnaldoc)=='') .or. (Alltrim(rsdoc->dnaldoc)=='0'),'','01')
aGlobVars[8]:=if((Alltrim(rsdoc->dnaldoc)=='') .or. (Alltrim(rsdoc->dnaldoc)=='0'),'',substr(rsdoc->nalog_srok,4,2))
aGlobVars[9]:=if((Alltrim(rsdoc->dnaldoc)=='') .or. (Alltrim(rsdoc->dnaldoc)=='0'),'',right(rsdoc->nalog_srok,4))
aGlobVars[10]:=if(at('/',rsdoc->codp_rcv)>0,right(rsdoc->codp_rcv,len(rsdoc->codp_rcv)-at('/',rsdoc->codp_rcv)),' ')
aGlobVars[11]:=strtran(alltrim(str(rsdoc->summa1,15,2)),'.',',')
aGlobVars[12]:=if(at('/',rsdoc->codp_rcv)>0,left(rsdoc->codp_rcv,at('/',rsdoc->codp_rcv)-1),rsdoc->codp_rcv)
aGlobVars[1]


Обязательно: в списке полей в БЭСТе первым (перед DocumentDate) ввести поле с описанием: {||'#'+alltrim(str(fileeval('exp.fev')))+'|PayDocRuXE'} (BS-Client воспринимает эту строку как ID документа в файле для импорта и тип, и это для каждого документа), а последним - поле с источником "Признак окончания документа" ({||';end'}).
Back to top
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 23 Jun 2005 12:06    Post subject: Reply with quote

Спасибо ))
да формат совпадает один в оди
Back to top
View user's profile Send private message Send e-mail
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 24 Jun 2005 08:59    Post subject: Reply with quote

А экспорт в клиент-банк в формате TXT приобретается отдельно??
при любой попытке тестирования выдает подобное сообщение.
Кто сталкивался?
Back to top
View user's profile Send private message Send e-mail
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 29 Jun 2005 15:52    Post subject: Reply with quote

Вообщем итог:
Использование стандартного способа настройки в формат TXT довольно неудобно. К тому же какие-то проблемы с отдельным приобретением.
Все решается довольно просто отдельным макросо
Back to top
View user's profile Send private message Send e-mail
Svarog



Joined: 17 Mar 2003
Posts: 357
Location: Гусев Сергей Александрович
Occupation: Сисадм
Interests: Нижний Новгород

PostPosted: 30 Jun 2005 14:15    Post subject: Reply with quote

Мы решили эту задачу написанием отдельной проги, которая конвертит данные из rsdoc.dbf в txt-формат PayDocExe последнего замеса (тот, который понимает ДБО BS-Client тоже последнего замеса). Все работает уже почти год.

Вообще некоторые клиент-банки умеют работать напрямую с rsdoc.dbf, что, вообще говоря, намного удобнее, чем работа с промежуточными форматами.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru