Текущее время: Вс, июл 20 2025, 12:48

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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