Текущее время: Пн, июл 21 2025, 05:06

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Кто программно создавал ТАП = требование авансового платежа
СообщениеДобавлено: Чт, окт 21 2010, 00:14 
Ассистент
Ассистент

Зарегистрирован:
Пн, фев 19 2007, 01:11
Сообщения: 36
Нужно программно создать ТАП - вид документа ТА

Пакетник оставляю как последний вариант.

Нужна BAPI с примером кода для данного конкретного случаю.

Читал на форумах, что подходит BAPI_ACC_DOCUMENT_POST, но нигде не приведен рабочий код. У меня пока только ошибки возвращает.

Кто нибудь сталкивался с подобной задачей ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кто программно создавал ТАП = требование авансового платежа
СообщениеДобавлено: Чт, окт 21 2010, 07:04 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Разбирался когда то с созданием фай дока. Все получилось, кроме налогов, если есть налоговые позиции то система отказывается создавать документ через бапи, там эта проверка прям в коде зашита.

http://sapboard.ru/forum/viewtopic.php?f=13&t=51216
http://sapboard.ru/forum/viewtopic.php?f=13&t=47035&start=0

Как мне подсказали коллеги из фай, в ТАПе не может быть налоговых позиций, думаю в Вашем случае вполне решаемо через этот Бапи.

Code:
*&---------------------------------------------------------------------*
*& Report  ZTESTI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztesti.

*описание переменных
DATA: it_mwdat LIKE TABLE OF rtax1u15 WITH HEADER LINE.
DATA: my_accounttax LIKE TABLE OF bapiactx09 WITH HEADER LINE.
DATA: helpext LIKE zaccit OCCURS 10 WITH HEADER LINE.
DATA: my_header            TYPE          bapiache09,
      my_accountgl         LIKE TABLE OF bapiacgl09 WITH HEADER LINE,
      my_accountreceivable LIKE TABLE OF bapiacar09 WITH HEADER LINE,
      my_accountpayable LIKE TABLE OF bapiacap09 WITH HEADER LINE,
      my_currencyamount    LIKE TABLE OF bapiaccr09 WITH HEADER LINE,
      my_extension2        LIKE TABLE OF bapiparex  WITH HEADER LINE,
      my_return 
          LIKE TABLE OF bapiret2   WITH HEADER LINE.
DATA: zwrbtr LIKE bseg-wrbtr VALUE 100.

BREAK-POINT.
*заголовок
PERFORM header.

*позиция основного счета
PERFORM gl.

"позиция кредита
PERFORM pay.

*налоги
PERFORM tax.

BREAK-POINT.

*проверка
CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
  EXPORTING
    documentheader          = my_header
*   CUSTOMERCPD             =
*   CONTRACTHEADER          =
  TABLES
   accountgl               = my_accountgl
*   ACCOUNTRECEIVABLE       =
   accountpayable          = my_accountpayable
   accounttax              = my_accounttax
   currencyamount          = my_currencyamount
*   CRITERIA                =
*   VALUEFIELD              =
*   EXTENSION1              =
    return                  = my_return
*   PAYMENTCARD             =
*   CONTRACTITEM            =
*   EXTENSION2              =
*   REALESTATE              =
*   ACCOUNTWT               =
          .
BREAK-POINT.
*создание
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
    EXPORTING:   documentheader     = my_header
*                           customercpd = my_customercpd
    TABLES:      accountgl          = my_accountgl
                 accountpayable  = my_accountpayable
                 currencyamount     = my_currencyamount
                 extension2         = my_extension2
                 return             = my_return
                 accounttax = my_accounttax.
READ TABLE my_return WITH KEY type = 'S' id = 'RW' number = '605'.
IF sy-subrc = 0.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    .
ELSE.
  ROLLBACK WORK.
