SAPPER SETTINGS - Настройки списков

Материал из razgovorov.ru
Версия от 13:46, 15 марта 2018; Чижов Виталий (обсуждение | вклад) (Настройка списков LO_*)
Перейти к: навигация, поиск

Настройка списков LO_*

Файл с настройками LO_* списка содержит информацию о классе получения списка документов, общих настройках для реестра в СБИС, такие как регламент, название реестра, указание на файл выгрузки самого документа DO_*, запрос списка связанных документов, исключения из выборки. В зависимости от версии BASIS системы различаются принципы построения списков – использование статических методов выборки или построение динамического select’a.

Структура настройки списков:

  • [основные параметры, см. ниже]
  • [ЗапросСпискаСвязанныхДокументов] (тип List) - массив параметров для получения списка связанных документов
    • [Метод класса для построения списка связанных документов] - в качестве значения передается список параметров

Общее для версий 700 и 740

  1. ПолучениеДанных_Класс – класс получения данных для построения списка документов
  2. Реестр1С_Название, Реестр1С_Тип – классификаторы пакета документов
  3. РеестрСБИС_Тип – тип входящего реестра СБИС
  4. Регламент_Название – название регламета СБИС
  5. Реестр_СБИС – название входящего реестра СБИС
  6. НазваниеДокумента – отображаемое название документа
  7. ИсклСторноДатаСовпадает – исключение сторно документа из списка, если дата совпадает
  8. ИсклСторноДатаНеСовпадает – исключение сторно документа из списка, если дата не совпадает
  9. ИсклСторноМесяцСовпадает – исключение сторно документа из списка, если месяц совпадает
  10. ИсклСторноМесяцНеСовпадает – исключение сторно документа из списка, если месяц не совпадает

Версия 700

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

  1. ПолучениеДанныхВложения – указание на документ выгрузки DO_*
  2. ЗапросСпискаСвязанныхДокументов – содержит ссылки на документы-вложения, в поле Имя указывается метод класса для получения связанных документов. Также указывается имя документа для отображения и связанный файл получения вложения DO_*.

пример LO_РеализацияТоваров версии 700 с получением связанного документа счет-фактура


{
  "ПолучениеДанных_Класс": {
    "Значение": "/SBIS/CL_SAP_DATA_700_LIKP" //класс получения данных
  },
  "Реестр1С_Название": {
    "Значение": "Реализация товаров"
  },
  "Реестр1С_Тип": {
    "Значение": "'РеализацияТоваров'"
  },
  "РеестрСБИС_Тип": {
    "Значение": "'ДокОтгрИсх,НакладнаяИсх,Исходящие'"
  },
  "Регламент_Название": {
    "Значение": "Реализация"
  },
  "Реестр_СБИС": {
    "Значение": "ДокОтгрИсх"
  },
  "НазваниеДокумента": {
    "Значение": "Накладная"
  },
  "ПолучениеДанныхВложения": {
    "Значение": "DO_DP_TOVTORGPR_1175010" //указание на выгрузку документа DO_*
  },
  "РеестрПоУмолчанию": {
    "Значение": "'1'"
  },
  "ЗапросСпискаСвязанныхДокументов": {
    "Тип": "List",
    "Значение": [
      {
        "Имя": "GET_CHILD_VBFA_SFAKT", //метод класса получения данных
        "Значение": [
          {
            "Имя": "НазваниеДокумента",
            "Значение": "Счет-фактура"
          },
          {
            "Имя": "ПолучениеДанныхВложения",
            "Значение": "DO_ON_SCHFDOPPR_1115125" //указание на выгрузку документа DO_*
          }
        ]
      }
    ]
  },
  "ИсклСторноДатаСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноДатаНеСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноМесяцСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноМесяцНеСовпадает": {
    "Значение": "X"
  }
}

Версия 740

Списки документов строятся на основании динамического select’а.

  1. ЗапросСпискаДокументов – содержит тип запроса: select, select_groupby, select_distinct.
    1. Тело запрос разбито на 5 подстрок длиной 255 символов, а именно:
      1. ЗапросСпискаДокументов_select_1 ... ЗапросСпискаДокументов_select_5
      2. ЗапросСпискаДокументов_from_1 ... ЗапросСпискаДокументов_from_5
      3. ЗапросСпискаДокументов_groupby_1 ... ЗапросСпискаДокументов_groupby_5
      4. ЗапросСпискаДокументов_having_1 ... ЗапросСпискаДокументов_having_5
      5. ЗапросСпискаДокументов_where_1 ... ЗапросСпискаДокументов_where_5
  2. ЗапросСпискаСвязанныхДокументов – динамическая выборка для построения списка связанных документов:
    1. Тело запрос разбито на 5 подстрок длиной 255 символов, дополнительно выделена выборка сторнированных документов:
      1. ЗапросСпискаСвязанныхДокументов_select_1 ... ЗапросСпискаСвязанныхДокументов_select_5
      2. ЗапросСпискаСвязанныхДокументов_from_1 ... ЗапросСпискаСвязанныхДокументов_from_5
      3. ЗапросСпискаСвязанныхДокументов_where_1 ... ЗапросСпискаСвязанныхДокументов_where_5
      4. ЗапросСпискаСвязанныхДокументовСторно_select_1 ... ЗапросСпискаСвязанныхДокументовСторно_select_5
      5. ЗапросСпискаСвязанныхДокументовСторно_from_1 ... ЗапросСпискаСвязанныхДокументовСторно_from_5
      6. ЗапросСпискаСвязанныхДокументовСторно_where_1 ... ЗапросСпискаСвязанныхДокументовСторно_where_5

пример LO_РеализацияТоваров версии 740 с получением связанного документа счет-фактура


