буфер обмена из текстового файла

Тема в разделе "Visual Basic", создана пользователем OlgaCherry, 16 ноя 2007.

Статус темы:
Закрыта.
  1. OlgaCherry

    OlgaCherry Гость

    Добрый день !
    Никак не могу разобраться с импортом платежек в Клиент-банк. Необходимо импортировать платежки из тектового файла в формате 1С. Т.е. каждая строка имеет вид Имя=Значение. В нем идет непосредственное чтение файла в цикле функцией FILE_READ. Затем в зависимости от значения Имени берется соответствующее значение и импортируется в нужное поле. Но получается, что текст, расположенный на кнопке "Программа" выполняется столько раз, сколько строк в текстовом файле. Т.е. получается что одна и та же платежка импортируется много раз.
    Прилагаю текст программы :
    Код (Text):
    NumPP = CVD(TRIM(SCBN_STR1))
    File = "C:\KL_TO_1C.TXT"
    Handl = FILE_OPEN(File,0)

    IF REG_INT1 = 0 THEN     'Первая платежка в пакете
    REG_INT1 = REG_INT1 + 1
    Call LoadDoc()
    MESSAGE(REG_INT1)
    End IF

    SUB LoadDoc()
    NUM1 = ""
    DATA1 = 0
    SUMMA1 = 0
    DATASPIS=0
    NAZNPLAT = ""
    '
    PLATSCHET = ""
    PLATINN = ""
    PLATKPP = ""
    PLATBIK = ""
    PLATRSCHET =""
    '
    POLSCHET = ""
    POLINN = ""
    POLKPP = ""
    POLBIK = ""
    POLRSCHET= ""
    NMPLAT= ""

    Buf = ""
    Str = ""
    WHILE (FILE_READ(Handl,Buf) > 0 )
    NAME = UCASE(GETSUBST(Buf,1,"="))
    Val = GETSUBST(Buf,2,"=")                'Значение

    IF Name = "НОМЕР" THEN NUM1 = Val & Message("94")

    IF Name = "ДАТА" THEN DATA1 = TXTTODAT(SDTOS(Val))
    IF Name = "ДАТАСПИСАНО" THEN DATASPIS = TXTTODAT(SDTOS(Val))

    IF Name = "СУММА" THEN SUMMA1 = CVD(Val)
    IF Name = "ПЛАТЕЛЬЩИКСЧЕТ" THEN PLATSCHET = Val
    IF Name = "ПЛАТЕЛЬЩИКИНН" THEN PLATINN = Val
    IF Name = "ПЛАТЕЛЬЩИККПП" THEN PLATKPP = Val
    IF Name = "ПЛАТЕЛЬЩИК" THEN NMPLAT = Val

    IF Name = "ПЛАТЕЛЬЩИКБИК" THEN PLATBIK = Val
    IF Name = "ПЛАТЕЛЬЩИКРАСЧСЧЕТ" THEN PLATRSCHET = Val
    IF Name = "ПОЛУЧАТЕЛЬСЧЕТ" THEN POLSCHET = Val
    IF Name = "ПОЛУЧАТЕЛЬИНН" THEN POLINN = Val
    IF Name = "ПОЛУЧАТЕЛЬКПП" THEN POLKPP = Val
    IF Name = "ПОЛУЧАТЕЛЬБИК" THEN POLBIK = Val
    IF Name = "ПОЛУЧАТЕЛЬРАСЧСЧЕТ" THEN POLRSCHET = Val
    IF Name = "НАЗНАЧЕНИЕПЛАТЕЖА" THEN NAZNPLAT = Val
    IF Name = "КОНЕЦДОКУМЕНТА" THEN
    Continue = 0  & Message("114")

    END IF

    IF SUMMA1 < 0 THEN
    'Мы платим
    SELECT CASE DOCTYPE
    CASE "ПЛАТЕЖНОЕ ПОРУЧЕНИЕ"
    SCBN_TPDOCB = CCBN_PP
    CASE "МЕМОРИАЛЬНЫЙ (КАССОВЫЙ) ОРДЕР"
    SCBN_TPDOCB = CCBN_ORD
    CASE "ОБНАЛИЧЕН ДЕНЕЖНЫЙ ЧЕК"
    SCBN_TPDOCB = CCBN_CHQ
    END SELECT
    '
    SCBN_PTNMFO = POLBIK
    SCBN_PTNINN = POLINN
    CBNU_KPPPLAT = POLKPP
    SCBN_PTNACC = POLRSCHET
    CBNU_RASPLAT = PLATSCHET
    CBNU_OPRDAT = DATASPIS
    CBNU_DOCDAT = DATA1
    CBNU_SM= -SUMMA1
    CBNU_NMPLAT = NMPLAT
    ELSE
    'Нам платят
    SCBN_TPDOCB = CCBN_IPP
    SCBN_PTNMFO = PLATBIK
    SCBN_PTNINN = PLATINN
    CBNU_KPPPLAT = PLATKPP

    CBNU_NMPLAT = NMPLAT

    SCBN_PTNACC = PLATSCHET
    CBNU_RSSHPOL = POLSCHET
    CBNU_OPRDAT = DATA1
    CBNU_DOCDAT = DATA1
    CBNU_NMPTN = Name1
    CBNU_SM=SUMMA1
    END IF
    CBNU_DOCNMR=NUM1
    CBNU_PAYDES=NAZNPLAT

    WEND
    END SUB

    '**************************************************************************
    FUNCTION SDTOS (Dat)
    'Функция получает строку даты и приводит ее к виду ДД/ММ/ГГ
    SDTOS = TRIM(PUTSTR_TO_STR(Dat,".","/",2,1))
    DTOS = TRIM(PUTSTR_TO_STR(Dat,".","/",2,1))
    END FUNCTION
    Программа сначала выдаст 94 потом 114. А потом 1(то что я задаю вначале REG_INT1)
     
  2. UrianDy

    UrianDy Гость

    Это твоя программа или входящая в состав пакета? Проблема-то в чем? Не работает?
     
  3. OlgaCherry

    OlgaCherry Гость

    Привет! Это моя прога . Я справилась с ней.
    Прога рабочая для Челябинвестбанка и Райффайзенбанка.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей