SAP ERP 6.0 EHP7 - стандартные электронные документы — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Архив электронных счетов-фактур)
Строка 459: Строка 459:
 
== Архив электронных счетов-фактур ==
 
== Архив электронных счетов-фактур ==
 
=== Описание ===
 
=== Описание ===
Архив электронных счетов-фактур - программа J_3RF_DI_ARCLOG, позволяющая работать с электронными документами из таблицы J_3RFDI_ARC. Отображает список документов с данными : номер записи, номер исходного с-ф, внешний номер исх. с-ф, версия, статус эл.документа, контрагент, метка времени,  дата подписи, имя файла xml.
+
Архив электронных счетов-фактур. Программа J_3RF_DI_ARCLOG. Позволяет работать с электронными документами из таблицы J_3RFDI_ARC. Фактически это список xml-документов. Отображает список документов с данными : номер записи, номер исходного с-ф, внешний номер исх. с-ф, версия, статус эл.документа, контрагент, метка времени,  дата подписи, имя подписавшего, имя файла xml.
  
 
Команды:
 
Команды:

Версия 08:52, 2 октября 2015

Содержание

Общие сведения

Модуль предназначен для создания, отправки и получения электронных счетов-фактур, актов, накладных и универсальных передаточных документов в формате xml ФНС. Модуль является составной частью пакета локализации для России.

Транзакции:

  • J3RFREGINV - Журнал электронных счетов-фактур.
  • J3RFREGTORG - Журнал электронных накладных и актов.

Журнал счетов-фактур

Общие сведения

Журнал электронных счетов-фактур – транзакция, которая отображает список входящих и исходящих счетов-фактур и их электронную версию в системе SAP.

  • Меню: Accounting>Finantial Accounting>Accounts Receivable>Reporting>Russia>Invoice Journal.
  • Техническое имя меню J3RF-FDMN-REP-RU.
  • Техническое имя транзакции J3RFREGINV.
  • Техническое имя программы J_3RF_REGINV.

Журнал использует таблицы:

  • J_3RF_REGINV_IN – входящие счета-фактуры
  • J_3RF_REGINV_OUT – исходящие счета-фактуры
  • J_3RF_REGINV_LOG – история статусов счетов-фактур
  • J_3RFDI_ARC – архив электронных счетов с XML-данными

Программа J_3RF_REGINV состоит из частей:

  • Описание переменных (DATA, TYPES)
  • Экран выбора (SELECTION-SCREEN)
  • Обработка событий на экране выбора (AT SELECTION-SCREEN)
  • Набор данных (START-OF-SELECTION)
  • Вывод данных (END-OF-SELECTION)
  • Обработка событий на экране вывода (USER-COMMAND)

При запуске программы на экране выбора необходимо выбрать режим:

  • показать исходящие счета
  • показать входящие счета
  • вывести выходную форму журнала
  • добавить входящие счета

Список доступных команд на экране вывода (USER-COMMAND):

  • Общие
    • REFR - refresh list - обновить список
    • INSR - insert entry - вставить запись
    • COPY - copy entry - скопировать запись
    • &EDI - edit entry - редактировать запись
    • DELE - delete entry - удалить запись
    • DISP - display entry - показать запись
    • HIST - Display History of Status Changes - просмотреть историю статусов
    • VLOG - View Application Log - просмотреть историю операций
  • Для входящих счетов-фактур
    • IADD - Register incoming invoices - зарегистрировать входящие счтеа
    • EREQ - Create XML Request for Clarification - создать xml запроса на уточнение
    • SGNR - Sign/Encrypt XML Request for Clarification - подписать запрос на уточнение
    • SNDR - Send XML Request for Clarification - отправить запрос на уточнение
    • DREQ - Display Clarification Request - показать запрос на уточнение
    • HNDL - Set Status Request for Clarification Handled - установить статус "запрос на уточнение обработан"
  • Для исходящих счетов-фактур
    • &RVS - Print Revision for Entry - печать исправленного
    • EINV - Create XML Invoice - создать xml счета-фактуры
    • SGNI - Sign/Encrypt XML Invoice - подписать счет-фактуру
    • SNDI - Send XML Invoice - отправить счет-фактуру
    • DXML - Display XML Invoice - показать xml счета-фактуры
    • DPDF - Display XML in PDF - показать xml в dpf
    • HNDL - Set Status Request for Clarification Handled - установить статус "запрос на уточнение обработан"

Настройки журнала

Связь с Финансами и Сбытом

Настройки расположены в меню:

