Заявка на кассовый расход
Написать сообщение
Сообщение будет добавлено в самый конец дискуссии
eleomis, Волшебник! Все заработало! Огромное спасибо!
FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать?
ZRST|1|10|05310064270000755213||||15.33|||| не нашла где надо указать чтобы выводилась 10? спасибо В выгрузке имеем
ZRST|1||0......., а казна требует ZRST|1|10|0........, то есть требует заполнения поля TYPE_KBK_PAY, как его заполнить я не нашла! <Айшат> Если версия БП7 последняя, то должны быть поля "Тип КБК плательщика" и "Тип КБК получателя". спасибо большое
А где можно указать FK|TXZR090101|М-К район|088|| не могу вывести район и код района что делать? <Айшат> В каких полях должны вводится эти данные в соответствии с "Требованиями к форматам текстовых файлов, используемых при информационном взаимодействии между органами Федерального казначейства и участниками бюджетного процесса"? Они требуют чтоб после FK|TXZR090101| был ..........такой та район|.........код района|| что делать помогите, требуется постаянна исправлять в дискете после выгрузки спасибо.
<Айшат> Район и код района постоянные или могут изменяться? Форматы экспорта описываются в файлах cash-request-a.scm и cash-request-b.scm, найдите в них строку
(display "FK|TXZR090101||||") (w-br) и в соответствующем месте напишите название и код района. Я захожу в папку exports там выбираю cash-request-a.scm и cash-request-b.scm меняю (display "FK|TXZR090101|М-К район|088||") (w-br)сохраняю выхожу. потом когда включаю бизнес пак он показывает reference to undefined identifier:n>>i может я не там меняю?
Файл получившийся пришлите по адресу 3@375.ru, посмотрим.
И еще, чтобы кодировка русских символов была правильной, выражение нужно дополнить следующим образом: (display (string->bytes1251 "FK|TXZR090101|М-К район|088||")) (w-br) я бы отправила бы но после изменения бизнес пак не открывается показывает reference to undefined identifier:n>>i
<Айшат> Файл scm измененный пришлите, Бизнес Пак для этого открывать не обязательно. (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))) eleomis Ну это вообще смешно, чего то я не нашел в "Требованиях к форматам..." что бы эти поля были обязательны для заполнения. Конкретно СЭД позиционирует эти поля как "разработчик" и "модификация" то есть я их заполнил (display (string->bytes1251 "FK|TXZR090101|Бизнес-ПАК|v.7.627||")) (w-br) Я понимаю желание Вашего исполнителя облегчить себе работу и видеть всю инфу в выгрузке, но заставить Вас делать это Он не может. Плюнте в лицо и сходите к начальству. Никаких проблем с правкой не было, можно прям в блокноте. Через фотошоп НЕ ОТКРЫВАТЬ!!! :-)) Одна заговоздка-проблемка. Как нибудь надо поля "Тип КБК плателщика" и "Тип КБК получателя" сделать в виде полясо списком, ибо набор значений ограничен ( 10-расходы, 20-доходы, 31-источники внутреннего финансирования дефицита бюджета, 32-источники внешнего финансирования дефицита бюджета). Есть не большая заморочка с СЭДом. БП выгружает не обязательное поле "Сумма НДС в валюте заявки" даже если оно не заполнено. То есть Ноль присутствует всегда, и он выдает ошибку при проверке.
На самом деле у кого есть подобные проблемы могу поделиться очень замечательной утилиткой "Проверка документов для федерального казначейства". Пишите на мыло. <romul2006>,
А по какому e-mail писать? Программку-то хотелось бы такую иметь. Пишите на romul2006(САБАКА)mail.ru
Программа неаписана не мной, но так как распостранялась бесплатно и код открыт, то маленько подкоректировал и отдал в местное казначейство. Программа прошла тествую проверку уже в нескольких ТОФК. Отзывы от Администраторов поступлений и исполнителей положительные. Кратко: Программа написана просто на макросах. Прога "раскидывает" любой файл с разделителем "|" для удобного просмотра по пронумерованным полям. ЗН и ЗКР дополнительно загружаются в свой лист, проверяются на соответствие форматам, заполнение обязательных полей. Ошибка фикcируются в виде примечания c типом ошибки для поля с ошибочным значением. Редактируем прямо на месте, жмём кнопку и получаем отредактированный файл. Заявка на наличку "автоматом" сохраняется с правильным чередованием ZSCH1 и ZSCH2. Для ЗНС и ЗКР есть справочники - таблицы с полным описанием полей из ТФФ, что бы под рукой были, на всякий случай. Сделан и контроль допустимых значений. В контроль допустимых значений можно добавить "вручную" свои значения, например код ТОФК и полное наименование ТОФК и вслучае опечатки бут фиксироваться ошибка. Программа работает с "Заявкой на кассовый расход", "Заявкой на наличку","Выпиской из Сводного реестра поступлений и выбытий","Справкой о перечислении поступлений в бюджеты","Выпиской из лицевого счета администратора доходов бюджета". Подписаться на тему
|