{
  "ПолучениеДанных_Класс": {
    "Значение": "/SBIS/CL_SAP_DATA_740" //класс получения данных
  },
  "Реестр1С_Название": {
    "Значение": "Реализация товаров" //наименование реестра документов
  },
  "Реестр1С_Тип": {
    "Значение": "'РеализацияТоваров'" //наименование типа реестра документов
  },
  "РеестрСБИС_Тип": {
    "Значение": "'ДокОтгрИсх,НакладнаяИсх,Исходящие'" //наименование типа реестра документов в СБИС
  },
  "Регламент_Название": {
    "Значение": "Реализация" //регламент в СБИС
  },
  "Реестр_СБИС": {
    "Значение": "ДокОтгрИсх" //реестр в СБИС
  },
  "НазваниеДокумента": {
    "Значение": "Накладная" //наименование документа
  },
  "ЗапросСпискаДокументов": {
    "Значение": "select_groupby" //тип выборки
  },
  "ЗапросСпискаДокументов_select_1": {
    "Значение": "'DO_DP_TOVTORGPR_1175010' AS ini_name, likp~vbeln AS belnr, likp~vbeln AS xblnr,"
  },
  "ЗапросСпискаДокументов_select_2": {
    "Значение": "likp~wadat_ist AS date, likp~waerk AS waers, SUM( vbap~kzwi4 ) AS sum,"
  },
  "ЗапросСпискаДокументов_select_3": {
    "Значение": "( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name,"
  },
  "ЗапросСпискаДокументов_select_4": {
    "Значение": "tvko~bukrs AS bukrs, vbfa~vbtyp_n AS subtype"
  },
  "ЗапросСпискаДокументов_select_5": {
    "Значение": ""
  },
  "ЗапросСпискаДокументов_from_1": {
    "Значение": "likp AS likp INNER  JOIN vbfa AS vbfa ON likp~vbeln = vbfa~vbeln AND vbfa~vbtyp_n = 'J'"
  },
  "ЗапросСпискаДокументов_from_2": {
    "Значение": "INNER  JOIN vbap AS vbap ON vbfa~vbelv = vbap~vbeln AND vbfa~posnv = vbap~posnr"
  },
  "ЗапросСпискаДокументов_from_3": {
    "Значение": "INNER JOIN kna1 AS kna1 ON likp~kunnr = kna1~kunnr"
  },
  "ЗапросСпискаДокументов_from_4": {
    "Значение": "INNER JOIN tvko AS tvko ON likp~vkorg = tvko~vkorg"
  },
  "ЗапросСпискаДокументов_from_5": {
    "Значение": ""
  },
  "ЗапросСпискаДокументов_groupby_1": {
    "Значение": "likp~vbeln, likp~wadat_ist,"
  },
  "ЗапросСпискаДокументов_groupby_2": {
    "Значение": "likp~waerk, vbfa~vbtyp_n,"
  },
  "ЗапросСпискаДокументов_groupby_3": {
    "Значение": "likp~kunnr, likp~vkorg, tvko~bukrs,"
  },
  "ЗапросСпискаДокументов_groupby_4": {
    "Значение": "kna1~name1, kna1~name2,"
  },
  "ЗапросСпискаДокументов_groupby_5": {
    "Значение": "kna1~name3, kna1~name4"
  },
  "ЗапросСпискаДокументов_having_1": {
    "Значение": "likp~vbeln IN @lt_rng_belnr AND likp~vkorg IN @lt_rng_vkorg "
  },
  "ЗапросСпискаДокументов_having_2": {
    "Значение": "AND likp~kunnr IN @lt_rng_partner"
  },
  "ЗапросСпискаДокументов_having_3": {
    "Значение": "AND likp~wadat_ist IN @lt_rng_bldat"
  },
  "ЗапросСпискаДокументов_having_4": {
    "Значение": "AND tvko~bukrs IN @lt_rng_bukrs"
  },
  "ЗапросСпискаДокументов_having_5": {
    "Значение": ""
  },
  "ЗапросСпискаСвязанныхДокументов": {
    "Тип": "List", //массив списка связанных документов
    "Значение": [
      {
        "Имя": "GET_CHILD_VBFA", //метод класса получения данных
        "Значение": [
          {
            "Имя": "НазваниеДокумента",
            "Значение": "Счет-фактура"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_1",
            "Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, "
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_2",
            "Значение": "vbrk~vbeln AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers,"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_3",
            "Значение": "( vbrk~netwr + vbrk~mwsbk ) AS sum,"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_4",
            "Значение": "( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name,"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_5",
            "Значение": "vbtyp_n AS subtype"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_from_1",
            "Значение": "vbfa AS vbfa"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_from_2",
            "Значение": "INNER  JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_from_3",
            "Значение": "INNER  JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_where_1",
            "Значение": "vbelv = @is_list_base_doc-belnr AND vbfa~vbtyp_n IN ('M', 'O', 'P')"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_select_20170716",
            "Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, bkpf~belnr AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers, ( vbrk~netwr + vbrk~mwsbk ) AS sum, ( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name, vbtyp_n AS subtype"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_from_20170716",
            "Значение": "vbfa AS vbfa INNER  JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln INNER  JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr INNER JOIN bkpf as bkpf ON bkpf~bukrs = vbrk~bukrs AND bkpf~awkey = vbrk~vbeln AND bkpf~awtyp = 'VBRK'"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументов_where_20170716",
            "Значение": "vbfa~vbtyp_n IN ('M', 'N', 'O', 'P') AND vbelv = @is_list_base_doc-belnr"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументовСторно_select_1",
            "Значение": "vbrk~vbeln AS belnr, vbrk~fkdat AS date"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументовСторно_from_1",
            "Значение": "vbfa AS vbfa INNER  JOIN vbrk AS vbrk ON vbfa~vbelv = vbrk~vbeln OR vbfa~vbeln = vbrk~vbeln"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_1",
            "Значение": "( vbfa~vbtyp_v = 'M' AND vbfa~vbtyp_n = 'N' AND vbfa~vbeln = @ls_list_related_doc-belnr )"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_2",
            "Значение": "OR ( vbfa~vbtyp_n = 'N' AND vbfa~vbtyp_v = 'M' AND vbfa~vbelv = @ls_list_related_doc-belnr )"
          },
          {
            "Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_3",
            "Значение": "AND vbrk~vbeln <> @ls_list_related_doc-belnr"
          }
        ]
      }
    ]
  },
  "РеестрПоУмолчанию": {
    "Значение": "'1'"
  },
  "ИсклСторноДатаСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноДатаНеСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноМесяцСовпадает": {
    "Значение": "X"
  },
  "ИсклСторноМесяцНеСовпадает": {
    "Значение": "X"
  }
}