SPRO-Финансы-Бухгалтерия дебиторов и кредиторов-Бизнес-операции-Параметры настройки для страны-Россия-Счета-фактуры-Журнал счетов


  1. Активировать бизнес-функции FIN_LOC_CI_33 ( ??? FIN_LOC_CI_35 - пока не надо ???).
    1. Меню: SPRO-Активировать бизнес-функции.
    2. Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
    3. Появится пункт меню: SPRO-Финансы-БухгДебКред-Бизнес операции-Параметры настройки для стран-Россия-Счета-фактуры-Электронное выставление счета.
  2. ???Поставить транспорт из ноты 1691843 - Transport Delivery: Invoice Journal (Russia). (???не понадобилось, это для старых версий??? ).
  3. ???Настроить журнал регистрации счетов-фактур согласно ноте 1691844. (???не понадобилось, это для старых версий??? ).
  4. ???Прописать в FIBF продукт по ноте 1691844. J3RFREGI=J3RF. Меню-Параметры настройки-Продукты-Партнеры. (???не понадобилось, это для старых версий??? ).
  5. Присвоение диапазонов номеров вход. документов.
    1. Ввести БЕ и нажать кнопку Ведение интервалов.
    2. Нажать кнопку Новый диапазон.
    3. Ввести номер диапазона 01, год, начальный и конечный номера.
    4. Сохранить.
  6. Определение кодов видов операций.
    1. Нажать кнопку Новые записи.
    2. Ввести код например 24, описание, например "Регистрация счетов-фактур в книге покупок".
    3. Сохранить.
  7. Присвоение кодов видов операций кодам налога.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, вид документа FI, код НДС, код вида операции.
    3. Сохранить.
  8. Ведение ид.текстовых объектов для входящих счетов
    1. Нажать кнопку Новые записи.
    2. Ввести текстовый объект BELEG, ид.внешнего номера, ид.внешней даты.
    3. Сохранить.
    4. Если текстовые ид. не заданы или соответствующие текстовые поля в документе не заполнены, номер внешнего документа берется из поля Номер ссылочного документа (BKPF-XBLNR), а дата внешнего документа — из поля Дата документа (BKPF-BLDAT).
  9. Настройка автоматической регистрации входящих счетов.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, вид документа FI, галочки оставить пустыми.
    3. Сохранить.
  10. Настройка автоматической регистрации исходящих счетов из FI.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, идентификатор корреспонденции например ZSA19, Установить галочку Предпросмотр, не ставить галочку Создать как зарегистрированный, не ставить галочку Выбор даты отправки (help.sap.com).
    3. Сохранить.
  11. Настройка автоматической обработки сторнирований.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, причину сторно, режим удаления.
    3. Сохранить.

Электронное выставление счета

  1. Создать основную запись поставщика через транзакцию FK01. Например Оператор ЭДО 6 .
  2. Присвоить операторам электронные ид.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код поставщика-оператора ЭДО например 6, ид. оператора например OP6.
    4. Сохранить.
  3. Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_CCOP.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета-Ведение электронных ид.
    2. Нажать Новые записи.
    3. Ввести БЕ, оператор БЕ например 6, электронный ид. БЕ например ZUCH.
    4. Сохранить.
  4. Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_PCCODE (устар).
    1. Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
    2. транз SE11.
    3. Войти на редактирование в ракурс J_3RFV_DI_PCCODE. Нажать Новые записи.
    4. Ввести БЕ, электронный ид. БЕ например ZUCH.
    5. Сохранить.
  5. Присвоить поставщикам электронные ид.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код кредитора например 1, оператора кредитора OP6, ид. кредитора например KRED1.
    4. Сохранить.
  6. Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUSTN.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код дебитора например 100000, оператор клиента например OP6, электронный ид. клиента например DEBI100000.
    4. Сохранить.
  7. Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUST (устар).
    1. Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
    2. транз.SE11.
    3. Войти в ракурс J_3RFV_DI_PCUST на редактирование.
    4. Нажать Новые записи.
    5. Ввести БЕ, код дебитора например 100000, электронный ид. клиента например ZUCH100000.
    6. Сохранить.
  8. Ведение сроков.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Ввести вид с-ф, Статус документа эл.счета, срок, тип срока.
    3. Сохранить.
  9. Ведение правил обработки и удаления.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Ввести БЕ, статус документа эл. счета, галочки Не обрабатывать, Не удалять.
    3. Сохранить.
  10. Мэппинг преобразований.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Настроены виды документов, направление, версия xml, xml-преобразование, класс преобр, метод преобр, имя типа.
  11. Активировать xml-преобразования.
    1. Транзакция STRANS.
    2. Войти в преобразование.
    3. Нажать Проверить.
    4. Если выдает ошибку и ссылку на другое преобразование, то проверить, сгенерировать и активировать другое преобразование.
    5. В меню нажать Сгенерировать, затем Активировать.


Электронный входящий счет

  1. Ведение правил обработки и удаления.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, статус документа эл. счета.
    4. Сохранить.
  2. Ведение сроков. По истечении срока счет считается просроченным.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести Вид с-ф, статус документа эл. счета, срок, тип срока.
    4. Сохранить.
  3. Мэппинг преобразований.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Проверить что для вида документа Эл.счет и направления Входящий заданы Преобразование, класс, метод, структура.
  4. Проверить что BADI J_3RF_DIGITAL_INVOICE_BADI Электронное выставление счета реализован.
  5. Автоматическая регистрация входящих счетов.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Журнал счетов.
    2. Нажать Новые записи.
    3. Ввести БЕ, вид документа, установить галку Без обязат. позиции кредитора.
    4. Сохранить.

Настройки BADI

Настройки расположены в меню:

  • SPRO-Финансы-Бухгалтерия дебиторов и кредиторов-Бизнес-операции-Параметры настройки для страны-Россия-Счета-фактуры-BADI
  • SPRO-Сбыт-Фактурирование-Фактуры-Национальные особенности-Россия-BADI

