Звоните
Екатеринбург
Пишите
Вход Регистрация

Заявка на кассовый расход

Написать сообщение
Сообщение будет добавлено в самый конец дискуссии
Елена 05 марта 2009, 18:03#
eleomis, Волшебник! Все заработало! Огромное спасибо!
<Айшат> 12 марта 2009, 00:03#
FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать?
ZRST|1|10|05310064270000755213||||15.33|||| не нашла где надо указать чтобы выводилась 10?
спасибо
<Айшат> 12 марта 2009, 00:03#
В выгрузке имеем
ZRST|1||0......., а казна требует
ZRST|1|10|0........, то есть требует заполнения поля TYPE_KBK_PAY, как его заполнить я не нашла!
eleomis 12 марта 2009, 10:03#
<Айшат>
FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать?
ZRST|1|10|05310064270000755213||||15.33|||| не нашла где надо указать чтобы выводилась 10?
спасибо

Если версия БП7 последняя, то должны быть поля "Тип КБК плательщика" и "Тип КБК получателя".
<Айшат> 12 марта 2009, 18:03#
спасибо большое
А где можно указать
FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать?
eleomis 16 марта 2009, 11:03#
<Айшат>
А где можно указать
FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать?

В каких полях должны вводится эти данные в соответствии с "Требованиями к форматам текстовых файлов, используемых при информационном взаимодействии между органами Федерального казначейства и участниками бюджетного процесса"?
<Айшат> 20 марта 2009, 23:03#
Они требуют чтоб после FK|TXZR090101| был ..........такой та район|.........код района|| что делать помогите, требуется постаянна исправлять в дискете после выгрузки спасибо.
eleomis 23 марта 2009, 11:03#
<Айшат>
Они требуют чтоб после FK|TXZR090101| был ..........такой та район|.........код района|| что делать помогите, требуется постаянна исправлять в дискете после выгрузки спасибо.

Район и код района постоянные или могут изменяться?
<Айшат > 24 марта 2009, 21:03#
постаянные
eleomis 25 марта 2009, 10:03#
Форматы экспорта описываются в файлах cash-request-a.scm и cash-request-b.scm, найдите в них строку
(display "FK|TXZR090101||||") (w-br)
и в соответствующем месте напишите название и код района.
<Айшат> 25 марта 2009, 22:03#
спасибо
<Айшат> 25 марта 2009, 23:03#
Я захожу в папку exports там выбираю cash-request-a.scm и cash-request-b.scm меняю (display "FK|TXZR090101|М-К район|088||") (w-br)сохраняю выхожу. потом когда включаю бизнес пак он показывает reference to undefined identifier:n>>i может я не там меняю?
eleomis 26 марта 2009, 11:03#
Файл получившийся пришлите по адресу 3@375.ru, посмотрим.
И еще, чтобы кодировка русских символов была правильной, выражение нужно дополнить следующим образом:
(display (string->bytes1251 "FK|TXZR090101|М-К район|088||")) (w-br)
<Айшат> 26 марта 2009, 18:03#
я бы отправила бы но после изменения бизнес пак не открывается показывает reference to undefined identifier:n>>i
eleomis 27 марта 2009, 10:03#
<Айшат>
я бы отправила бы но после изменения бизнес пак не открывается показывает reference to undefined identifier:n>>i

Файл scm измененный пришлите, Бизнес Пак для этого открывать не обязательно.
<Айшат> 27 марта 2009, 20:03#
(define export '(export
(forms export-cash-request-a.form
)))

(define export-cash-request-a.form.ds
(ds.table-extend
'Custom
(quasiquote
((FileName 0 LongString "Имя файла" (select-file))))))

(define export-cash-request-a.form
(quasiquote
(form
(caption "Заявка на кассовый расход версия TXZR090101")
(export cash-request)
(handler export-cash-request-a)
(dataset export-cash-request-a.form.ds)
(layout (v FileName)))))

(define (export-cash-request-a.require) '(FileName From To Firm Partner))

(define (export-cash-request-a.x) export.params)

(define (export-cash-request-a.ds)
(quasiquote
(dataset
(extend
(DateIsp
(mode extend)
(index 0)
(type Date)
(caption "Предельная дата исполнения"))
(NumBO
(mode extend)
(index 1)
(type ShortString)
(caption "Номер обязательства"))
(PrIsp
(mode extend)
(index 2)
(type LongString)
(caption "Приоритет исполнения")))
(fields (Doc SumMethod Precision Type Curr ByCurr
(Firm FullName INN KPP OfkOrg OfkDep OfkCode OfkINN Bank BIK RasDep CorDep
OfkGlavaGRS OfkNameUBPGRS OfkNBudg OfkNameFO OfkCodeOrg OfkBudgLevel OfkCodeUBP OfkNameUBP)
Date Name Num Sum DateIsp NumBO PrIsp))
)))

(define export-cash-request-a.ds-subdoc
(quasiquote
(dataset
(fields (SubDoc Doc Sum NDS NDSMode TypeAP OrderPL VidPL Purpose VidOsn NumOsn DateOsn Osn
(Partner FullName INN KPP OfkDep RasDep Bank BIK CorDep)
PartnerCargo PayStatus (KDOH Name) (OKATO Name) OsnPL NalPer NumDok DateDok TypePL
CodeIstKBK TypeKBKPay (KBKPay Name) TypeKBKRcp (KBKRcp Name) PurposeKBK NoteKBK OrderA))
)))

(define (export-cash-request-a.query)
(qu.set-part (qu.set-part (ds.q-select (export-cash-request-a.ds)) 'where
(mix "LEFT OUTER JOIN \"tPeople\" r_Doc_Firm_Chief ON (r_Doc_Firm_Chief.\"fObject\" = (SELECT \"fValue\" FROM \"tMutualRef\" WHERE \"fOwner0\" = r_Doc.\"fObject\" AND \"fOwner1\" = r_Doc.\"fFirm\" AND \"fName\" = 'Chief.doc-cash-request'))
LEFT OUTER JOIN \"tDutie\" r_Doc_Firm_Chief_Dutie ON (r_Doc_Firm_Chief_Dutie.\"fObject\" = (SELECT \"fValue\" FROM \"tMutualRef\" WHERE \"fOwner0\" = r_Doc.\"fObject\" AND \"fOwner1\" = r_Doc.\"fFirm\" AND \"fName\" = 'ChiefDutie.doc-cash-request'))
LEFT OUTER JOIN \"tPeople\" r_Doc_Firm_Accountant ON (r_Doc_Firm_Accountant.\"fObject\" = (SELECT \"fValue\" FROM \"tMutualRef\" WHERE \"fOwner0\" = r_Doc.\"fObject\" AND \"fOwner1\" = r_Doc.\"fFirm\" AND \"fName\" = 'Accountant.doc-cash-request'))
LEFT OUTER JOIN \"tDutie\" r_Doc_Firm_Accountant_Dutie ON (r_Doc_Firm_Accountant_Dutie.\"fObject\" = (SELECT \"fValue\" FROM \"tMutualRef\" WHERE \"fOwner0\" = r_Doc.\"fObject\" AND \"fOwner1\" = r_Doc.\"fFirm\" AND \"fName\" = 'AccountantDutie.doc-cash-request'))
WHERE r_Doc.\"fObject\" = '" (ext-call 'form-get-variable "Docs.Current") "'"))
'fields ", CASE r_Doc.\"fByCurr\" WHEN '1' THEN (SELECT \"fCodeOKV\" FROM \"tCurr\" c WHERE c.\"fObject\" = r_Doc.\"fCurr\") ELSE '643' END \"fCurrCodeOKV\",
r_Doc_Firm_Chief.\"fFirstName\" \"fFirmChiefFirstName\",
r_Doc_Firm_Chief.\"fSecondName\" \"fFirmChiefSecondName\",
r_Doc_Firm_Chief.\"fLastName\" \"fFirmChiefLastName\",
r_Doc_Firm_Chief_Dutie.\"fName\" \"fFirmChiefDutieName\",
r_Doc_Firm_Accountant.\"fFirstName\" \"fFirmAccountantFirstName\",
r_Doc_Firm_Accountant.\"fSecondName\" \"fFirmAccountantSecondName\",
r_Doc_Firm_Accountant.\"fLastName\" \"fFirmAccountantLastName\",
r_Doc_Firm_Accountant_Dutie.\"fName\" \"fFirmAccountantDutieName\""))

(define (export-cash-request-a.prepare)

(define (epd-ord n)
(string
(if (< n 10)
(integer->char (+ n 48))
(integer->char (+ n 55)))))

(let* ([now (seconds->date (current-seconds))]
[day (date-day now)]
[month (date-month now)]
[form-file-name (ext-call 's1251 (ext-call 'form-get-variable 'FileName))]
[ofk-code-d (cadr (ext-call 'query-select (mix "SELECT \"fOfkCode\" FROM \"tDoc\" d LEFT OUTER JOIN \"tFirm\" f ON d.\"fFirm\" = f.\"fObject\" WHERE d.\"fObject\" = '" (ext-call 'form-get-variable "Docs.Current") "'")))]
[ofk-code (if (null? ofk-code-d) "XXXXX" (vector-ref (car ofk-code-d) 0))]
[file-name (if (eq? (string-length form-file-name) 0) (build-path root-path "empty.ext") (string->path form-file-name))])

(let-values ([(base name dir?) (split-path file-name)])
(ext-call 'form-set-variable 'FileName (path->string (build-path base (mix ofk-code (epd-ord day) "01.ZR" (epd-ord month))))))))

(define (export-cash-request-a.write)

(define (date->epd date)
(let ([s (format "~a" date)])
(if (equal? s "1899-12-30")
""
(mix (substring s 8 10) "." (substring s 5 7) "." (substring s 0 4)))))

(let ([documents (tu.table-rows-by-name (ext-call 'query-select (export-cash-request-a.query)))])
(display (string->bytes1251 "FK|TXZR090101|М-К район|088||")) (w-br)
(map (lambda (row)
(display "FROM|")
(write-bytes (subr (row 'FirmOfkBudgLevel) 0 1)) (display "|") ;BUDG_LEVEL
(write-bytes (subr (row 'FirmOfkCodeUBP) 0 5)) (display "|") ;KOD_UBP
(write-bytes (row 'FirmOfkNameUBP)) (display "|") ;NAME_UBP
(w-br)
(display "TO|")
(write-bytes (subr (row 'FirmOfkCodeOrg) 0 4)) (display "|") ;KOD_TOFK
(write-bytes (row 'FirmOfkOrg)) (display "|") ;NAME_TOFK
(w-br)
(let ([subdoc (tu.table-rows-by-name (ext-call 'query-select (mix (ds.q-select export-cash-request-a.ds-subdoc) "WHERE r_SubDoc.\"fDoc\" = '" (row 'Object) "'") '(SubDocCost)))])
(map (lambda (subrow)
(display "ZR|")
(display "|") ;GUID_FK
(write-bytes (subr (row 'Name) 0 15)) (display "|") ;NOM_ZR
(display (date->epd (row 'Date))) (display "|") ;DATE_ZR
(write-bytes (subr (row 'FirmOfkCode) 0 5)) (display "|") ;KOD_UBP_PAY
(write-bytes (row 'FirmFullName)) (display "|") ;NAME_UBP_PAY
(write-bytes (subr (row 'FirmOfkDep) 0 11)) (display "|") ;LS_UBP_PAY
(write-bytes (subr (row 'FirmOfkGlavaGRS) 0 3)) (display "|") ;GLAVA_GRS
(write-bytes (row 'FirmOfkNameUBPGRS)) (display "|") ;NAME_UBP_GRS
(write-bytes (row 'FirmOfkNBudg)) (display "|") ;NAME_BUD
(write-bytes (row 'FirmOfkNameFO)) (display "|") ;NAME_FO
(write-bytes (subr (row 'FirmOfkCodeOrg) 0 4)) (display "|") ;KOD_TOFK
(write-bytes (row 'FirmOfkOrg)) (display "|") ;NAME_TOFK
(display (date->epd (row 'DateIsp))) (display "|") ;DATE_ISP
(write-bytes (subr (row 'NumBO) 0 16)) (display "|") ;NOM_BO
(display "|") ;KOD_ISP
(write-bytes (row 'PrIsp)) (display "|") ;PR_ISP
(display (if (equal? (subrow 'SumT) 0) "0" (double->str2 (subrow 'SumT)))) (display "|") ;SUM_V
(write-bytes (subr (row 'CurrCodeOKV) 0 3)) (display "|") ;KOD_V
(display (if (row 'ByCurr) (double->str2 (subrow 'Sum)) "")) (display "|") ;SUM_DOC
(display (if (subrow 'TypeAP) 1 0)) (display "|") ;TYPE_AP
(display (if (equal? (subrow 'SumN) 0) "0" (double->str2 (subrow 'SumN)))) (display "|") ;SUM_V_NDS
(write-bytes (subr (subrow 'OrderPL) 0 1)) (display "|") ;ORDER_PL
(if (equal? (format "~a" (subrow 'VidPL)) "") (display "0") (write-bytes (subr (subrow 'VidPL) 0 1))) (display "|") ;VID_PL
(write-bytes (subr (subrow 'Purpose) 0 210)) (display "|") ;PURPOSE
(write-bytes (subr (subrow 'VidOsn) 0 50)) (display "|") ;VID_OSN
(write-bytes (subrow 'NumOsn)) (display "|") ;NOM_OSN
(display (date->epd (subrow 'DateOsn))) (display "|") ;DATE_OSN
(write-bytes (subrow 'Osn)) (display "|") ;OSN
(write-bytes (subr (subrow 'PartnerFullName) 0 160)) (display "|") ;NAME_RCP
(write-bytes (subr (subrow 'PartnerINN) 0 12)) (display "|") ;INN_RCP
(write-bytes (subr (subrow 'PartnerKPP) 0 9)) (display "|") ;KPP_RCP
(write-bytes (subr (subrow 'PartnerOfkDep) 0 11)) (display "|") ;LS_UBP_RCP
(write-bytes (subr (subrow 'PartnerRasDep) 0 20)) (display "|") ;BS_RCP
(write-bytes (subr (subrow 'PartnerBank) 0 160)) (display "|") ;NAME_BIC_RCP
(write-bytes (subr (subrow 'PartnerBIK) 0 9)) (display "|") ;BIC_RCP
(write-bytes (subr (subrow 'PartnerCorDep) 0 20)) (display "|") ;KS_BIC_RCP
(write-bytes (subr (subrow 'PayStatus) 0 2)) (display "|") ;PAYSTATUS
(write-bytes (subr (subrow 'KDOHName) 0 20)) (display "|") ;KDOH
(write-bytes (subr (subrow 'OKATOName) 0 11)) (display "|") ;OKATO
(write-bytes (subr (subrow 'OsnPL) 0 2)) (display "|") ;OSN_PL
(write-bytes (subr (subrow 'NalPer) 0 10)) (display "|") ;NAL_PER
(write-bytes (subr (subrow 'NumDok) 0 15)) (display "|") ;NOM_DOK
(display (if (equal? (format "~a" (subrow 'DateDok)) "1899-12-30") (if (and (equal? (subrow 'PayStatus) #"") (equal? (subrow 'KDOH) #"000000000000") (equal? (subrow 'OKATO) #"000000000000") (equal? (subrow 'OsnPL) #"") (equal? (subrow 'NalPer) #"") (equal? (subrow 'NumDok) #"") (equal? (subrow 'TypePL) #"")) "" "0") (date->epd (subrow 'DateDok)))) (display "|") ;DATE_DOK
(write-bytes (subr (subrow 'TypePL) 0 2)) (display "|") ;TYPE_PL
(write-bytes (subr (row 'FirmChiefDutieName) 0 100)) (display "|") ;DOL_RUK_UBP
(write-bytes (subr (bytes-append (row 'FirmChiefSecondName) #" " (row 'FirmChiefFirstName) #" " (row 'FirmChiefLastName)) 0 50)) (display "|") ;NAME_RUK_UBP
(write-bytes (subr (row 'FirmAccountantDutieName) 0 100)) (display "|") ;DOL_BUH_UBP
(write-bytes (subr (bytes-append (row 'FirmAccountantSecondName) #" " (row 'FirmAccountantFirstName) #" " (row 'FirmAccountantLastName)) 0 50)) (display "|") ;NAME_BUH_UBP
(display (date->epd (row 'Date))) (display "|") ;DATE_POD_UBP
(display "|") ;NOM_ZR_FK
(display "|") ;DATE_FK
(display "|") ;DOL_ISP_FK
(display "|") ;NAME_ISP_FK
(display "|") ;TEL_ISP_FK
(w-br)
(display "ZRST|")
(write-bytes (subr (subrow 'CodeIstKBK) 0 1)) (display "|") ;KOD_IST_KBK
(write-bytes (subr (subrow 'TypeKBKPay) 0 2)) (display "|") ;TYPE_KBK_PAY
(write-bytes (subr (subrow 'KBKPayName) 0 20)) (display "|") ;KBK_PAY
(write-bytes (subr (subrow 'TypeKBKRcp) 0 2)) (display "|") ;TYPE_KBK_RCP
(write-bytes (subr (subrow 'KBKRcpName) 0 20)) (display "|") ;KBK_RCP
(display "|") ;ADD_KLASS_PAY
(display "|") ;ADD_KLASS_RCP
(display (if (equal? (subrow 'SumT) 0) "0" (double->str2 (subrow 'SumT)))) (display "|") ;SUM_V_KBK
(display (if (row 'ByCurr) (double->str2 (subrow 'Sum)) "")) (display "|") ;SUM_R_KBK
(write-bytes (subr (subrow 'PurposeKBK) 0 210)) (display "|") ;PURPOSE_KBK
(write-bytes (subrow 'NoteKBK)) (display "|") ;NOTE_KBK
(w-br)
) subdoc)
))
documents)
(void)))

(define (export-cash-request-a.perform)
(let ([file (mix (cadr (assq 'FileName export.params)))])
(if (file-exists? file)
(delete-file file))
(with-output-to-file file export-cash-request-a.write)))


<Romul> 27 марта 2009, 22:03#
eleomis
Ну это вообще смешно, чего то я не нашел в "Требованиях к форматам..." что бы эти поля были обязательны для заполнения.

Ну это вообще смешно, чего то я не нашел в "Требованиях к форматам..." что бы эти поля были обязательны для заполнения. Конкретно СЭД позиционирует эти поля как "разработчик" и "модификация" то есть я их заполнил (display (string->bytes1251 "FK|TXZR090101|Бизнес-ПАК|v.7.627||")) (w-br)
Я понимаю желание Вашего исполнителя облегчить себе работу и видеть всю инфу в выгрузке, но заставить Вас делать это Он не может. Плюнте в лицо и сходите к начальству.
Никаких проблем с правкой не было, можно прям в блокноте. Через фотошоп НЕ ОТКРЫВАТЬ!!! :-))
Одна заговоздка-проблемка. Как нибудь надо поля "Тип КБК плателщика" и "Тип КБК получателя" сделать в виде полясо списком, ибо набор значений ограничен ( 10-расходы, 20-доходы, 31-источники внутреннего финансирования дефицита бюджета, 32-источники внешнего финансирования дефицита бюджета).
<romul2006> 28 марта 2009, 10:03#
Есть не большая заморочка с СЭДом. БП выгружает не обязательное поле "Сумма НДС в валюте заявки" даже если оно не заполнено. То есть Ноль присутствует всегда, и он выдает ошибку при проверке.
На самом деле у кого есть подобные проблемы могу поделиться очень замечательной утилиткой "Проверка документов для федерального казначейства". Пишите на мыло.
<Avaks> 28 марта 2009, 14:03#
<romul2006>,

А по какому e-mail писать?
Программку-то хотелось бы такую иметь.
<romul2006> 28 марта 2009, 23:03#
Пишите на romul2006(САБАКА)mail.ru
Программа неаписана не мной, но так как распостранялась бесплатно и код открыт, то маленько подкоректировал и отдал в местное казначейство. Программа прошла тествую проверку уже в нескольких ТОФК. Отзывы от Администраторов поступлений и исполнителей положительные.
Кратко:
Программа написана просто на макросах. Прога "раскидывает" любой файл с разделителем "|" для удобного просмотра по пронумерованным полям. ЗН и ЗКР дополнительно загружаются в свой лист, проверяются на соответствие форматам, заполнение обязательных полей. Ошибка фикcируются в виде примечания c типом ошибки для поля с ошибочным значением. Редактируем прямо на месте, жмём кнопку и получаем отредактированный файл. Заявка на наличку "автоматом" сохраняется с правильным чередованием ZSCH1 и ZSCH2. Для ЗНС и ЗКР есть справочники - таблицы с полным описанием полей из ТФФ, что бы под рукой были, на всякий случай. Сделан и контроль допустимых значений. В контроль допустимых значений можно добавить "вручную" свои значения, например код ТОФК и полное наименование ТОФК и вслучае опечатки бут фиксироваться ошибка. Программа работает с "Заявкой на кассовый расход", "Заявкой на наличку","Выпиской из Сводного реестра поступлений и выбытий","Справкой о перечислении поступлений в бюджеты","Выпиской из лицевого счета администратора доходов бюджета".
Включите отображение картинок
Подписаться на тему