Интеграция со СБИС

Структура подраздела «Списки»

Структура подраздела «Списки»

В настройках модуля СБИС САПЕР есть подраздел «Списки». Он отвечает за:

  • отображение списков документов в разделах меню модуля.
  • состав отправляемых пакетов документов. Определяет, какие документы SAP используются для формирования пакета электронных документов.

За формирование списка документов отвечает метод «GET_LIST_API2_PACKET». Класс метода указан в параметре «ПолучениеДанных_Класс».

Для разделов «Продажа» по умолчанию этим классом является «/SBIS/CL_SAP_DATA_[700/740]». Это зависит от версии BASIS и поставляется в разных пакетах.

Настроить запрос

В реестре список документов формируется после выполнения запроса к базе данных. Для SAP версии выше BASIS 7.40 — это динамический «SELECT»-запрос, текст которого указан в настройках. Для более ранних версий SAP код запроса заложен в самом модуле. Для этих версий SAP доработка запроса осуществляется наследованием класса и переопределением необходимых методов.

Результат выполнения запроса — таблица со списоком документов SAP, которые нужны для формирования пакета документов.

Строка таблицы соответствует структуре «/SBIS/S_LIST_DOC» и содержит:

  • Идентификатор базового документа. Нужен для группировки пакета. Содержит в себе:
    • «BUKRS»;
    • «GJAHR»;
    • «BELNR» — номер документа.
  • Идентификатор документа, на данных которого будет формироваться электронный документ. Он может быть равен базовому. Содержит в себе:
    • «XBLNR» — номер документа (если «BUKRS» и «GJAHR» идентичны параметрам в базовом документе.
  • Идентификатор настроек, которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати). Содержит:
    • «INI_NAME» — код настроек из таблицы «/SBIS/SETTINGS». Указывается в запросе.
  • Реквизиты документа для отображения в списке. Это параметры для формирования названия документа. По умолчанию шаблон имеет шаблон: «[значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]». Содержит в себе:
    • «DATE»;
    • «SUM»;
    • «WAERS»;
    • «PARTNER_NAME»;
    • «ORG_NAME»;
    • «USER_NAME».
  • Дополнительные реквизиты, которые можно использовать в отборе:
    • «PARAM1»
    • «PARAM2»
    • «PARAM3»
  • Текущий статус документа. В «SELECT»-запросе не заполняются. Заполняются для каждой записи по данным таблицы «/SBIS/STATUS_DOC». Код реализован в том же классе. Содержит:
    • «STATUS_NAME»;
    • «STATUS_CODE»;
    • «STATUS_NOTE»;
    • «STATUS_MSG»;
    • «STATUS_MSG_DETAIL».

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

Например, у нас есть комплект документов реализации. Он состоит из двух документов — накладной «№ 0080000227» и счет-фактуры «№ 0090000244». Их нужно отправить одним пакетом. Основной документ — это тот документ, от которого строится список. Он должен быть всегда, иначе пакет не сформируется. В нашем случае — это накладная.

В результате выполнения запроса формируется список пакетов реализации. Часть результирующей таблицы, в которой содержится комплект будет выглядеть так:

BELNR XBELNR INI_NAME
0080000227 0080000227 'DP_TOVTORGPR_1175010'
0080000227 0090000244 'ON_SCHFDOPPR_1115125'

Если в пакет нужно добавить еще один документ, то в результат нужно дописать строку, которая содержит соответствующий код настроек. В общем виде, количество строк для пакета равно количеству вызово программ печати, необходимых для формирования документов комплекта.

Итоговый количество документов в пакете не всегда совпадает с количеством документов, которые видит пользователь в списке. При вызове программы печати может быть сформировано несколько электронных документов за раз. Например, по данным фактуры можно сформировать сразу весь комплект. Содержимое пакета документов, которое будет отправлено в итоге, можно увидеть в окне просмотра.

BASIS 7.00 (/SBIS/CL_SAP_DATA_700)

Для построения списка основного документа пакета нужно указать правильный класс. Он находится в настройках списка документов, в параметре «ПолучениеДанных_Класс». Основной документ — это документ, который всегда есть. От него можно получить все документы пакета.

Варианты:

  • «/SBIS/CL_SAP_DATA_700_LIKP» - возвращает накладные SD;
  • «/SBIS/CL_SAP_DATA_700_VBRK» - возвращает фактуры SD;
  • «/SBIS/CL_SAP_DATA_700_VBRK_USL» - возвращает фактуры SD на услуги, акты выполненных работ;
  • «/SBIS/CL_SAP_DATA_700_LIKP_NF» - возвращает неотфактурованные накладные SD (без фактур);
  • «/SBIS/CL_SAP_DATA_700_ERDK» - возвращает документы печати из одноименной таблицы.

Указание подчиненных документов и способ их получения:

  • «GET_CHILD_VBFA_SFAKT» - получить связанные с основным документом через таблицу VBFA счет-фактуры SD;
  • «GET_CHILD_VBFA_NAKL» - получить связанные с основным документом через таблицу VBFA накладные SD.

BASIS 7.40 (/SBIS/CL_SAP_DATA_740)

Текст запроса списков содержится в параметрах:

  • «ЗапросСпискаДокументов» - содержит тип запроса «select_groupby» или «select_having»;
  • «ЗапросСпискаДокументов_select»;
  • «ЗапросСпискаДокументов_from»;
  • «ЗапросСпискаДокументов_groupby»;
  • «ЗапросСпискаДокументов_having»;
  • «ЗапросСпискаСвязанныхДокументов» - массив настроек, который отвечает за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных документов. Доступные варианты:
    • «GET_CHILD_VBFA» - взять связанный через VBFA документ;
    • «GET_SELF» - взять тот же документ, но использовать другую программу печати.