Содержат следующие пункты:

  • BADI: электронное выставление счета (J_3RF_DIGITAL_INVOICE_BADI)
  • BADI: авансовый отчет (BADI_J_3R_AO1)
  • BADI: изменение адреса (J_3RF_CH_ADDR)
  • BADI: текст уточнения по умолчанию (J_3R_REGINV_DIG_BADI)
  • BADI: обновление данных печати для налогового счета (J_3R_INV_BADI)

Исходящие счета

Ручной ввод исходящих счетов

Ручной ввод добавляет одну запись в журнал. Номер, год, БЕ, внешний номер, дату, сумму необходимо указывать вручную, что при ошибках может вызвать несоответствие введенного документа документу FI. Помимо ручного ввода в журнале ввести исх. счета вручную можно при помощи транзакции V_J_3RFREGINVOUT - Регистрация исх.счетов в журнале.

  • В журнале на экране выбора необходимо нажать радиокнопку "Просмотреть список исходящих счетов".
  • Ограничить выбор, ввести год, номер, и т.д.
  • Запустить отчет.
  • Выводится список исходящих счетов. Нажать кнопку Новый ввод (Создать запись, команда INSR).
  • Выводится экран ввода документа. Ввести данные БЕ, номер исходного счета-фактуры (номер из FI), год исходного счета-фактуры (год из FI). Номер исходного счета-фактуры можно найти через средство поиска из FI. Далее вводим дату исходного счета-фактуры, внешний номер, дату поступления, формат обмена (печать, электронный), вид операции, код дебитора, валюту, сумму брутто.
  • Система проверяет, что записи с таким ключом (БЕ, исходный номер, исходный год) еще не создано.
  • Сохранить.
  • Экран ввода документа закроется, в списке вывода появится новая строка.
  • В таблицу J_3RF_REGINV_OUT добавляются новые записи, которые содержит внутр. номер, номер FI, внешний номер, БЕ, год, код дебитора и др. данные.

BADI:


Автоматический ввод исходящих счетов из Финансов

Исходящие счета-фактуры закачиваются автоматически из модуля Финансы (FI) при помощи программы печати документа.

  • В FI должна быть настроена корреспонденция SAPR3, программе печати J_3RF_INV_A присвоен Ид. формуляра pdf EI . Это настраивается в меню: SPRO-Финансы-Параметры настройки Финансов-Корреспонденция.
  • Запустить программу печати J_3RF_INV_A (FI). Указать ИдФормуляра EI, код корреспонденции SAPR3, БЕ, год, номер документа. При этом печати не происходит, только закачка данных в журнал.
  • Документ должен появиться в журнале с-ф.
  • BADI J_3R_INV_BADI метод UPDATE_DATA - изм данных в прогр печати. Входные параметры: индикатор модуля FI, id текстов, флаг новый с-ф, статус документа. Изменяемые параметры: флаг изменяемый/не изменяемый, заголовок с-ф, доп. заголовок УТД, тексты док, позиции с-ф.
  • BADI J_3RF_CH_ADDR метод SHIP_TO_PARTY_ADDR - получение адреса ship-to-party. Входные параметры: балансовая единица,номер с-ф, год с-ф, позиция с-ф. Изменяемые параметры: addr_knwe - структура с адресными данными.


Автоматический ввод исходящих счетов из Сбыта

Исходящие счета-фактуры закачиваются автоматически из модуля Сбыт (SD) при печати документа.

  1. Создать с-ф из сбыта.
    1. Меню: Логистика-Сбыт-Фактурирование-Фактура-Создать.
    2. Транзакция VF01.
  2. Провести с-ф.
    1. Меню: Логистика-Сбыт-Фактурирование-Фактура-Изменить.
    2. Транзакция VF02.
    3. По меню перейти Фактура-Деблокирование для бухучета.
  3. Создать выходной документ для с-ф.
    1. Меню: Логистика-Сбыт-Фактурирование-Фактура-Изменить.
    2. Транзакция VF02.
    3. Ввести номер фактуры 90000002, нажать Enter.
    4. По меню перейти к пункту Перейти к-Заголовок-Выходные документы.
    5. Ввести новую строку. Вид выходного документа RDRU, средство отправки 8 спец. функция, роль партнера RE получатель счета, партнер 100000. В настройках для этих параметров должна быть указана программа печати J_3RV_INV_A подпр. ENTRY.
    6. Сохранить.
    7. Автоматически запускается программа J_3RV_INV_A подпр. ENTRY.
    8. Документ должен появиться в журнале с-ф. Номер FI с-ф равен номеру исходного с-ф в журнале.
  4. Печать с-ф из сбыта (повторно).
    1. Меню: Логистика-Сбыт-Фактурирование-Выходные документы-Вывести фактуры.
    2. Транзакция VF31.
    3. Ввести вид выходного документа RDRU, средство отправки 8 спец. функция, режим обработки 2 повторная, документ фактуры 90000002.
    4. Запустить транзакцию.
    5. Поставить галочку напротив с-ф.
    6. Нажать Просмотр до печати (для журнала с-ф) или Обработать.
    7. Автоматически запускается программа J_3RV_INV_A подпр. ENTRY.
    8. Документ должен появиться в журнале с-ф. Номер FI с-ф равен номеру исходного с-ф в журнале.

