Пример экспорта платёжек из БЭСТ-4 в формат 1С
Скачать (rar-файл; Размер - 8599)Обсудить в форуме
Описание
Этот пример экспортирует платёжки из бухгалтерии БЭСТ-4
сетевая версия 9.05/001 от 28.05.2002 г. и создаёт файл импорта
в формате 1С (ВерсияФормата=1.01) для Банк-Клиента.
Так как в этой версии БЭСТа нет специальных полей соответствующих
требованиям указания ЦБ РФ от 03.03.2003 N 1256-У, они указываются
через точку с запятой в назначении платежа. Например:
02;1020102;64401000000;ТП;МС.02.2003;0;20.03.2003;НС; НДС за май 2003г.
Более подробное описание смотрите в фале readme.txt или Exp_BEST.mac.
сетевая версия 9.05/001 от 28.05.2002 г. и создаёт файл импорта
в формате 1С (ВерсияФормата=1.01) для Банк-Клиента.
Так как в этой версии БЭСТа нет специальных полей соответствующих
требованиям указания ЦБ РФ от 03.03.2003 N 1256-У, они указываются
через точку с запятой в назначении платежа. Например:
02;1020102;64401000000;ТП;МС.02.2003;0;20.03.2003;НС; НДС за май 2003г.
Более подробное описание смотрите в фале readme.txt или Exp_BEST.mac.
Текст примера
/* ========================================================================== Назначение: ---------- Экспорт платежек из бухгалтерии БЭСТ (файл rsdoc.dbf). Создание файла импорта в формате 1С (ВерсияФормата=1.01) для Банк-Клиента. Так как в этой версии БЭСТА нет специальных полей соответствующих требованиям указания ЦБ РФ от 03.03.2003 N 1256-У, они указываются через точку с запятой в назначении платежа. Например: 02;1020102;64401000000;ТП;МС.02.2003;0;20.03.2003;НС; НДС за май 2003г. Описание: -------- Поместите файл BEST.rsg в папку OBJ, файл Exp_Best.mac в папку MAC. В меню Банк-Клиента "Администрирование-Меню пользователей" найдите строку с названием "Импорт документа" и поменяйте "Название меню" на "Экспорт из бухгалтерии БЭСТ", а "Имя макроса" на Exp_Best. Если не хотите менять, создайте новую команду меню. Формат файла rsdoc.dbf соответствует сетевой версии БЭСТ-4 9.05/001 от 28.05.2002 г. Путь к файлу rsdoc.dbf нужно прописать в переменной Target (42 строка этого файла). Если все сделано и файл 1c_to_kl.txt создан успешно он будет показан в окне редактора Банк-Клиента. Всё остальное уже сделано R-Style :-) Команда "Импорт/Экспорт с 1С" сделает все проверки и покажет отчет в окне редактора Банк-Клиента после импорта. =========================================================================*/ import RSLX; /* для расширений ActiveX */ FILE report ("..\\txtfile\\1c_to_kl.txt") txt write; FILE best () dbf; FILE rpt () txt; Var frm, vrsl, iMax=0, i=0; Var Target="c:\\bdate\\rsdoc.dbf"; Var pospoint=0, appoint, trg="", trg1="", trg2="", trg3="", trg4="", trg5="", trg6="", trg7="", trg8=""; Open(best,Target); prev(best); iMax = GetPos ( best ); vrsl = ActiveX("RSGENOLE.VRslRun.1"); frm = vrsl.RunFrm("Req_BEST"); frm.pFileNameExp = Target; frm.pFileRecord = String(iMax); frm.pReturnCode = 0; frm.openForm (); if ( frm.pReturnCode != 0 ) Insert( report, "1CClientBankExchange "); Insert( report, "ВерсияФормата=1.01"); Insert( report, "Кодировка=Windows "); Insert( report, "Отправитель=Бухгалтерский учет, редакция 4.2 "); Insert( report, "Получатель=Клиент банка InterBank v.5.1 R-Style Software Lab "); Insert( report, "ДатаСоздания= "); Insert( report, "ВремяСоздания= "); Insert( report, "ДатаНачала= "); Insert( report, "ДатаКонца= "); Insert( report, "РасчСчет= "); Insert( report, "РасчСчет= "); Insert( report, "РасчСчет= "); Insert( report, "Документ=Платежное поручение "); VclInitProgress (iMax, "Экспорт из БЭСТа"); /* рисуем progress bar */ rewind (best); while (next (best)) VclUseProgress (i); /* рисуем progress bar */ if ( (best.doper==frm.pDateExp) and (best.mfo_pay=="046401772 ") ) Insert( report, "СекцияДокумент=Платежное поручение"); Insert( report, "Номер="+best.Ndoc); Insert( report, "Дата="+String(best.Doper)); Insert( report, "Сумма="+best.Summa1 ); Insert( report, "ПлательщикСчет="+best.Acc_pay); if ( strlen(Trim(best.Codp_pay))<15 ) /* Если в поле Codp_pay не указан КПП вашего клиента, а клиент не знает как его туда вставить, допишите его */ Insert( report, "ПлательщикИНН="+Trim(best.Codp_pay)+"/650101001"); else Insert( report, "ПлательщикИНН="+Trim(best.Codp_pay) ); end; Insert( report, "Плательщик="+oem_to_ansi(best.org_pay) ); Insert( report, "Плательщик1="+oem_to_ansi(best.org_pay) ); Insert( report, "ПлательщикРасчСчет="+best.Acc_pay); Insert( report, "ПлательщикБанк1="+oem_to_ansi(best.Bank_pay)); Insert( report, "ПлательщикБанк2="); Insert( report, "ПлательщикБИК="+best.Mfo_pay); Insert( report, "ПлательщикКорсчет="+best.Corr_pay); Insert( report, "ПолучательСчет="+best.Acc_rcv); Insert( report, "ПолучательИНН="+best.Codp_rcv); Insert( report, "Получатель="+oem_to_ansi(best.Org_rcv)); Insert( report, "Получатель1="+oem_to_ansi(best.Org_rcv)); Insert( report, "ПолучательРасчСчет="+best.Acc_rcv); Insert( report, "ПолучательБанк1="+oem_to_ansi(best.Bank_rcv)); Insert( report, "ПолучательБанк2="); Insert( report, "ПолучательБИК="+best.Mfo_rcv); Insert( report, "ПолучательКорсчет="+best.Corr_rcv); Insert( report, "ВидПлатежа="+"электронно"); Insert( report, "ВидОплаты="); Insert( report, "Очередность="+best.Tabl_04); /* 1256-У */ appoint = oem_to_ansi(best.Osnov_); trg1=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==2) trg1 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "СтатусСоставителя="+trg1); trg2=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==7) trg2 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательКБК="+trg2); trg3=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==11) trg3 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ОКАТО="+trg3); trg4=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==2) trg4 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательОснования="+trg4); trg5=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==10) trg5 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательПериода="+trg5); trg6=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)>0) trg6 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательНомера="+trg6); trg7=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)>0) trg7 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательДаты="+trg7); trg8=""; pospoint = Index(appoint, ";"); if (pospoint>0) trg = substr(appoint,1,pospoint-1); if (strlen(trg)==2) trg8 = trg; appoint = substr(appoint,pospoint+1); end; end; Insert( report, "ПоказательТипа="+trg8); Insert( report, "НазначениеПлатежа="+appoint ); Insert( report, "НазначениеПлатежа1="); Insert( report, "КонецДокумента" ); end; i = i + 1; end; /* while*/ Insert( report, "КонецФайла" ); Close(report); Open(rpt,"..\\txtfile\\1c_to_kl.txt"); rewind (rpt); while (next (rpt)) [ # ]( rpt.str ); end; VclRemProgress (i); /* удаляем progress bar */ end;