http://wiki.razgovorov.ru/api.php?action=feedcontributions&user=%D0%97%D0%BB%D0%BE%D0%B1%D0%B8%D0%BD+%D0%AE%D1%80%D0%B8%D0%B9&feedformat=atomrazgovorov.ru - Вклад участника [ru]2024-03-29T07:04:02ZВклад участникаMediaWiki 1.31.1http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3588СБИС Сапёр - история изменений2018-09-05T13:50:16Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
'''29-08-2018 ED7K902401'''<br />
#Добавлен класс /SBIS/CL_TREE_SBIS_DOC для реестра Исходящие - Реализация в пакете /SBIS/GUI. (ЗЮ)<br />
#Добавлен метод SDK_READ_DOCUMENTS в /SBIS/IF_EXCHANGE для реестра Исходящие - Реализация. Реализован в SDK и EXTSDK (ЗЮ)<br />
'''05-09-2018 ED7K902427'''<br />
#Добавлен класс /SBIS/CL_EXCHANGE_EXTSDK2 для обмена через плагин с использованием XML вместо JSON. Предназначен для работы в версии SAP BASIS 7.00. (ЗЮ)<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3587СБИС Сапёр - история изменений2018-09-05T13:49:50Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
'''29-08-2018 ED7K902401'''<br />
#Добавлен класс /SBIS/CL_TREE_SBIS_DOC для реестра Исходящие - Реализация в пакете /SBIS/GUI. (ЗЮ)<br />
#Добавлен метод SDK_READ_DOCUMENTS в /SBIS/IF_EXCHANGE для реестра Исходящие - Реализация. Реализован в SDK и EXTSDK (ЗЮ)<br />
'''05-09-2018 ED7K902433'''<br />
#Добавлен класс /SBIS/CL_EXCHANGE_EXTSDK2 для обмена через плагин с использованием XML вместо JSON. Предназначен для работы в версии SAP BASIS 7.00. (ЗЮ)<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3586СБИС Сапёр - история изменений2018-09-05T13:41:35Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
'''29-08-2018 ED7K902401'''<br />
#Добавлен класс /SBIS/CL_TREE_SBIS_DOC для реестра Исходящие - Реализация в пакете /SBIS/GUI. (ЗЮ)<br />
#Добавлен метод SDK_READ_DOCUMENTS в /SBIS/IF_EXCHANGE для реестра Исходящие - Реализация. Реализован в SDK и EXTSDK (ЗЮ)<br />
'''05-09-2018 ED7K90xxxx'''<br />
#Добавлен класс /SBIS/CL_EXCHANGE_EXTSDK2 для обмена через плагин с использованием XML вместо JSON. Предназначен для работы в версии SAP BASIS 7.00. (ЗЮ)<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3585СБИС Сапёр - история изменений2018-09-05T13:40:55Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
'''29-08-2018 ED7K902401'''<br />
#Добавлен класс /SBIS/CL_TREE_SBIS_DOC для реестра Исходящие - Реализация в пакете /SBIS/GUI. (ЗЮ)<br />
#Добавлен метод SDK_READ_DOCUMENTS в /SBIS/IF_EXCHANGE для реестра Исходящие - Реализация. Реализован в SDK и EXTSDK (ЗЮ)<br />
'''05-09-2018 ED7K90xxxx'''<br />
#Добавлен класс /SBIS/CL_EXCHANGE_EXTSDK2 для обмена через плагин с использованием XML вместо JSON. Предназначен для работы в версии SAP BASIS 7.00.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3557СБИС Сапёр - история изменений2018-08-29T07:26:28Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
'''29-08-2018 ED7K902401'''<br />
#Добавлен класс /SBIS/CL_TREE_SBIS_DOC для реестра Исходящие - Реализация в пакете /SBIS/GUI. (ЗЮ)<br />
#Добавлен метод SDK_READ_DOCUMENTS в /SBIS/IF_EXCHANGE для реестра Исходящие - Реализация. Реализован в SDK и EXTSDK (ЗЮ)<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3520СБИС Сапёр - история изменений2018-07-03T08:36:19Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''03-07-2018 ED7K902289'''<br />
#При обновлении статусов неактуальные документы теперь игнорируются. (ЗЮ)<br />
#Создана проверка на задвоение уид пакета в методе update_status_attachment. (ЗЮ)<br />
#Реализована запись статистики через СДК. (ЗЮ)<br />
#Реализована возможность отправки УКД. (ЗЮ)<br />
#Изменены структуры, созданы подструктуры для s_api2_attachment, s_xml_attachment. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3511СБИС Сапёр - история изменений2018-05-18T06:08:08Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Изменена папка для выгрузки файлов. Было C:\Users\uv.zlobin\AppData\Local\SAP\SAP GUI\tmp. Стало C:\Users\uv.zlobin\Desktop\SBIS.<br />
# Создан функционал для работы с "Ссылка на PDF".(ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3510СБИС Сапёр - история изменений2018-05-18T06:02:27Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''29-03-2018'''<br />
# Создан функционал для работы с "Ссылка на PDF".<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле Примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Перевод работы класса CL_EXCHANGE_EXTSDK с XSLT 'ID' на индивидуальные XSLT для каждого метода.(ЗЮ)<br />
# Добавлена запись статистики и ошибок из Сапера на сервис статистики [https://fix-online.sbis.ru/integration_config/?service=ext1C https://fix-online.sbis.ru/integration_config/?service=ext1C] после операций отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3509СБИС Сапёр - история изменений2018-05-18T05:50:53Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле примечание, если оно непустое. (ЗЮ)<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Добавлена запись статистики и ошибок после отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3508СБИС Сапёр - история изменений2018-05-18T05:50:18Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
'''20-04-2018 ED7K902187'''<br />
# На экране подробного просмотра документа выводится поле примечание, если оно непустое. (ЗЮ)<br />
'''20-04-2018 ED7K902187'''<br />
# Создан реестр Задачи. (ЗЮ)<br />
'''08-05-2018 ED7K902199'''<br />
# Добавлена запись статистики и ошибок после отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
'''18-05-2018 ED7K902199'''<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3507СБИС Сапёр - история изменений2018-05-18T05:43:33Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
'''12-03-2018'''<br />
# Добавлен функционал по автоматической отправке документов, см. [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2_.D0.B8_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2 ссылку] (ЧВВ)<br />
# . (ЗЮ)<br />
'''01-05-2018'''<br />
# Добавлена запись статистики и ошибок после отправки, загрузки, выполнения операций по кнопкам. (ЗЮ)<br />
'''08-05-2018'''<br />
# При появлении ошибки на экран ошибки и в статистику помимо описания передается код ошибки. (ЗЮ)<br />
'''18-05-2018'''<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_COM-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%B2_C-sharp&diff=3464Отладка COM-объекта в C-sharp2018-04-13T08:11:10Z<p>Злобин Юрий: </p>
<hr />
<div>*Скопировать dll и pdb отлаживаемого плагина в папку откуда запускается чистовой плагин.<br />
[[Файл:Csharp COM object debug 01.png]]<br />
*Запустить чистовой плагин.<br />
*Поставить точки останова в COM-методах:<br />
[[Файл:Csharp COM object debug 02.png]]<br />
*В C# для включения отладки COM-объекта нажать Debug - Attach to process, и выбрать свой процесс , который обращается к COM-объекту (например SAPlogon.exe). Нажать Attach. Можно пробовать вызывать свои методы. <br />
*После Attach точки останова должны быть красные (активные). Если желтые (неактивные) , значит не те dll запустили. Тогда необходимо посмотреть в ProcessExplorer для процесса SAPlogon.exe путь к SbisPluginClientCOM.dll который вызывается, и проверить что это именно тот dll.</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_COM-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%B2_C-sharp&diff=3463Отладка COM-объекта в C-sharp2018-04-13T08:10:14Z<p>Злобин Юрий: </p>
<hr />
<div>*Скопировать dll и pdb отлаживаемого плагина в папку откуда запускается чистовой плагин.<br />
[[Файл:Csharp COM object debug 01.png]]<br />
*Запустить чистовой плагин.<br />
*Поставить точки останова в COM-методах:<br />
[[Файл:Csharp COM object debug 02.png]]<br />
*В C# для включения отладки COM-объекта нажать Debug - Attach to process, и выбрать свой процесс , который обращается к COM-объекту (например SAPlogon.exe). Нажать Attach. Можно пробовать вызывать свои методы. <br />
*Точки останова д.быть красные (активные). Если желтые (неактивные) , значит не те dll запустили. Тогда необходимо посмотреть в ProcessExplorer для процесса SAPlogon.exe путь к SbisPluginClientCOM.dll, который вызывается и проверить что это именно тот dll.</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_COM-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%B2_C-sharp&diff=3462Отладка COM-объекта в C-sharp2018-04-13T08:08:03Z<p>Злобин Юрий: </p>
<hr />
<div>*Скопировать dll и pdb отлаживаемого плагина в папку откуда запускается чистовой плагин.<br />
[[Файл:Csharp COM object debug 01.png]]<br />
*Запустить чистовой плагин.<br />
*Поставить точки останова в COM-методах:<br />
[[Файл:Csharp COM object debug 02.png]]<br />
*В C# для включения отладки COM-объекта нажать Debug - Attach to process, и выбрать свой процесс , который обращается к COM-объекту (например SAPlogon.exe). Нажать Attach. Можно пробовать вызывать свои методы. <br />
*Точки останова д.быть красные (активные). Если желтые (неактивные) , значит не те dll запустили. Посмотреть в ProcessExplorer для процесса SAPlogon.exe путь к SbisPluginClientCOM.dll.</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_COM-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%B2_C-sharp&diff=3461Отладка COM-объекта в C-sharp2018-04-13T08:05:56Z<p>Злобин Юрий: Новая страница: «=Отладка COM-объекта в C#= *Скопировать dll и pdb отлаживаемого плагина в папку откуда запускае…»</p>
<hr />
<div>=Отладка COM-объекта в C#=<br />
*Скопировать dll и pdb отлаживаемого плагина в папку откуда запускается чистовой плагин.<br />
[[Файл:Csharp COM object debug 01.png]]<br />
*Запустить чистовой плагин.<br />
#Поставить точки останова в COM-методах:<br />
[[Файл:Csharp COM object debug 02.png]]<br />
*В C# для включения отладки COM-объекта нажать Debug - Attach to process, и выбрать свой процесс , который обращается к COM-объекту (например SAPlogon.exe). Нажать Attach. Можно пробовать вызывать свои методы. <br />
Точки останова д.быть красные (активные). Если желтые (неактивные) , значит не те dll запустили. Посмотреть в ProcessExplorer для процесса SAPlogon.exe путь к SbisPluginClientCOM.dll.</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Csharp_COM_object_debug_02.png&diff=3460Файл:Csharp COM object debug 02.png2018-04-13T08:04:44Z<p>Злобин Юрий: Csharp_COM_object_debug_02.png</p>
<hr />
<div>Csharp_COM_object_debug_02.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Csharp_COM_object_debug_01.png&diff=3459Файл:Csharp COM object debug 01.png2018-04-13T08:04:25Z<p>Злобин Юрий: Csharp_COM_object_debug_01.png</p>
<hr />
<div>Csharp_COM_object_debug_01.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3387SAPPER SETTINGS - Настройки выгрузки2018-03-30T10:58:20Z<p>Злобин Юрий: /* FILE */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа (/SBIS/S_XML)===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** DOC_NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_PROG_VERSION – версия программы, по умолчанию "SAP NetConnector"<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS (S_XML_DOC)===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_XML.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3386SAPPER SETTINGS - Настройки выгрузки2018-03-30T08:58:49Z<p>Злобин Юрий: /* Заголовок документа (/SBIS/S_XML) */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа (/SBIS/S_XML)===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** DOC_NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – техн. имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_PROG_VERSION – версия программы, по умолчанию "SAP NetConnector"<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS (S_XML_DOC)===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_XML.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3172СБИС Сапер - Алгоритм работы2018-01-31T09:31:06Z<p>Злобин Юрий: </p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
Пример файла настройки:<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Комментарий": "проверяем объект V_VBAK_VKO"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
==Отправка==<br />
#На входе список отмеченных пакетов API2_PACKET<br />
#CORE->SEND_LIST_PACKET(инишка раздела акордиона, T_API2_PACKET)<br />
#[EXCHANGE_CLASS]->SEND_LIST_PACKET(инишка раздела акордиона, T_API2_PACKET)<br />
===Отправка SDK===<br />
#/sbis/cl_async_processing->run(инишка раздела акордиона, T_API2_PACKET, /SBIS/GET_PACKET) - асинхронно получаем данные пакетов<br />
#EXCHANGE_SDK->sdk_write_documents_ex - отправляем по 100<br />
===Отправка ExtSDK===<br />
#/sbis/cl_async_processing->RUN(инишка раздела акордиона, T_API2_PACKET, /SBIS/GET_PACKET) - асинхронно получаем данные пакетов<br />
##<br />
#EXCHANGE_SDK->sdk_write_documents_ex - отправляем по 100<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3171СБИС Сапёр - история изменений2018-01-26T07:52:51Z<p>Злобин Юрий: </p>
<hr />
<div>'''07-09-2017 ED7K901366''' <br />
# XSLT хранятся в БД /SBIS/XSLT (по старому). (ЗЮ)<br />
# Добавлено получение междунар данных дебитора /SBIS/CL_SAP_DATA->GET_KUNNR_BY_KUNNR. (ЗЮ)<br />
# В структуре /SBIS/S_DOC_KEY расширен номер документа до 36 символов. (ЗЮ)<br />
# ФМ /SBIS/EFG_PRINT может принимать длинный номер документа CHAR36. (ЗЮ)<br />
'''28-09-2017 ED7K901447''' <br />
# Создан ракурс ведения /SBIS/R_EXCH_TYP. (ЗЮ)<br />
# Обновлено меню SBIS в SPRO. (ЗЮ)<br />
# Ведение XSLT перенесено в STRANS, таблица /SBIS/XSLT больше не используется (пока не удалена). (ЗЮ)<br />
# Конвертация документа 301 -> 501 выполняется через SAP XSLT, а не через SBIS SDK. (ЗЮ)<br />
'''12-10-2017 ED7K901479''' <br />
# Все селекты разделены на 5 строк (select1 select2 ... select5). (ЗЮ)<br />
# Название регламента перенесли на уровень пакета. (ЗЮ)<br />
# Добавили меню в SPRO. (ЗЮ)<br />
# Создали BC Set для заполнения настроечных таблиц. (ЗЮ)<br />
# Программы печати теперь можно использовать стандартные, т.к. код вызова calc_doc перенесли в BADI. (ЗЮ)<br />
'''18-10-2017 ED7K901533''' <br />
# Конвертация при загрузке документов через XSLT из SAP, а не из БД. (ЗЮ)<br />
'''16-11-2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17-11-2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04-12-2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05-12-2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19-12-2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31-12-2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24-01-2018 ED7K901839''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3170СБИС Сапёр - история изменений2018-01-26T07:46:12Z<p>Злобин Юрий: </p>
<hr />
<div>'''16/11/2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17/11/2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04/12/2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05/12/2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19/12/2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
'''31/12/2017''' <br />
# Отправка документов через SDK производится с генерацией редакции, т.к. отправляем id если он уже есть. (ЗЮ)<br />
'''24/01/2018''' <br />
# Создан класс /SBIS/CL_EXCHANGE_PLUGIN для работы через СБИС-Плагин. (ЗЮ)<br />
# Обернул в доп. exception цикл по документам в SDK_WRITE_DOCUMENTS_EX. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0&diff=3153СБИС Сапёр - Установка2017-12-25T05:34:19Z<p>Злобин Юрий: /* Информация об организации */</p>
<hr />
<div>'''СБИС Сапёр в рекомендуемом варианте установки не вносит НИКАКИХ изменений в уже существующий функционал SAP.'''<br />
<br />
= Предоставить Опросный лист =<br />
<br />
Для оценки предполагаемого объема работ необходимо предоставить информацию об организации, а также об отправляемых и принимаемых документах:<br />
<br />
== Информация об организации ==<br />
Название организации (ИНН): ''Учебный центр Парадигма (ИНН 7604200936 КПП 760101001)''<br />
<br />
Контактное лицо (ФИО, телефон): ''Иванов Иван (4852) 26-00-00''<br />
<br />
Название системы ([http://wiki.razgovorov.ru/images/thumb/0/0d/SAP_version.png/701px-SAP_version.png Как узнать?]): ''SAP ERP 6.0 EHP7'' <br />
<br />
Версия SAP BASIS ([http://wiki.razgovorov.ru/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Sap_basis_version.png Как узнать?]): ''7.40 SP05''<br />
<br />
Юникод в SAP: Да / Нет<br />
<br />
== Отправка документов ==<br />
Для формирования XML файлов могут быть задействованы либо программы печати, либо готовые XML файлы из стандартных журналов электронных документов. Последний вариант рассматриваться не будет, т.к. является довольно редким случаем и не требует какой либо настройки.<br />
<br />
Первое, что следует сделать это определиться сколько вариантов пакетов документов требуется выгружать из SAP и какие программы печати для этого используются. Для каждого варианта пакета документов необходимо предоставить в Тензор образцы печатных форм и следующие сведения (пример):<br />
<br />
* Название вида пакета: ''Реализация готовой продукции''<br />
* Режим отправки: ''залповый (>50) / поштучный''<br />
* Требуется согласование перед отправкой: ''Да / нет''<br />
* Состав пакета:<br />
** Накладная<br />
*** Имя файла с примером печатной формы: ''Пример_торг12.pdf''<br />
*** Название программы печати: ''J_3RV_DELIV_PDF''<br />
*** Значения входных параметров для печати примера: (для J программ можно данный подраздел можно не заполнять)<br />
**** Точка входа в программу: ''ENTRY''<br />
**** nast-kappl: ''V2''<br />
**** nast-kschl: ''LD00''<br />
**** nast-parvw: ''WE''<br />
**** nast-objtype: ''LIKP''<br />
**** tnapr-sform: ''J_3RV_T12_PDF''<br />
** Счет-фактура<br />
*** Имя файла с примером печатной формы: ''Пример_фактуры.pdf''<br />
*** Название программы печати: ''ZJ_3RV_INV_A''<br />
*** Значения входных параметров для печати примера: (для J программ можно данный подраздел можно не заполнять)<br />
**** Точка входа в программу: ''ENTRY''<br />
**** nast-kappl: ''V3''<br />
**** nast-kschl: ''RD00''<br />
**** nast-parvw: ''RE''<br />
**** nast-objtype: ''VBRK''<br />
**** tnapr-sform: ''J_3RVINVOICE''<br />
<br />
Примеры печатных форм желательно сделать из того маданта в котором будет происходить настройка.<br />
<br />
== Загрузка документов в систему SAP клиента ==<br />
<br />
Для загрузки документов необходимо определиться, какие виды документов необходимо создавать в системе клиента (заказ, накладная, счет-фактура и т.д.). Предоставить список видов документов. Если в документах используются дополнительные Z-поля, необходимо предоставить их список в формате "структура-поле" (для настройки Сапера возможно потребуется расширение соответствующих структур BAPI). Например:<br />
<br />
* ''Заказ на закупку. Способ загрузки - 'BAPI_PO_CREATE1'. Из каких электронных документов требуется настроить загрузку: ТОРГ-12.''<br />
** ''ekko-zcontract - номер договора''<br />
** ''bapimepoheader-zcontract - номер договора''<br />
** ''ekpo-zkontainer - номер контейнера''<br />
** ''bapimepoitem-zkontainer - номер контейнера''<br />
** ''ekkn-zfipos - номер фин. позиции''<br />
** ''bapimepoaccount-zfipos - номер фин. позиции''<br />
* ''Поступление материалов. Способ загрузки - пакетный ввод, транзакция MB01. Из каких электронных документов требуется настроить загрузку: ТОРГ-12.''<br />
** ''mkpf-zcontract - номер договора''<br />
** ''bapi2017_gm_head_01-zcontract - номер договора''<br />
** ''mseg-zkontainer - номер контейнера''<br />
** ''bapi2017_gm_item_create-zkontainer - номер контейнера''<br />
* ''Входящий счет-фактура. Способ загрузки - 'BAPI_INCOMINGINVOICE_CREATE1'. Из каких электронных документов требуется настроить загрузку: ТОРГ-12.''<br />
** ''rbkp-zcontract - номер договора''<br />
** ''bapi_incinv_create_header-zcontract - номер договора''<br />
** ''rseg-zkontainer - номер контейнера''<br />
** ''bapi_incinv_create_item-zkontainer - номер контейнера''<br />
<br />
Пакетное создание документов. Если есть необходимость в пакетном создании документов – перечислить каждую цепочку (в цепочке могут фигурировать только документы SAP, описанные выше:<br />
* ''Из ТОРГ-12 и Счета фактуры:'' <br />
** ''Заказ + Поступление материалов + Входящая фактура''.<br />
<br />
== Пример файла опросного листа ==<br />
<br />
Пример файла опросного листа:<br />
[[Файл:Questionnaire_SAP_02.docx|Опросный лист SAP.docx]]<br />
<br />
=Подготовка сметы=<br />
На основании опросного листа составляется предварительная смета. Если она устраивает заказчика заключается договор. И клиенту передается интеграционный модуль SBIS SAPPER.<br />
<br />
=Установить модуль=<br />
<br />
'''Исполнитель''': Заказчик<br />
<br />
'''Периодичность''': один раз, в случае наличия Z разработок или BASIS 7.00 возможно потребуются повторные установки обновлений во время установки<br />
<br />
'''Необходимые права в SAP''': импорт транспортных запросов (SE01, STMS). <br />
<br />
<br />
Модуль поставляется в виде нескольких транспортных запросов, окончательный список которых определяется исходя из потребностей клиента и версии SAP. Транспортные запросы импортируются в систему SAP специалистами Заказчика в строго определенном порядке.<br />
<br />
Ниже представлен полный перечень транспортных запросов модуля в порядке их импорта:<br />
# /SBIS/CORE - основное ядро модуля<br />
# /SBIS/CORE700 - особенности реализации на BASIS 7.00<br />
# /SBIS/CORE740 - особенности реализации на BASIS 7.40 SP05 и выше.<br />
# /SBIS/GUI - графический интерфейс модуля<br />
# /SBIS/EJOURNAL - функционал отвечающий за работу через стандартные журналы электронных документов от SAP СНГ<br />
# /SBIS/ARCHIVE_EJOURNAL - функционал отвечающий за работу через стандартные журналы электронных документов от SAP СНГ<br />
# /SBIS/JBADI - пакет, содержащий реализации BADI для программ печати накладных, фактур, актов.<br />
# ZSBIS - транзакции для быстрого доступа из меню.<br />
Работа SBIS SAPPER проверена на SAP BASIS 7.02 и 7.40. Совместимость с другими, в т.ч. и более ранними версиями SAP, готовы обсудить и проверить.<br />
<br />
===Возможные проблемы при установке модуля методом импорта транспортных запросов===<br />
Наиболее частой ошибкой является импорт запросов в неправильном порядке. <br />
<br />
'''Симптомы:''' при импорте транспортных запросов система выдаёт ошибку о том, что каких-то объектов не существует или они не активированы. Есть синтаксические ошибки.<br />
<br />
'''Решение:''' <br />
*Импортировать запросы заново в правильном порядке.<br />
*Если предыдущий вариант не помог, то импортировать запросы заново в правильном порядке с опцией перезаписи существующих пакетов:<br />
[[Файл:STMS_import_options.png]]<br />
*Если предыдущий вариант не помог, то необходимо удалить из системы все объекты из пакетов /SBIS/* вместе с пакетами и заново импортировать запросы с в правильном порядке.<br />
<br />
=Подготовить эталонные документы=<br />
<br />
'''Исполнитель''': Заказчик<br />
<br />
'''Периодичность''': один раз<br />
<br />
'''Необходимые права в SAP''': Создание документов и справочников. <br />
<br />
<br />
В системе разработки создать эталонные примеры документов. Необходимо для каждого выгружаемого документа сделать один или несколько примеров. На основании этих примеров сотрудники компании Тензор будут настраивать и проверять SBIS SAPPER, в созданных примерах должны быть максимально охвачены все возможные варианты заполнения документов. <br />
<br />
Например для накладной и счет фактуры должны быть заполнены разными организациями с разными адресами Покупатель, Поставщик, Грузоотправитель и Грузополучатель. Цепочка оснований должна быть заполнена как на продакшене - максимально полно Договор - Заказа - Поставка. В табличной части присутствовать товары с разными единицами измерений и ставками НДС (если есть).<br />
<br />
После создания документов Заказчик должен передать в Тензор таблицу со списком номеров и типов созданных документов, а также примеры их печатных форм в формате PDF.<br />
<br />
=Проверить заполнение перенесенных данных=<br />
<br />
'''Исполнитель''': Заказчик<br />
<br />
'''Периодичность''': один раз<br />
<br />
'''Необходимые права в SAP''': просмотр данных (SE16). <br />
<br />
Проверить заполнение таблиц /SBIS/XSLT, /SBIS/STATUS. Они должны быть не пустые.<br />
<br />
=Добавить в программы печати режим формирования электронных документов.=<br />
<br />
'''Исполнитель''': Заказчик<br />
<br />
'''Периодичность''': один раз<br />
<br />
'''Необходимые права в SAP''': права ABAP разработчика. <br />
<br />
Для формирования XML документов модуль использует программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
Сделайте копию программ печати указанных в опросном листе. Рекомендуемый шаблон названия копии программы [ZSBIS_][Старое название программы].<br />
<br />
В простейшем случае (если в формуляре нет своей логики) доработка сводится к добавлению в программу печати (или её копию) вызова метода, который завершает программу печати после формирования электронного документа.<br />
<br />
<br />
Пример кода который необходимо добавить в каждую программу печати перед вызовом формуляра.<br />
<br />
<source lang="abap"><br />
TRY.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lv_not_print TYPE c VALUE ''.<br />
DATA cl_mapping TYPE REF TO /sbis/cl_mapping.<br />
CREATE OBJECT cl_mapping.<br />
CALL METHOD cl_mapping->calc_doc<br />
EXPORTING<br />
is_nast = nast<br />
IMPORTING<br />
ev_not_print = lv_not_print.<br />
IF lv_not_print = 'X'.<br />
EXIT.<br />
ENDIF.<br />
<br />
data cx_core type ref to /sbis/cx_core.<br />
CATCH /sbis/cx_core INTO cx_core.<br />
DATA lv_cur_prog TYPE char255.<br />
DATA lv_cur_form TYPE char255.<br />
CALL METHOD /sbis/cl_core=>get_current_progname<br />
IMPORTING<br />
ev_prog_name = lv_cur_prog<br />
ev_form_name = lv_cur_form.<br />
FIELD-SYMBOLS: <fs_exc> TYPE /sbis/s_cx_core.<br />
ASSIGN ('(/SBIS/SAPLGF_PRINT_PROG)GS_EXC') TO <fs_exc>.<br />
IF <fs_exc> IS ASSIGNED.<br />
<fs_exc>-error_msg_ext = cx_core->lv_error_msg_ext.<br />
<fs_exc>-error_msg_detail = cx_core->lv_error_msg_detail<br />
&& ` <= ` && lv_cur_prog && `->` && lv_cur_form.<br />
ENDIF.<br />
RAISE EXCEPTION TYPE /sbis/cx_core<br />
EXPORTING<br />
textid = cx_core->textid<br />
lv_error_msg_ext = cx_core->lv_error_msg_ext<br />
lv_error_msg_detail = cx_core->lv_error_msg_detail<br />
&& ` <= ` && lv_cur_prog && `->` && lv_cur_form.<br />
ENDTRY.<br />
</source><br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Предоставить доступ сотрудникам Тензора в среду разработки=<br />
<br />
'''Исполнитель''': Заказчик<br />
<br />
'''Периодичность''': один раз<br />
<br />
'''Необходимые права в SAP''': см.следующий пункт. <br />
<br />
Для настройки и проверки работы модуля необходимо предоставить доступ сотрудникам Тензора к системе разработки. Необходимы права доступа указаны в следующем пункте. <br />
<br />
Варианты предоставления доступа:<br />
<br />
* RDP, Ammyy Admin - в это случае на компьютере к которому будет предоставлен доступ должен быть установлен [https://help.sbis.ru/help/integration/sdk/ СБИС SDK].<br />
* VPN<br />
<br />
С предоставленного компьютера/соединения должны быть доступны сервисы СБИС (Минимальный вариант - url: *sbis.ru порт: 80, 443). Полный список требований к рабочему месту можно посмотреть [https://help.sbis.ru/help/start/teh_terms/ здесь].<br />
<br />
<br />
Сообщить настройки прокси при наличии.<br />
<br />
=Заполнить таблицу настроек /SBIS/SETTINGS=<br />
<br />
'''Исполнитель:''' Тензор<br />
<br />
'''Периодичность:''' многократно в период настройки.<br />
<br />
'''Необходимые права в SAP:''' <br />
*изменение SAP-документов, создание выходных документов, запуск программ (SA38), запуск ФМ (SE37), загрузка файлов, отладка программ, просмотр объектов ABAP-репозитария, объект полномочий /SBIS/0001 операция 01. <br />
*Дополнительные права только для BASIS 7.0х: Дополнительно требуются права ABAP разработчика для написания и отладки запросов построения списка, т.к. в BASIS 7.0х отсутствуют динамические запросы.<br />
*Если используются только J программы печати: Никаких прав не требуется при наличии у Тензора готовых настроек для требуемых программ печати. <br />
<br />
<br />
В процессе настройки модуля исполнитель редактирует текстовый файл в котором описаны поля таблицы /SBIS/SETTINGS в более удобном представлении. Последовательность заполнения таблицы настроек описана ниже. Текстовый файл .csv с настройками импортируется в таблицу /SBIS/SETTINGS при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
==Пункты меню для отправляемых документов==<br />
<br />
Заполняются поля таблицы /SBIS/SETTINGS отвечающие за названия пунктов меню (раздел ACCORDION). <br />
<br />
==Для каждого пункта меню написать запрос построения списка документов==<br />
<br />
Заполняются поля таблицы /SBIS/SETTINGS отвечающие за построение списков.<br />
<br />
==Для каждой программы печати описать маппинг полей==<br />
<br />
Заполняются поля таблицы /SBIS/SETTINGS отвечающие за формирование конкретных документов.<br />
<br />
По формуляру программы печати определятся имена полей в которых лежат данные. Производится первичная настройка маппинга полей. Для окончательной настройки исполнителю необходимо запустить модуль под отладкой и проверить корректность настройки, понять в каких полях находятся недостающие данные и проверить корректность работы.<br />
<br />
= Подготовка локального компьютера пользователя =<br />
<br />
На локальном компьютере пользователя необходимо установить [https://help.sbis.ru/help/integration/sdk/ СБИС SDK].<br />
<br />
= Тестирование =<br />
<br />
'''Исполнитель:''' Заказчик или Тензор<br />
<br />
'''Периодичность:''' однократно.<br />
<br />
'''Необходимые права в SAP:''' Права на создание, изменение и печать документов. Права на транзакцию ZSBIS.<br />
<br />
После установки производится тестирование Сапера:<br />
#Завести тестовые кабинеты в сервисе СБИС для Вашей балансовой единицы (БЕ) и тестового покупателя.<br />
#Создать тестовые исходящие документы для Вашей БЕ в системе SAP.<br />
#Запустить транзакцию ZSBIS в SAP. Произвести тестовую отправку документов от лица Вашей БЕ.<br />
#Создать тестовые исходящие документы в СБИС-кабинете покупателя и отправить их на имя Вашей БЕ .<br />
#Запустить транзакцию ZSBIS в SAP. Протестировать получение документов. Протестировать утверждение и отклонение документов.<br />
<br />
Если клиент предоставляет удаленный доступ по VPN, то необходимо предоставить настройки соединения к интернету. Это требуется для работы Сапера.<br />
<br />
=Перенести модуль на продуктив.=<br />
<br />
'''Исполнитель:''' Заказчик<br />
<br />
'''Периодичность:''' однократно.<br />
<br />
'''Необходимые права в SAP:''' Права на перенос транспортных запросов.<br />
<br />
После устранения всех замечаний, модуль специалистами заказчика переносится на продуктив.<br />
<br />
Необходимо включить в перенос, либо перенести отдельно данные таблицы /SBIS/SETTINGS.<br />
<br />
Лучшим вариантом при сдаче работ будет тестовая отправка документов за предыдущий период, она позволит выявить неучтенные при настройке модуля ситуации и протестировать производительность системы.<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_version.png&diff=3152Файл:SAP version.png2017-12-25T05:31:23Z<p>Злобин Юрий: SAP version.png</p>
<hr />
<div>SAP version.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C_%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BD%D1%8B%D0%B9_%D0%BB%D0%B8%D1%81%D1%82_SAP&diff=3151Как заполнить опросный лист SAP2017-12-22T08:21:39Z<p>Злобин Юрий: </p>
<hr />
<div>Какие документы (печатные формы) Вы хотите отправлять электронно?<br />
Какие документы должны отправляться вместе? это пакет - <br />
<br />
для каждого пакета делаем опросный лист, в котором записываем название основной печатной формы и остальных.<br />
<br />
Для каждой печатной формы:<br />
<br />
# запускаем на печать эталонный (какой то) документ<br />
# открываем на просмотр документ из которого она печатается, для накладной например это будет транзакция VL03N<br />
# переходим к выходным документам, и для только что распечатанного документа, смотрим вид выходного документа, роль партнера, например для накладной это LD00 и WE- записываем эти значения в опросный лист параметры запуска печатной формы (Вид выходного документа / output type)и PARVW.<br />
[[Файл:SAP_OPROSN_LIST_01_VL03N.png|1000px|center|Просмотр выходного документа]]<br />
# выходим из просмотра<br />
# заходим в транзакцию NACE<br />
# выбираем приложение для нашего типа документа (заказ - продажа V1, накладная V2, фактура - Фактурирование V3, ТТН - Транспортировка V7). [[Файл:SAP_OPROSN_LIST_02_NACE.png|1000px|center|Просмотр настроек]]<br />
# нажимаем на кнопку виды выходных документов.<br />
# получаем список. ищем в нем наш вид выходного документа (LD00). выделяем. [[Файл:SAP_OPROSN_LIST_03_NACE.png|1000px|center|Просмотр настроек]]<br />
# переходим в раздел "Подпрограммы обработки", в списке находим "Вывод на печать" - название программы, точки входа, и формуляра записываем в опросный лист. [[Файл:SAP_OPROSN_LIST_04_NACE.png|1000px|center|Просмотр настроек]] [[Файл:SAP_OPROSN_LIST_05_NACE.png|1000px|center|Просмотр настроек]]<br />
<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_OPROSN_LIST_05_NACE.png&diff=3150Файл:SAP OPROSN LIST 05 NACE.png2017-12-22T07:34:23Z<p>Злобин Юрий: Как заполнить опросный лист SAP. SAP_OPROSN_LIST_05_NACE.png</p>
<hr />
<div>Как заполнить опросный лист SAP. SAP_OPROSN_LIST_05_NACE.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_OPROSN_LIST_04_NACE.png&diff=3149Файл:SAP OPROSN LIST 04 NACE.png2017-12-22T07:33:56Z<p>Злобин Юрий: Как заполнить опросный лист SAP. SAP_OPROSN_LIST_04_NACE.png</p>
<hr />
<div>Как заполнить опросный лист SAP. SAP_OPROSN_LIST_04_NACE.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_OPROSN_LIST_03_NACE.png&diff=3148Файл:SAP OPROSN LIST 03 NACE.png2017-12-22T07:33:26Z<p>Злобин Юрий: Как заполнить опросный лист SAP. SAP_OPROSN_LIST_03_NACE.png</p>
<hr />
<div>Как заполнить опросный лист SAP. SAP_OPROSN_LIST_03_NACE.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_OPROSN_LIST_02_NACE.png&diff=3147Файл:SAP OPROSN LIST 02 NACE.png2017-12-22T07:32:45Z<p>Злобин Юрий: Как заполнить опросный лист SAP. SAP_OPROSN_LIST_02_NACE.png</p>
<hr />
<div>Как заполнить опросный лист SAP. SAP_OPROSN_LIST_02_NACE.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SAP_OPROSN_LIST_01_VL03N.png&diff=3146Файл:SAP OPROSN LIST 01 VL03N.png2017-12-22T07:32:00Z<p>Злобин Юрий: Как заполнить опросный лист SAP. SAP_OPROSN_LIST_01_VL03N.png</p>
<hr />
<div>Как заполнить опросный лист SAP. SAP_OPROSN_LIST_01_VL03N.png</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3143СБИС Сапёр - Настройка2017-12-20T07:09:07Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3142СБИС Сапёр - Настройка2017-12-20T07:08:31Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя. Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3141СБИС Сапёр - Настройка2017-12-20T07:04:03Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3140СБИС Сапёр - Настройка2017-12-19T10:20:24Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3139СБИС Сапёр - Настройка2017-12-19T10:17:37Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы и укажите путь к bat-файлу C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3138СБИС Сапёр - Настройка2017-12-19T10:17:05Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<br />
<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы и укажите путь к bat-файлу C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3137СБИС Сапёр - Настройка2017-12-19T09:19:51Z<p>Злобин Юрий: /* Настройка автоматического обновления статусов */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<br />
<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы и укажите путь к bat-файлу C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3136СБИС Сапёр - Настройка2017-12-19T09:06:31Z<p>Злобин Юрий: </p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов =<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#Создайте отдельного sap-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска.<br />
##Пример кода bat файла:<br />
<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3135СБИС Сапёр - Настройка2017-12-19T08:47:17Z<p>Злобин Юрий: /* Настройки загрузки */</p>
<hr />
<div>=Загрузка / обновление модуля=<br />
<br />
* Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
==Запустить модуль==<br />
<br />
Действие: SE38 -> /sbis/sapper<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Алгоритм работы=<br />
==Отправка==<br />
# Показ списка записей для отправки<br />
## таблице настроек получаем имя класса отвечающего за показ списка и <br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати указанную в настройках.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Загрузка==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Таблица настроек /SBIS/SETTINGS=<br />
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.<br />
<br />
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.<br />
<br />
Иерархическая структура содержит настройки:<br />
*Общие настройки модуля (ключ SBIS)<br />
**Настройки аккордеона (ключ SBIS.ACCORDION)<br />
*Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])<br />
** Запрос построения списка<br />
** PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
** PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
*Настройки формирования XML файла (ключ [Код программы печати] или версия формата)<br />
** массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML <br />
*Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])<br />
<br />
=Настройка аккордеона=<br />
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.<br />
<br />
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.<br />
<br />
Раздел аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
<br />
=Настройка реестра (для каждого реестра)=<br />
Настройки реестра отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)<br />
<br />
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"<br />
<br />
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
==Настроить запрос==<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
===BASIS 7.00 (/SBIS/CL_SAP_DATA_700)===<br />
<br />
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс".<br />
Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется<br />
<br />
Варианты:<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Указать подчиненные документы и способ их получения:<br />
Варианты:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
===BASIS 7.40 (/SBIS/CL_SAP_DATA_740)===<br />
Текст запроса содержится в параметрах:<br />
* ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"<br />
* ЗапросСпискаДокументов_select<br />
* ЗапросСпискаДокументов_from<br />
* ЗапросСпискаДокументов_groupby<br />
* ЗапросСпискаДокументов_having<br />
* ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:<br />
** GET_CHILD_VBFA - взять связанный через VBFA документ<br />
** GET_SELF - взять тот же документ, но использовать другую программу печати<br />
<br />
<br />
=Настроить вызов программы печати и маппинг её данных(для каждой программы печати)=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:<br />
* ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)<br />
* ПолучениеДанных_Метод" - способ получения данных:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
* ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)<br />
* ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")<br />
* ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")<br />
* Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.<br />
* Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK<br />
* PRINT_SEND - параметры программы печати в режиме формирования XML<br />
* PRINT_PRINT - параметры программы печати в режиме печати<br />
* FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
<br />
Структура настроек раздела FILE:<br />
* шапка документа, дата номер и т.п.<br />
**FACE - стороны документа<br />
**PARAM - дополнительных параметров документа<br />
**LINKS - данные документов оснований - договор, заказ и т.п.<br />
**ITEMS - табличная часть документа<br />
***PARAM - дополнительные параметры строки табличной части<br />
<br />
<br />
Пример параметров программы печати для PRINT_NAST<br />
* print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"<br />
* print_form - точка входа, например "ENTRY"<br />
* tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"<br />
* nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8<br />
* nast-* - другие специфичные параметры PRINT_NAST<br />
<br />
<br />
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
== Настройки аккордеона ==<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
== Настройки реестров ==<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
== Настройки маппинга для программ печати==<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
== Настройки загрузки ==<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
== Настройки справочников==<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9&diff=3134СБИС Сапёр - история изменений2017-12-19T08:34:37Z<p>Злобин Юрий: </p>
<hr />
<div>'''16/11/2017''' <br />
# Расширен класс /SBIS/CL_J_3R_INV_BADI добавлен метод J_3R_INV_BADI_INTF~UPDATE_CORR_DATA для корректировочный с-ф. (ЧВВ)<br />
# Добавлена трансформация для корр. с-ф. /SBIS/DOC301_KOR (ЧВВ)<br />
# В структуру /SBIS/S_XML_DOC добавлены поля *_CORR (ЧВВ)<br />
# Изменен /SBIS/CL_MAPPING -> CALC_FILE (добавлены итоговые суммы для корр. с-ф.) (ЧВВ)<br />
# В функциональную группу /SBIS/GF_PRINT_PROG добавлен модуль /SBIS/PRINT_PROG. (ЧВВ)<br />
# В ini на уровне меню (там где фильтры) добавлен параметр ASYNC_PROCESSING со значением X или пусто. Обработка происходит в /SBIS/CL_ASYNC_PROCESSING->RUN, если параметра нет, то асинхронно, иначе смотрим значение параметра. (ЧВВ)<br />
# Добавлена проверка на авторизацию в /SBIS/SETTINGS. (ЧВВ)<br />
'''17/11/2017'''<br />
# Добавлен показ документа для корр. счетов-фактур (/SBIS/CL_VIEW_SAP_PACKET, /SBIS/IF_TREE_API2_PACKET) и убраны суммы. (ЧВВ)<br />
# /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE. Добавлено получение текста и кода единицы измерения. (ЗЮ)<br />
'''04/12/2017'''<br />
# Добавлен параметр "smartform_name" со значением имени смартформы в реестр выгрузки. По данному параметру определяется assign_program. Программа /SBIS/UPDATE_SMARTFORM_FM. (ЧВВ)<br />
'''05/12/2017''' <br />
# В структуру /SBIS/S_FILTER_LIST_DOC добавлено поле FKART_RE (НАА)<br />
# Создан новый фильтр 306 (/SBIS/FM_FILTER_SCREEN_306) с добавлением поля для типа фактуры (НАА)<br />
# Созданы типы /SBIS/T_RNG_FKART, /SBIS/S_RNG_FKART (НАА)<br />
# Настроена проверка прав на балансовые единицы и сбытовые организации. (ЗЮ)<br />
'''19/12/2017''' <br />
# Создана транзакция обновления статусов /SBIS/UPDATE_STATUS для периодического запуска через windows-планировщик. (ЗЮ)<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3125СБИС Сапер - Алгоритм работы2017-12-13T08:23:07Z<p>Злобин Юрий: /* Состав ини-файла */</p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
Пример файла настройки:<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Комментарий": "проверяем объект V_VBAK_VKO"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3124СБИС Сапер - Алгоритм работы2017-12-13T08:22:32Z<p>Злобин Юрий: /* Состав ини-файла */</p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
Пример файла настройки:<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Комментарий": "V_VBAK_VKO"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3123СБИС Сапер - Алгоритм работы2017-12-13T08:21:34Z<p>Злобин Юрий: /* Состав ини-файла */</p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
Пример файла настройки:<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Формат": "V_VBAK_VKO - комментарий"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3122СБИС Сапер - Алгоритм работы2017-12-13T08:21:12Z<p>Злобин Юрий: /* Состав ини-файла */</p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
Пример файла настройки:<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY_EXAMPLE_BUKRS_VKORG",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Формат": "V_VBAK_VKO - комментарий"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3121СБИС Сапер - Алгоритм работы2017-12-13T08:17:55Z<p>Злобин Юрий: /* Состав ини-файла */</p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<source lang=JSON><br />
{<br />
"Имя": "CHECK_AUTHORITY",<br />
"Значение": [<br />
{<br />
"Имя": "SALES_ORG",<br />
"Значение": [<br />
{<br />
"Имя": "ПолучениеДанныхМетод",<br />
"Значение": "GET_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПроверкаМетод",<br />
"Значение": "CHECK_AUTH_VKORG"<br />
},<br />
{<br />
"Имя": "ПараметрыПроверки",<br />
"Значение": [<br />
{<br />
"Имя": "ACTVT",<br />
"Значение": "03",<br />
"Формат": "Операция"<br />
},<br />
{<br />
"Имя": "SPART",<br />
"Значение": "01",<br />
"Формат": "Сектор"<br />
},<br />
{<br />
"Имя": "VTWEG",<br />
"Значение": "Z1",<br />
"Формат": "КаналСбыта"<br />
}<br />
],<br />
"Формат": "V_VBAK_VKO - комментарий"<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3120СБИС Сапер - Алгоритм работы2017-12-13T08:05:31Z<p>Злобин Юрий: </p>
<hr />
<div>= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3119СБИС Сапер - Алгоритм работы2017-12-13T08:04:52Z<p>Злобин Юрий: /* Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY */</p>
<hr />
<div>= Алгоритм проверки прав на балансовую единицу =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит таблицы:<br />
## BUKRS_RE_01 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 01 (бухгалтерский документ: полномочия на балансовые единицы, создать).<br />
## BUKRS_RE_03 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 03 (бухгалтерский документ: полномочия на балансовые единицы, просмотреть).<br />
## VKORG_RE_01<br />
## и другие<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит поля и таблицы:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Проверка прав на БЕ при запуске Сапера ==<br />
#При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
##Сохраняем последний используемый реестр.<br />
##'''/SBIS/CL_CORE->GET_AUTHORITY''' (es_authority). Получаем список БЕ на которые есть права.<br />
##'''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
##'''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, is_authority, es_filter). Чтение фильтра из сохраненных настроек. Изменение фильтра, если он не заполнен, или изменились права.<br />
##'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##'''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT'''. Вывод списка на экран в соответствии с заданным фильтром.<br />
<br />
== Проверка прав на БЕ при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра в переменную '''LV_FILTER_FM_NAME''' и настройки фильтра.<br />
##Запуск ФМ из переменной '''LV_FILTER_FM_NAME''' для вывода окна фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (is_authority, ev_fcode, cs_filter). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на БЕ в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
<br />
= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например '''CHECK_AUTH_VKORG'''; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3118СБИС Сапер - Алгоритм работы2017-12-13T08:03:31Z<p>Злобин Юрий: /* Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY */</p>
<hr />
<div>= Алгоритм проверки прав на балансовую единицу =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит таблицы:<br />
## BUKRS_RE_01 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 01 (бухгалтерский документ: полномочия на балансовые единицы, создать).<br />
## BUKRS_RE_03 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 03 (бухгалтерский документ: полномочия на балансовые единицы, просмотреть).<br />
## VKORG_RE_01<br />
## и другие<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит поля и таблицы:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Проверка прав на БЕ при запуске Сапера ==<br />
#При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
##Сохраняем последний используемый реестр.<br />
##'''/SBIS/CL_CORE->GET_AUTHORITY''' (es_authority). Получаем список БЕ на которые есть права.<br />
##'''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
##'''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, is_authority, es_filter). Чтение фильтра из сохраненных настроек. Изменение фильтра, если он не заполнен, или изменились права.<br />
##'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##'''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT'''. Вывод списка на экран в соответствии с заданным фильтром.<br />
<br />
== Проверка прав на БЕ при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра в переменную '''LV_FILTER_FM_NAME''' и настройки фильтра.<br />
##Запуск ФМ из переменной '''LV_FILTER_FM_NAME''' для вывода окна фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (is_authority, ev_fcode, cs_filter). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на БЕ в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
<br />
= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например CHECK_AUTH_VKORG; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
##Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3117СБИС Сапер - Алгоритм работы2017-12-13T08:01:31Z<p>Злобин Юрий: /* Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY */</p>
<hr />
<div>= Алгоритм проверки прав на балансовую единицу =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит таблицы:<br />
## BUKRS_RE_01 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 01 (бухгалтерский документ: полномочия на балансовые единицы, создать).<br />
## BUKRS_RE_03 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 03 (бухгалтерский документ: полномочия на балансовые единицы, просмотреть).<br />
## VKORG_RE_01<br />
## и другие<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит поля и таблицы:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Проверка прав на БЕ при запуске Сапера ==<br />
#При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
##Сохраняем последний используемый реестр.<br />
##'''/SBIS/CL_CORE->GET_AUTHORITY''' (es_authority). Получаем список БЕ на которые есть права.<br />
##'''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
##'''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, is_authority, es_filter). Чтение фильтра из сохраненных настроек. Изменение фильтра, если он не заполнен, или изменились права.<br />
##'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##'''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT'''. Вывод списка на экран в соответствии с заданным фильтром.<br />
<br />
== Проверка прав на БЕ при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра в переменную '''LV_FILTER_FM_NAME''' и настройки фильтра.<br />
##Запуск ФМ из переменной '''LV_FILTER_FM_NAME''' для вывода окна фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (is_authority, ev_fcode, cs_filter). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на БЕ в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
<br />
= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например CHECK_AUTH_VKORG; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''(it_check_param, cs_authority).<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
#Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрийhttp://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D0%B5%D1%80_-_%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B&diff=3116СБИС Сапер - Алгоритм работы2017-12-13T07:57:40Z<p>Злобин Юрий: /* Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY */</p>
<hr />
<div>= Алгоритм проверки прав на балансовую единицу =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит таблицы:<br />
## BUKRS_RE_01 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 01 (бухгалтерский документ: полномочия на балансовые единицы, создать).<br />
## BUKRS_RE_03 - range по БЕ, для которых есть права на объект полномочий 'F_BKPF_BUK' ACTVT 03 (бухгалтерский документ: полномочия на балансовые единицы, просмотреть).<br />
## VKORG_RE_01<br />
## и другие<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит поля и таблицы:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Проверка прав на БЕ при запуске Сапера ==<br />
#При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
##Сохраняем последний используемый реестр.<br />
##'''/SBIS/CL_CORE->GET_AUTHORITY''' (es_authority). Получаем список БЕ на которые есть права.<br />
##'''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
##'''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, is_authority, es_filter). Чтение фильтра из сохраненных настроек. Изменение фильтра, если он не заполнен, или изменились права.<br />
##'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##'''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT'''. Вывод списка на экран в соответствии с заданным фильтром.<br />
<br />
== Проверка прав на БЕ при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра в переменную '''LV_FILTER_FM_NAME''' и настройки фильтра.<br />
##Запуск ФМ из переменной '''LV_FILTER_FM_NAME''' для вывода окна фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (is_authority, ev_fcode, cs_filter). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на БЕ в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_CORE->CHECK_AUTHORITY''' (is_authority, is_filter). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
<br />
= Алгоритм проверки прав на Сбытовую организацию =<br />
<br />
== Словарь данных ==<br />
# /SBIS/S_AUTHORITY - структура данных о правах. Содержит данные:<br />
## BUKRS_RE - range по Балансовым единицам, для которых есть права на объект полномочий 'F_BKPF_BUK' (бухгалтерский документ: полномочия на балансовые единицы) с заданными значениями параметров;<br />
## BUKRS_RE_X - индикатор, что данные в BUKRS_RE получены;<br />
## VKORG_RE - range по Сбытовым организациям, для которых есть права на объект полномочий 'F_VBAK_VKO' (Торговый документ: полномочия на сбытовые организации) с заданными значениями параметров;<br />
## VKORG_RE_X - индикатор, что данные в VKORG_RE получены;<br />
## и т.д.<br />
# /SBIS/S_FILTER_LIST_DOC - структура фильтра. Содержит данные:<br />
##GJAHR<br />
##BELNR<br />
##DATE_FROM<br />
##DATE_TO<br />
##TIME_FROM<br />
##TIME_TO<br />
##PAGE<br />
##PAGE_SIZE<br />
##RET_LIST_SIZE<br />
##PARTNER_ID<br />
##PARTNER_INN<br />
##PARTNER_KPP<br />
##ORG_ID<br />
##ORG_INN<br />
##ORG_KPP<br />
##STATUS_NAME<br />
##IS_RANGE - индикатор range/параметр<br />
##BLDAT_RE<br />
##KUNNR_RE<br />
##BUKRS_RE<br />
##STATU_RE<br />
##BELNR_RE<br />
##OPBEL_RE<br />
##PARTN_RE<br />
##VKORG_RE<br />
##VTWEG_RE<br />
##FKART_RE<br />
<br />
<br />
== Состав ини-файла==<br />
На уровне аккордеона для требуемого реестра опционально добавляем элемент CHECK_AUTHORITY, который содержит массив элементов - требуемых проверок.<br />
<br />
Элемент Проверка содержит:<br />
# "Имя" - название проверки, например SALES_ORG;<br />
# "Значение" - массив настроечных параметров:<br />
## "ПолучениеДанныхМетод" - содержит название метода для получения данных об имеющихся полномочиях;<br />
### "Имя" - "ПолучениеДанныхМетод";<br />
### "Значение" - например, "GET_AUTH_VKORG";<br />
## "ПроверкаМетод" - содержит название метода проверки полномочий;<br />
### "Имя" - "ПроверкаМетод";<br />
### "Значение" - например, "CHECK_AUTH_VKORG";<br />
## "ПараметрыПроверки" - содержит параметры для проверки полномочий;<br />
### "Имя" - "ПараметрыПроверки";<br />
### "Значение" - массив элементов с параметрами проверки;<br />
#### ACTVT = 03<br />
#### SPART = 01<br />
#### VTWEG = Z1<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске Сапера ==<br />
# При запуске конкретного реестра Сапера выполняется метод '''/SBIS/CL_TREE_ACCORDION->SET_CONTENT_FILTER'''. Читается сохраненный фильтр, проверяются права, запускается просмотр списка.<br />
## Сохраняем последний используемый реестр.<br />
## '''/SBIS/CL_CORE->GET_PARAM''' (iv_ini_name, iv_user_settings, et_settings). Получаем пользовательские настройки из БД.<br />
## '''/SBIS/CL_TREE_ACCORDION->READ_CONTENT_FILTER''' (iv_parent_name, it_user_settings, es_filter). Чтение фильтра из сохраненных настроек.<br />
## '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре. <br />
### Если права корректные - устанавливаем индикатор вывода списка.<br />
### Если права некорректные<br />
#### Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
#### Вызываем ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, сs_filter, cs_authority, ev_fcode).<br />
#### Заполняем фильтр, при нажатии ОК или Enter происходит проверка прав, метод '''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY'''(it_settings, is_filter, cs_authority).<br />
#### Если отменили фильтр, то индикатор вывода списка очищаем.<br />
## Проверка индикатора вывода списка.<br />
### Если установлен, запуск метода '''/SBIS/CL_TREE_ACCORDION->VIEW_CONTENT''' - вывод списка на экран в соответствии с заданным фильтром. <br />
### Если не установлен, выходим из метода.<br />
<br />
<br />
== Проверка прав на Сбытовую организацию при запуске фильтра ==<br />
#'''/SBIS/CL_TREE->HANDLE_TOOLBAR_FILTER'''. Запускается метод-обработчик при нажатии кнопки Фильтр.<br />
##Получаем из настроек реестра название ФМ для окна фильтра и настройки фильтра.<br />
##Запуск ФМ фильтра, например '''/SBIS/FM_FILTER_SCREEN_302''' (it_settings, cs_filter, cs_authority, ev_fcode). Запуск экрана, например '''0302'''.<br />
###'''PBO_0302'''. Вывод данных старого фильтра на экран.<br />
###Ввод пользователем новых данных фильтра.<br />
###'''PAI_0302'''. Проверка при нажатии ОК или Enter, введенных значений, в т.ч. прав на СбОрг в соответствии со списком разрешенных. Вывод ошибок при их возникновении.<br />
####'''PAI_0302_CHECK'''.<br />
#####'''/SBIS/CL_AUTHORITY->CHECK_AUTHORITY''' (it_settings, is_filter, cs_authority). Проверка прав на получение данных, запрашиваемых в фильтре.<br />
##При нажатии ОК и отсутствии ошибок:<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_SET_CONTENT_FILTER'''. Генерируем событие для сохранения фильтра в настройках пользователя.<br />
###'''/SBIS/CL_TREE_ACCORDION->HANDLE_UPDATE_CONTENT'''. Генерируем событие для получения списка и обновления экрана в соответствии с новыми данными фильтра.<br />
<br />
<br />
== Алгоритм метода GET_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет получение списка объектов, на которые есть полномочия у пользователя, в структуру /SBIS/S_AUTHORITY.<br />
<br />
На входе - название метода проверки IV_METHOD_NAME, которую выполняем, например CHECK_AUTH_VKORG; список параметров проверки полномочий IT_CHECK_PARAM.<br />
<br />
На изменение - разрешенные объекты в виде структуры CS_AUTHORITY.<br />
<br />
Алгоритм:<br />
# Запуск метода из IV_METHOD_NAME, например '''GET_AUTH_VKORG'''.<br />
## Получаем полный список сбытовых организаций в системе во внутр. таблицу. Цикл по внутр. таблице.<br />
## Для каждой сбытовой организации выполняем проверку полномочий, например '''V_VBAK_VKO''', с заданными параметрами IT_CHECK_PARAM, например ACTVT=03, SPART=01, VKORG=ZUCH, VTWEG=Z1.<br />
##Если проверка прошла, то добавляем запись в таблицу разрешенных объектов структуры /SBIS/S_AUTHORITY, например в VKORG_RE.<br />
##Если проверка не прошла - не добавляем.<br />
#Устанавливаем индикатор что данные получены, например в поле VKORG_RE_X структуры /SBIS/S_AUTHORITY.<br />
<br />
== Алгоритм метода CHECK_AUTHORITY класса /SBIS/CL_AUTHORITY ==<br />
Осуществляет проверку полномочий на объекты из фильтра. Например на БЕ, Сбытовую организацию.<br />
<br />
На входе - настройки аккордеона в таблице IT_SETTINGS; данные фильтра в виде структуры IS_FILTER;<br />
<br />
На выходе - исключительная ситуация с текстом ошибки, либо ее отсутствие;<br />
<br />
На изменение - список разрешенных объектов в виде структуры CS_AUTHORITY;<br />
<br />
Алгоритм<br />
# По настройкам из IT_SETTINGS получаем список проверок полномочий.<br />
# Идем по списку проверок. <br />
## Получаем из настроек IT_SETTINGS параметры <br />
### название метода получения данных полномочий, например '''GET_AUTH_VKORG'''; <br />
### название метода проверки, например '''CHECK_AUTH_VKORG'''; <br />
### список параметров проверки полномочий, например (ACTVT=03, SPART=01, VTWEG=Z1);<br />
## Выполняем метод проверки, например '''/SBIS/CL_AUTHORITY=>CHECK_AUTH_VKORG'''(is_filter, iv_method_name, it_check_param, cs_authority).<br />
### Проверяем индикатор, означающий что данные полномочий CS_AUTHORITY уже получены, например VKORG_RE_X. В случае если данные СS_AUTHORITY еще не получены, запускаем метод '''/SBIS/CL_AUTHORITY=>GET_AUTHORITY'''(iv_method_name, it_check_param, cs_authority) и получаем данные полномочий.<br />
### Проверяем что значения фильтра присутствуют в списке разрешенных. Если ошибка - выводим окно сообщения. Если все хорошо - выходим из метода.<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>Злобин Юрий