Команда Create XML Invoice

Описание команды Create XML Invoice

Описание Создает xml для выделенных на экране исходящих счетов-фактур, используя номера документов.

Аргументы Выделенные строки в списке счетов-фактур с содержанием номеров и статусов.

Возвращаемое значение Список счетов-фактур с новыми статусами или сообщение об ошибке.

Результат Заголовок, данные в формате string, xml-данные в формате hex, эл.подпись в формате hex добавлаются в таблицу J_3RFDI_ARC. Изменяется статус документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_LOG.

Алгоритм

  1. Формируем список фактур по котором надо сформировать xml документы, среди отмеченных записей списка берем фактуры удовлетворяющие условиям (статус: пусто/создан/подписано; типом обмена: только xml обмен; индикатор "заархивировано": пусто; индикатор "удалено": пусто). Отобранные фактуры помещаем во врем. таблицу t_out_list[]
  2. SET_XML_TIMESTAMP. Получаем системную дату и время.
  3. CL_J3RF_DI_REGINV->CREATE_XML_INVOICES (список фактур - врем. таблица t_out_list[]). Получает данные фактуры. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Изменяет статус в таблице J_3RF_REGINV_OUT, добавляет лог в табл. J_3RF_REGINV_LOG. Возвращаемое значение: код ошибки.
    1. Проверяем есть ли в системе BADI J_3R_REGINV_DIG_BADI (должна быть иначе ошибка)
    2. Перебираем список фактур и в зависимости от типа фактуры (обычная / корректировочная) запускаем разные методы получения данных из БД:
      1. Для обычной фактуры
        1. CL_J3RF_DI_REGINV->GET_INV_DATA - получаем данные обычной с-ф. Входной параметр: врем. структура ls_out запись из таблицы J_3RF_REGINV_OUT. Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
          1. Проверяем откуда пришел документ - из финансов или из сбыта. В зависимости от этого запускаем различные алгоритмы печати.
            1. Для сбыта анализируем схему печати, согласно техники условий для вида выходного документа RDRU и приложения V3 из таблицы настроек TNAPR получаем программу J_3RV_INV_A и подпрограмму ENTRY. Передаем в нее данные с-ф через id параметр get_sd_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_sd_inv в структуры hd_inv, it_txt, it_inv.
            2. Для финансов читаем настройки в таблице T048B - присвоение программы печати для корреспонденции. Для корреспонденции SAPR3 получаем программу J_3RF_INV_A и вариант SAPR3. Передаем в нее данные с-ф через id параметр get_fi_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_fi_inv в структуры hd_inv, it_txt, it_inv.
        2. CL_J3RF_DI_REGINV->PREPARE_XML_INVOICE (ls_hd_inv, lt_txt, lt_inv). По полученным данным собираем структуру специального формата для конвертации в xml. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml.
        3. CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION - получаем данные подписанта. Аргументы: ls_out - врем. строка цикла по врем.таблице it_out_entries[], тип документа счета, ключ с номером счета. Возвращаемые значения: ls_xml_inv-signatory - данные подписанта.
        4. BADI J_3R_REGINV_DIG_BADI->UPDATE_INV_XML (ls_hd_inv, lt_txt, lt_inv, ls_xml_inv). Можем изменить подготовленную структуру с данными для создания xml ls_xml_inv. См. пункт BADI для команды Create XML Invoice.
        5. Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table
      2. Для корректировочной фактуры - аналогично обычной фактуре.
        1. CL_J3RF_DI_REGINV->GET_CORRINV_DATA. В сбыте для RUCR V3 получаем подпрограмму J_3RV_CORRINV_A-ENTRY. В финансах для корреспонденции ZCORR находим подпрограмму J_3RF_CORRINV_A и вариант FICORR.
        2. CL_J3RF_DI_REGINV->PREPARE_XML_CORRINV.
        3. CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION.
        4. BADI J_3R_REGINV_DIG_BADI->UPDATE_CORRINV_XML. См. пункт BADI для команды Create XML Invoice.
        5. Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table.
    3. CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING (табл. с-ф lt_inv_table[], индикатор j3rdx_out_create_only). Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Изменяет статус в таблице J_3RF_REGINV_OUT, добавляет лог в табл. J_3RF_REGINV_LOG. Возвращает: код ошибки.
      1. Перебираем список, и в зависимости от операции (создать/созд и подписать/подписать) запускаем разные модули обработки.
        1. Для создания
          1. PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяет xml данные ls_ddx_doc. Возвращает lv_record_id - номер записи. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC.
            1. FIND_SETTING_FOR_DOC. Получаем настройки из таблицы xml-трансформаций J_3RF_DI_TRANF в структуру ls_setting. Например, для вида документа электронный с-ф, исходящего направления и последней версии 5.1 получаем xml-трансформацию J_3RF_SFAKT, метод-обработчик Х - CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE и тип данных для подготовки xml J_3RF_DIXML_SFAKT. Если настройки не найдены выводим ошибку.
            2. CL_J3RF_DIGINV_PROCESSOR->TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск предварительной трансформации xml (не заходит в этот метод из-за флага предв. трансформации). Изменяет cv_ddx_doc - структуру с xml-данными.
            3. Передача параметров для запуска метода-обработчика Х, полученного из настроек. Входные параметры: данные с-ф ir_data, настройки xml-трансформации и метода-обработчика iv_ddx_setting. Изменяемые параметры: xml данные с-ф cv_ddx_doc. Выходные параметры: номер записи ev_record_id.
            4. Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке.
            5. Запуск метода-обработчика Х. Например CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE.
              1. CL_J3RF_DIGINV_PROCESSOR=>MATCH_INT_CUSTOMER (дебитор key-kunnr). Получение ид. дебитора lv_customer_id по его коду.
              2. CL_J3RF_DIGINV_PROCESSOR=>GET_COMPANY_INFO (БЕ). Получение ид. БЕ и адресных данных БЕ lv_company_info.
              3. CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_AND_STORE. (настройки трансформации iv_ddx_setting, ид. БЕ lv_company_info-id, ид.дебитора lv_customer_id, код дебитора key-kunnr). Сохраняем xml в таблицу J_3RFDI_ARC. Изменяем данные с-ф lr_data, xml-данные cv_ddx_doc. Получаем номер записи ev_record_id.
                1. CL_J3RF_DIGINV_PROCESSOR=>GET_OPERATOR (БЕ). Получение ид. и данных оператора. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_OPERATOR.
                2. CL_J3RF_DIGINV_PROCESSOR=>SET_PROGRAM_INFO. Получение версии формата xml.
                3. CL_J3RF_DIGINV_PROCESSOR=>SET_SIGNATURE. Получение данных подписанта из доп данных БЕ. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_COMPANY_INFO.
                4. CL_J3RF_DIGINV_PROCESSOR=>GENERATE_FILENAME. Генерация имени файла xml.
                5. CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск трансформации xml. Изменяет cv_ddx_doc - структуру с xml-данными.
                6. CL_J3RF_DIGINV_PROCESSOR=>STORE_DOCUMENT (данные с-ф ir_data, данные дебитора iv_partner, ид. получателя iv_receiver_id, ид. отправителя iv_sender_id, статусы док, метка времени lv_doc_timestamp). Сохранение xml-данных в таблицу J_3RFDI_ARC. Изменяем структуру xml-данных cv_ddx_doc. Получаем номер записи ev_record_id.
        2. Для создания и подписи
          1. PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяет xml данные ls_ddx_doc. Возвращает lv_record_id - номер записи. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC.
          2. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
          3. UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
        3. Для подписи
          1. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
          2. UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
      2. Заполнение таблицы статусов J_3RF_REGINV_LOG. Добавляется или обновляется статус электронного с-ф.
    4. Заполнение кода ошибки как выходного параметра .
  4. SHOW_XML_RESULT(количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices). Выводит сообщение о результатах работы: "Х строк выделено, Y строк обработано, Z строк с ошибками".
  5. OUT_INV_SELECT(out_list[]-список счетов-фактур). Обновление список счетов-фактур на экране вывода .
BADI для команды Create XML Invoice

J_3R_REGINV_DIG_BADI

  • UPDATE_INV_XML - изменение структуры с данными для создания xml с-ф. Входные параметры: структура заголовка с-ф ls_hd_inv, таблица текстов с-ф lt_txt, таблица позиций с-ф lt_inv. Изменяемые параметры: структура с данными для создания xml ls_xml_inv.
  • UPDATE_CORRINV_XML - изменение структуры с данными для создания xml корректировочного с-ф. Входные параметры: структура заголовка корр.с-ф ls_hd_corrinv, таблица текстов корр.с-ф lt_txt, таблица позиций корр.с-ф lt_corrinv. Изменяемые параметры: структура с данными для создания xml ls_xml_corrinv.

J_3RF_DIGITAL_INVOICE_BADI

  • SIGN - генерация xml подписи. Используется в Журнале с-ф и в программе Архив с-ф. Изменяемые параметры: структура с данными xml для электронного с-ф ls_ddx_doc. Метод уже реализован в системе и подготавливает данные. Однако метод генерации xml подписи GET_SIGNATURE пустой.
  1. Алгоритм.
    1. GET_CAPABILITIES - проверка возможности подписания, проверка настроек. Метод пустой.
    2. Изменение статуса электронного с-ф на Подписано.
    3. Получение времени подписания и имени пользователя.
    4. GET_SIGNER_INFO - получение данных подписавшего.
    5. SET_SIGNER_IN_XML - передача данных подписавшего в поле с данными для генерации xml.
    6. GET_SIGNATURE - Генерация xml-подписи и передача данных в структуру с данными xml ls_ddx_doc. Метод пустой.
  • GET_COMPANY_INFO. Изменение адресных данных из доп данных БЕ.
  • GET_OPERATOR. Изменение ид. и данных оператора.

J_3R_REGINV_BADI

  • UPDATE_PRN - изменение данных при печати журнала. Входные параметры: таблица исходящих с-ф, таблица входящих с-ф. Изменяемые параметры: строка заголовка печатной формы, таблица исходящих с-ф, таблица входящих с-ф.


Команда Send XML Invoice

Описание команды Send XML Invoice

Описание Выгружает файлы xml для выделенных на экране исходящих счетов-фактур в локальную папку c:\temp\outgoing.

Аргументы Выделенные строки в списке счетов-фактур с содержанием номеров и статусов.

Возвращаемое значение Список счетов-фактур с новыми статусами или сообщение об ошибке.

Результат В папку выгружен файл xml. Изменен статус документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_LOG на Документ отправлен.

Алгоритм

  1. Формируем список фактур по котором надо сформировать xml. Ищем с-ф со статусом Эл.счет создан. Отобранные фактуры помещаем во врем. таблицу t_out_list[].
  2. SET_XML_TIMESTAMP. Получаем системную дату и время.
  3. CL_J3RF_DI_REGINV=>SEND_XML_INVOICES. Чтение xml-данных из таблицы, формирование файла xml, выгрузка файла в локальную папку, обновление статуса документа.
    1. CL_J3RF_DIGINV_PROCESSOR=>SEND_DATA. Чтение xml-данных из таблицы, формирование файла xml, выгрузка файла в локальную папку, обновление статуса документа.
      1. CL_J3RF_DI_ARCLOG=>GET_XMLS_BY_KEY. Чтение xml-данных из таблицы J_3RFDI_ARC по номеру с-ф.
      2. CL_J3RF_DI_ARCLOG=>GET_XMLS_BY_STATUSES. Чтение xml-данных из таблицы J_3RFDI_ARC по статусу с-ф.
      3. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN (xml-данные с-ф ls_document). Генерация xml-подписи.
      4. BADI J_3RF_DIGITAL_INVOICE_BADI->SEND (xml-данные с-ф lt_documents). Формирование файла xml. Выгрузка файла в локальную папку c:\temp\outgoing.
      5. CL_J3RF_DI_ARCLOG=>UPDATE_RECORD. Обновление xml-данных в таблице J3RFDI_ARC.
      6. CL_J3RF_DI_REGINV=>SET_DOC_STATUS. Обновление статуса документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_LOG.
  4. SHOW_XML_RESULT(количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices). Выводит сообщение о результатах работы: "Х строк выделено, Y строк обработано, Z строк с ошибками".
  5. OUT_INV_SELECT(out_list[]-список счетов-фактур). Обновление список счетов-фактур на экране вывода .
BADI для команды Send XML Invoice

J_3RF_DIGITAL_INVOICE_BADI

  • SIGN см. пункт "BADI для команды Create XML Invoice".
  • SEND (xml-данные с-ф lt_documents). Формирование файла xml. Выгрузка файла в локальную папку c:\temp\outgoing.

Входящие счета

Ручной ввод входящих счетов

Ручной ввод добавляет одну запись в журнал. Номер, год, БЕ, внешний номер, дату, сумму необходимо указывать вручную, что при ошибках может вызвать несоответствие введенного документа документу FI. Помимо ручного ввода в журнале ввести вх. счета вручную можно при помощи транзакции V_J_3RFREGINVIN - Регистрация вх.счетов в журнале.

  • В журнале на экране выбора необходимо нажать радиокнопку "Просмотреть список входящих счетов".
  • Ограничить выбор, ввести год, номер, и т.д.
  • Запустить отчет.
  • Выводится список входящих счетов. Нажать кнопку Новый ввод (Создать запись, команда INSR).
  • Выводится экран ввода документа. Ввести данные БЕ, номер исходного счета-фактуры (номер из FI), год исходного счета-фактуры (год из FI). Номер исходного счета-фактуры можно найти через средство поиска из FI. Далее вводим дату исходного счета-фактуры, внешний номер, дату поступления, формат обмена (печать, электронный), вид операции, код кредитора, валюту, сумму брутто.
  • Система проверяет, что записи с таким ключом (БЕ, исходный номер, исходный год) еще не создано.
  • Сохранить.
  • Экран ввода документа закроется, в списке вывода появится новая строка.
  • В таблицу J_3RF_REGINV_IN добавляется новая запись, которая содержит внутр. номер, номер FI, внешний номер, БЕ, год, код кредитора и др. данные.

Автоматический ввод входящих счетов из Финансов

Входящие счета-фактуры могут закачиваться автоматически из модуля Финансы (FI). Те счета, которые уже есть в журнале, не добавляются.

  • В журнале на экране выбора необходимо нажать радиокнопку "Добавить отсутств. входящие счета".
  • Запустить отчет.
  • На вкладке "Критерии выбора отсутствующих счетов" необходимо задать параметры выбора из таблиц FI. Например, год 2015, вид документа KR вх.счет.
  • Выводится список тех счетов из Финансов, которых нет в журнале. Сравнение происходит по БЕ, году и номеру FI документа, например ZUCH 2015 1900000001.
  • Выделить нужные строки.
  • Для сохранения выделенных записей в журнале необходимо нажать кнопку Сохранить.
  • В таблицу J_3RF_REGINV_IN добавляются новые записи, которые содержит внутр. номер, номер FI, внешний номер, БЕ, год, код кредитора и др. данные.


Автоматический ввод входящих счетов из файла

Описание

Для автоматического ввода входящих электронных счетов-фактур используется программа J_3RF_DI_PROC_IN. В папку c:\temp\incoming необходимо положить файлы xml счетов-фактур.

Результат:

Новая запись в журнале счетов-фактур и в таблице J_3RFDI_ARC со статусом "эл.счет получен, без регистрации".

Новая запись в архиве электронных счетов - с-ф.

Новая запись в архиве электронных счетов - извещение о получении.

Успешно обработанный файл перемещается в папку c:\temp\incoming\processed.


Алгоритм:

  1. CL_J3RF_DIGINV_PROCESSOR=>GET_BADI_PATHS. Получение пути к файлу. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_PATH.
  2. CL_J3RF_DIGINV_PROCESSOR=>SET_BADI_PATHS. Изменение пути к файлу. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->SET_PATH.
  3. CL_J3RF_DIGINV_PROCESSOR=>PROCESS_INCOMING. Чтение файла xml, обработка xml, сохранение данных в таблицах.
    1. BADI J_3RF_DIGITAL_INVOICE_BADI->RECEIVE. Чтение файла xml. Получение внутренней таблицы с xml данными lt_incoming_doc.
    2. BADI J_3RF_DIGITAL_INVOICE_BADI->PREPROCESS.
    3. DETERMINE_DOCUMENT_TYPE (структура с xml данными ls_incoming_doc). Определение типа документа. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->DETERMINE_DOCUMENT_TYPE.
    4. CL_J3RF_DIGINV_PROCESSOR->PROCESS_DOCUMENT (данные с-ф lr_data). Получение xml-данных, сохранение данных в таблицах. Изменяем структуру с xml данными ls_incoming_doc.
      1. FIND_SETTING_FOR_DOC. Получаем настройки из таблицы xml-трансформаций J_3RF_DI_TRANF в структуру ls_setting. Например, для вида документа электронный с-ф, входящего направления и последней версии 5.1 получаем xml-трансформацию J_3RF_SFAKT, метод-обработчик Y - CL_J3RF_DIGINV_PROCESSOR->PROCESS_INCOMING_INVOICE и тип данных для подготовки xml J_3RF_DIXML_SFAKT. Если настройки не найдены выводим ошибку.
      2. CL_J3RF_DIGINV_PROCESSOR->TRANSFORM_FROM_XML (cv_ddx_doc - структура с xml-данными, настройки ls_setting). Запуск трансформации xml. Получаем данные с-ф в структуру ir_data.
      3. Передача параметров для запуска метода-обработчика Y, полученного из настроек. Входные параметры: данные с-ф ir_data, настройки xml-трансформации и метода-обработчика iv_ddx_setting. Изменяемые параметры: xml данные с-ф cv_ddx_doc. Выходные параметры: номер записи ev_record_id.
      4. Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке.
      5. Запуск метода-обработчика Y. Например CL_J3RF_DIGINV_PROCESSOR->PROCESS_INCOMING_INVOICE. Сохранение xml-данных в таблицу J_3RFDI_ARC, изменение статуса в таблице J_3RF_REGINV_IN, добавление лога в табл. J_3RF_REGINV_LOG. Изменяем структуру xml-данных cv_ddx_doc. Получаем номер записи ev_record_id.
        1. CL_J3RF_DIGINV_PROCESSOR->GET_CCODE. Получение БЕ по ид. получателя.
        2. CL_J3RF_DIGINV_PROCESSOR->MATCH_EXT_VENDOR (БЕ, ид отправителя). Получение кода кредитора по ид. отправителя. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->MATCH_EXT_VENDOR.
        3. CL_J3RF_DI_ARCLOG->CHECK_DOC_BY_FILENAME (БЕ, имя файла, код кредитора). Проверка что xml-файла с таким именем в БД еще нет.
        4. CL_J3RF_DI_REGINV=>IN_XML_INVOICE (данные с-ф ir_data). Сохранение данных в журнале входящих с-ф, в таблице J_3RF_REGINV_IN.
        5. CL_J3RF_DIGINV_PROCESSOR=>STORE_DOCUMENT (данные с-ф ir_data, данные кредитора iv_partner, ид. отправителя iv_sender_id, статусы док, метка времени lv_doc_timestamp). Сохранение xml-данных в таблицу J_3RFDI_ARC, изменение статуса в таблице J_3RF_REGINV_IN, добавление лога в табл. J_3RF_REGINV_LOG. Изменяем структуру xml-данных cv_ddx_doc. Получаем номер записи ev_record_id.
        6. Создание извещения о получении с-ф (AR).
          1. FIND_SETTING_FOR_DOC. Получаем трансформацию J_3RF_IZV_POL, метод PROCESS_OUTGOING_AR и тип структуры J_3RF_DIXML_IZVPOL.
          2. CL_J3RF_DIGINV_PROCESSOR->SIGNATURE_TO_XML.
          3. CL_J3RF_DIGINV_PROCESSOR->GET_TIMESTAMP.
          4. CL_J3RF_DIGINV_PROCESSOR->PROCESS_DOCUMENT. Получение xml-данных, сохранение данных xml в таблице J3RFDI_ARC, в журнале с-ф в таблице J_3RF_REGINV_OUT, лога в таблице J_3RF_REGINV_LOG.
  4. BADI J_3RF_DIGITAL_INVOICE_BADI->COMPLETE_RECEIVING.
  5. Запись ошибок в журнал логов.
  6. Вывод результата в виде : X позиций обработано, Y с ошибками.
BADI

J_3RF_DIGITAL_INVOICE_BADI

  • GET_PATH. Метод реализован.
  • GET_PATH. Метод реализован.
  • RECEIVE. Метод реализован.
  • PREPROCESS. Метод реализован.
  • DETERMINE_DOCUMENT_TYPE. Метод не реализован.
  • MATCH_EXT_VENDOR. Метод не реализован.
  • GET_TIMESTAMP.
  • COMPLETE_RECEIVING. Метод реализован.


Привязка файлов xml к входящим с-ф в системе

Для того чтобы прикрепить файлы xml к документам их необходимо загрузить в систему.

  1. Активировать бизнес-функции FIN_LOC_CI_33 ( ???FIN_LOC_CI_35-пока не надо???).
    1. Меню: SPRO-Активировать бизнес-функции.
    2. Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
  2. Запустить программу J_3RF_DI_PROC_IN, которая загружает XML файлы из локальной папки в SAP.
  3. Просмотреть загруженные электронные с-ф в журнале.
  4. Осуществить привязку XML-документа к счету-фактуре, зарегистрированному в системе, через программу J3RFINVOFFLINK.


Извещение о получении (AR)...

При автоматическом вводе входящих с-ф из файла в журнале формируется сч-ф и извещение о получении (вид документа AR).


Архив электронных счетов-фактур

Описание

Архив электронных счетов-фактур. Программа J_3RF_DI_ARCLOG. Позволяет работать с электронными документами из таблицы J_3RFDI_ARC. Фактически это список xml-документов. Отображает список документов с данными : номер записи, номер исходного с-ф, внешний номер исх. с-ф, версия, статус эл.документа, контрагент, метка времени, дата подписи, имя подписавшего, имя файла xml.

Команды:

  • Показать XML
  • Показать подпись
  • Скрыть XML
  • Отправить
  • Экспорт


Команда Отправить

Создает файл xml в папке c:\temp\outgoing на основе xml-данных хранящихся в таблице J_3RFDIARC для различных видов эл. документов.

Отправка извещения о получении

Команда Экспорт

Создает файл xml по указанному пути на основе xml-данных хранящихся в таблице J_3RFDIARC для различных видов эл. документов.

Журнал накладных и актов

Общие сведения

Журнал электронных накладных и актов – транзакция, которая отображает список входящих и исходящих накладных ТОРГ12 и актов и их электронную версию в системе SAP.

  • Техническое имя транзакции J3RFREGTORG.
  • Техническое имя программы J_3RF_REGTORG.

Журнал использует таблицы:

  • J_3RF_RGTORG_IN - входящие накладные
  • J_3RF_RGTORG_OUT - исходящие накладные
  • J_3RF_RGTORG_IFS - индекс документов

Программа J_3RF_REGTORG состоит из частей:

  • Описание переменных (DATA, TYPES)
  • Экран выбора (SELECTION-SCREEN)
  • Обработка событий на экране выбора (AT SELECTION-SCREEN)
  • Набор данных (START-OF-SELECTION)
  • Вывод данных (END-OF-SELECTION)
  • Обработка событий на экране вывода (USER-COMMAND)

При запуске программы на экране выбора необходимо выбрать режим:

  • показать исходящие документы
  • показать входящие документы

Список доступных команд на экране вывода (USER-COMMAND):

  • Общие
    • DXML - Display XML-File - показать xml
    • IAKT_PDF - Print Seller Title in PDF form - напечатать данные продавца в pdf
    • ZAKT_PDF - Print Buyer Title in PDF form - напечатать данные покупателя в pdf
    • DCLFR - Display Clarification Request - показать запрос на уточнение
    • TORG2_PROC - Set Status to Processed - установить статус "обработан"
    • HIST - Display Status History - просмотреть историю статусов
    • VLOG - View Application Log - просмотреть историю операций
  • Исходящие документы
    • ETORG - Create XML - создать xml
    • SGNI - Sign - подписать документ
    • SNDI - Send - отправить документ


Как входящие документы попадают в журнал

Вариант 1 (....)

Описание

Алгоритм


Список доступных команд

Команда 1

Описание

Алгоритм

BADI


Журнал универсальных передаточных документов (УПД)

Общие сведения

Структура таблиц журнала счетов-фактур

J_3RF_REGINV_IN – входящие счета-фактуры

J_3RF_REGINV_OUT – исходящие счета-фактуры

J_3RF_REGINV_LOG – история статусов счетов-фактур

J_3RFDI_ARC – архив электронных счетов с XML-данными

Структура таблиц журнала накладных и актов

J_3RF_RGTORG_IN - входящие накладные

J_3RF_RGTORG_OUT - исходящие накладные

J_3RF_RGTORG_IFS - индекс документов

+структура каждой таблицы