ENDIF.
*&---------------------------------------------------------------------*
*&      Form  HEADER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM header .
  my_header-bus_act    = 'FB01'.                        " GLVOR   ->  Организационно-экономическая операция(ТР.)
  my_header-username   = sy-uname.                      " USNAM   ->  Имя пользователя
  my_header-header_txt = 'test ivan'.                  " BKTXT   ->  ТекстЗагДок/№ договора
  my_header-comp_code  = '1000'.                  " BUKRS   ->  Балансовая единица
  my_header-doc_date   = sy-datum.                  " BLDAT   ->  Дата документа
  my_header-pstng_date = sy-datum.                  " BUDAT   ->  Дата проводки в документе
*         my_HEADER-TRANS_DATE = my_HEADER-DOC_DATE.            " WWERT_D ->  Дата пересчета
  my_header-fisc_year  = sy-datum(4).                  " GJAHR   ->  Финансовый год
  my_header-fis_period = sy-datum+4(2).                  " MONAT   ->  Месяц финансового года
  my_header-doc_type   = 'SA'.                          " BLART   ->  Вид документа
*         my_HEADER-REF_DOC_NO = t_bkpf-xblnr.                  " XBLNR   ->  Ссылочный номер документа
ENDFORM.                    " HEADER
*&---------------------------------------------------------------------*
*&      Form  GL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM gl .
  REFRESH my_accountgl.
  my_accountgl-itemno_acc = '0000000001'.               " POSNR_ACC   -> Номер позиции документа учета и отчетности
  my_accountgl-gl_account = '7950000022'."<<<<<<<<<<<                 " HKONT       -> Основной счет главной бухгалтерии
  my_accountgl-item_text  = ''.               " SGTXT       -> Текст позиции
  my_accountgl-pstng_date = my_header-doc_date.         " BUDAT       -> Дата проводки в документе
  my_accountgl-fis_period = my_header-fis_period.       " MONAT       -> Месяц финансового года
  my_accountgl-fisc_year  = my_header-fisc_year.        " GJAHR       -> Финансовый год
*        my_ACCOUNTGL-ALLOC_NMBR = t_bseg-ZUONR.               " ACPI_ZUONR  -> Номер присвоения
*        my_ACCOUNTGL-FUNDS_CTR  = t_bseg-FISTL.               " FISTL       -> Подразделение финансового менеджмента
  my_accountgl-doc_type   = my_header-doc_type.         " BLART       -> Вид документа
  my_accountgl-comp_code  = my_header-comp_code.        " BUKRS       -> Балансовая единица
  my_accountgl-pstng_date = my_header-doc_date.         " BUDAT       -> Дата проводки в документе
  my_accountgl-costcenter = '0001020603'."мвз<<<<<<<<<<<<<
  my_accountgl-tax_code = '60'."<<<<<<<<<<<<<<<<<<
  APPEND my_accountgl.

  my_currencyamount-itemno_acc   = '0000000001'.        " POSNR_ACC   -> Номер позиции документа учета и отчетности
  my_currencyamount-currency_iso = 'KZT'.        " WAERS_ISO   -> Код ISO для валюты
  my_currencyamount-currency     = 'KZT'.        " WAERS       -> Код валюты
  my_currencyamount-curr_type = '00'.
  my_extension2-structure        = 'ZACCIT'."доп структура для кода проводки
  helpext-posnr                  = '0000000001'.


  CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
    EXPORTING
      i_bukrs = '1000'
      i_mwskz = '60'
      i_waers = 'KZT'
      i_wrbtr = zwrbtr
    TABLES
      t_mwdat = it_mwdat.
  READ TABLE it_mwdat INDEX 1.

  my_currencyamount-amt_doccur   = it_mwdat-kawrt."t_bseg-wrbtr * -1. " BAPIWRBTR   -> Сумма в валюте документа
  helpext-bschl                  = '40'.
  my_extension2-valuepart1+0(10) = helpext-posnr.
  my_extension2-valuepart1+11(2) = helpext-bschl.
  APPEND: my_currencyamount, my_extension2.
