Задача
Во внешнем сервисе, интегрированном с приложением 1С, расположенным в "облаке", необходимо реализовать получение следующих данных:
- Реквизиты компании (реквизиты организации, реквизиты расчетного счета, учетная политика организации, полная учетная политика организации, организация - плательщик НДС)
- Контрагенты (список первых контрагентов, поиск контрагентов по наименованию, поиск контрагентов по ИНН)
- Номенклатура (список номенклатуры, поиск по наименованию)
- Цена номенклатуры (получение цены номенклатуры, получение всех цен номенклатуры, получение цены номенклатуры)
Пример для плагина REST Client на Visual Studio Code
### Использование REST-сервиса OData для оперативного получения данных приложений # Включает операции: # 1. Реквизиты компании # 1.1. Реквизиты организации # 1.2. Реквизиты расчетного счета # 1.3. Учетная политика организации # 1.3.1 Полная учетная политика организации # 1.3.2 Организация - плательщик НДС # # 2. Контрагенты # 2.1 Список первых контрагентов # 2.2 Поиск контрагентов по наименованию # 2.3 Поиск контрагентов по ИНН # # 3. Номенклатура # 3.1 Список номенклатуры # 3.2 Поиск по наименованию # # 4. Цена номенклатуры # 4.1 Получение цены номенклатуры из регистра ЦеныНоменклатурыДокументов # 4.1.1 Получение всех цен номенклатуры # 4.1.2 Получение цены номенклатуры # # Используемые переменные # server - адрес сервера сервиса. # app - название приложения (ea - Бухгалтерия предприятия) # tenant - область данных для проверки # authorization - авторизация на сервере # format - формат вывода информации @server = https://demo.1cfresh.com @app = ea @tenant = 34 @authorization = Basic crm 123Qwer @format = $format=json;odata=nometadata ## 1. Реквизиты компании ## Реквизиты компании состоят из реквизитов организации и реквизитов банковского счета. ## Реквизиты банковского счета следует получать от основного банковского счета ### 1.1 Реквизиты организации ### Используемые переменные ## company_keys - Список реквизитов, которые следует запросить @company_keys = Ref_Key, Description, ИНН, КПП, НаименованиеПолное, ОГРН, Префикс, ЮридическоеФизическоеЛицо, ОсновнойБанковскийСчет, ОсновнойБанковскийСчет/НомерСчета GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/Catalog_Организации?{{format}}&$expand=ОсновнойБанковскийСчет&$select={{company_keys}} Authorization: {{authorization}} ### 1.2 Реквизиты расчетного счета ### Используемые переменные ## accaunt_owner_type - тип владельца банковского счета ## accaunt_keys - список реквизитов, которые следует запросить @accaunt_owner_type = StandardODATA.Catalog_Организации @accaunt_keys = Owner, НомерСчета, ДатаОткрытия, Банк/Ref_Key, Банк/Code, Банк/Description, Банк/КоррСчет GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/Catalog_БанковскиеСчета?{{format}}&$expand=Банк&$select={{accaunt_keys}}&$filter=(Owner_Type eq '{{accaunt_owner_type}}') Authorization: {{authorization}} ### 1.3 Учетная политика организации ### Используемые переменные ## company_key_ref - guid организации, по которой запрашиваются данные @company_key_ref = fb8266b3-0bd6-11e8-b076-005056897fe1 ### 1.3.1 Полная учетная политика конкретной организации GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/InformationRegister_НастройкиСистемыНалогообложения/SliceLast(,Condition=Организация_Key eq guid'{{company_key_ref}}')?{{format}} Authorization: {{authorization}} ### 1.3.2 Организация - плательщик НДС GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/InformationRegister_НастройкиСистемыНалогообложения/SliceLast(,Condition=Организация_Key eq guid'{{company_key_ref}}')?{{format}}&$select=ПлательщикНДС Authorization: {{authorization}} ## 2. Контрагенты ## Используемые переменные # partners_keys - список реквизитов, которые следует запросить @partners_keys = Ref_Key, Description, ИНН, КПП, РегистрационныйНомер ### 2.1. Список первых контрагентов ### Используемые переменные ## partners_skip - начиная с какого элемента следует выбирать контрагентов ## partners_top - количество контрагентов в выборке @partners_skip = 0 @partners_top = 5 GET {{server}}/a/{{app}}/{{tenant}}/odata/standard.odata/Catalog_Контрагенты?{{format}}&$orderby=Description&$select={{partners_keys}}&$top={{partners_top}}&$skip={{partners_skip}}&$filter=not (IsFolder) Authorization: {{authorization}} ### 2.2 Поиск контрагентов по наименованию ### Используемые переменные ## partners_desc_filter - значение поиска по наименованию. Символ "%" означает любую последовательность символов @partners_desc_filter='ИФНС%' GET {{server}}/a/{{app}}/{{tenant}}/odata/standard.odata/Catalog_Контрагенты?{{format}}&$select={{partners_keys}}&$filter=like(Description, {{partners_desc_filter}}) Authorization: {{authorization}} ### 2.3 Поиск контрагентов по ИНН ### Используемые переменные ## partners_inn_filter - значение поиска по ИНН. @partners_inn_filter = 7799543097 GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/Catalog_Контрагенты?{{format}}&$select={{partners_keys}}&$filter=(ИНН eq '{{partners_inn_filter}}') Authorization: {{authorization}} ## 3. Номенклатура ## Используемые переменные # items_keys - список реквизитов, которые следует запросить @items_keys = Ref_Key, Description, НаименованиеПолное, ЕдиницаИзмерения/Code, ЕдиницаИзмерения/Description ### 3.1 Список номенклатуры ### Используемые переменные ## items_skip - начиная с какого элемента следует выбирать номенклатуру ## items_top - количество номенклатуры в выборке @items_skip = 0 @items_top = 5 GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/Catalog_Номенклатура?{{format}}&$expand=ЕдиницаИзмерения&$select={{items_keys}}&$top={{items_top}}&$skip={{items_skip}}&$filter=not (IsFolder)&$orderby=Description Authorization: {{authorization}} ### 3.2 Поиск по наименованию ### Используемые переменные ## items_desc_filter - значение поиска по наименованию. Символ "%" означает любую последовательность символов @items_desc_filter = еще од% GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/Catalog_Номенклатура?{{format}}&$expand=ЕдиницаИзмерения&$select={{items_keys}}&$filter=like(Description, '{{items_desc_filter}}') Authorization: {{authorization}} ## 4. Цена номенклатуры ## ### 4.1 Получение цены номенклатуры из регистра сведений ЦеныНоменклатурыДокументов ### В информационной базе могут использоваться цены номенклатуры автоматически записываемые в документах. ### Для выставления счетов следует использовать продажные цены. ### ### Используемые переменные: ## type_price - тип цены. Это фиксированное перечисление со значениями "ПоЗакупочнымЦенам" и "ПоПродажнымЦенам" @type_price = ПоПродажнымЦенам #### 4.1.1 Получение всех цен номенклатуры GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/InformationRegister_ЦеныНоменклатурыДокументов?{{format}}&$expand=Валюта, Номенклатура&$select=Номенклатура/Description,Номенклатура/Ref_Key, Цена, ЦенаВключаетНДС, Валюта/Description, Валюта/Code&$filter=СпособЗаполненияЦены eq '{{type_price}}' Authorization: {{authorization}} #### 4.1.2 Получение цены конкретной номенклатуры ### ### Используемые переменные ### item_key_ref - guid номенклатуры, для которой запрашивается цена @item_key_ref = be634a51-0bd9-11e8-b076-005056897fe1 GET {{server}}/a/{{app}}/{{tenant}}//odata/standard.odata/InformationRegister_ЦеныНоменклатурыДокументов(Номенклатура_Key=guid'{{item_key_ref}}',СпособЗаполненияЦены='{{type_price}}')?{{format}}&$select=Цена, ЦенаВключаетНДС Authorization: {{authorization}}