ENDFORM.                    " GL
*&---------------------------------------------------------------------*
*&      Form  PAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM pay .
  CLEAR: my_accountpayable, my_currencyamount, my_extension2, helpext.
  my_accountpayable-itemno_acc = 2.       " POSNR_ACC   -> Номер позиции документа учета и отчетности
  my_accountpayable-vendor_no   = '0005000005'.       "        -> Номер кредтора 1
  my_accountpayable-gl_account = '3311100000'.         " HKONT       -> Основной счет главной бухгалтерии
  my_accountpayable-alloc_nmbr = '620/УМГ-2007'.       " ACPI_ZUONR  -> Номер присвоения
  my_accountpayable-item_text  = 'sf'.       " SGTXT       -> Текст позиции
  my_accountpayable-bus_area = '0010' .
  APPEND my_accountpayable.
  my_currencyamount-itemno_acc   = 2.        " POSNR_ACC   -> Номер позиции документа учета и отчетности
  my_currencyamount-currency_iso = 'KZT'.        " WAERS_ISO   -> Код ISO для валюты
  my_currencyamount-currency     = 'KZT'.        " WAERS       -> Код валюты
  my_currencyamount-curr_type = '00'.

  my_extension2-structure        = 'ZACCIT'.
  helpext-posnr                  = 2.


*    IF t_bseg-shkzg EQ 'H'.
  my_currencyamount-amt_doccur   = zwrbtr * -1. " BAPIWRBTR   -> Сумма в валюте документа
  helpext-bschl                  = '31'.
*    ELSE.
*      my_currencyamount-amt_doccur   = t_bseg-wrbtr.      " BAPIWRBTR   -> Сумма в валюте документа
*      helpext-bschl                  = '40'.
*    ENDIF.

  my_extension2-valuepart1+0(10) = helpext-posnr.
  my_extension2-valuepart1+11(2) = helpext-bschl.

  APPEND: my_currencyamount, my_extension2.
ENDFORM.                    " PAY
*&---------------------------------------------------------------------*
*&      Form  TAX
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM tax .
  CLEAR: my_currencyamount, my_extension2, helpext.

  my_accounttax-itemno_acc = 3.
  my_accounttax-gl_account = it_mwdat-hkont.
  my_accounttax-tax_code = '60'.
  my_accounttax-tax_rate = it_mwdat-msatz.
  my_accounttax-acct_key = it_mwdat-ktosl.
  my_accounttax-cond_key = it_mwdat-kschl.
  my_accounttax-itemno_tax = 1.
  APPEND my_accounttax.

  my_currencyamount-itemno_acc   = 3.        " POSNR_ACC   -> Номер позиции документа учета и отчетности
  my_currencyamount-currency_iso = 'KZT'.        " WAERS_ISO   -> Код ISO для валюты
  my_currencyamount-currency     = 'KZT'.        " WAERS       -> Код валюты
  my_currencyamount-curr_type = '00'.

  my_extension2-structure        = 'ZACCIT'.
  helpext-posnr                  = 3.


*    IF t_bseg-shkzg EQ 'H'.
*      my_currencyamount-amt_doccur   = it_mwdat-wmwst * -1. " BAPIWRBTR   -> Сумма в валюте документа
*      helpext-bschl                  = '31'.
*      my_currencyamount-amt_base = it_mwdat-kawrt * -1.
*    ELSE.
  my_currencyamount-amt_doccur   = it_mwdat-wmwst.      " BAPIWRBTR   -> Сумма в валюте документа
  helpext-bschl                  = '40'.
  my_currencyamount-amt_base = it_mwdat-kawrt.
*    ENDIF.

  my_extension2-valuepart1+0(10) = helpext-posnr.
  my_extension2-valuepart1+11(2) = helpext-bschl.

  APPEND: my_currencyamount, my_extension2.
ENDFORM.                    " TAX


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB