1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-28 09:08:38 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot) 2024-10-09 16:35:56 +03:00
parent b6af2b4a73
commit bd90b054c9
36 changed files with 6047 additions and 5084 deletions

View File

@ -882,6 +882,14 @@ def test_cdek(){
powershell encoding: 'UTF-8', script:'./oint.exe cdek GetToken --account "test" --pass "test" --testapi "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe cdek CreateOrder --token "test" --order "test" --ostore "test" --testapi "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe cdek GetOrderDescription --empty "test" --required "test" --ostore "test" --debug --test '
}
}

View File

@ -882,6 +882,14 @@ def test_cdek(){
powershell encoding: 'UTF-8', script:'./oint.exe cdek ПолучитьТокен --account "test" --pass "test" --testapi "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe cdek СоздатьЗаказ --token "test" --order "test" --ostore "test" --testapi "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe cdek ПолучитьОписаниеЗаказа --empty "test" --required "test" --ostore "test" --debug --test '
}
}

View File

@ -602,6 +602,17 @@ pipeline {
}
}
stage('Testing-CDEK') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_Tests.os" "CdekAPI_CommonMethods"'
}
}
}
}
post{
always{

View File

@ -610,6 +610,10 @@ pipeline {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "СдэкАПИ_ОбщиеМетоды"'
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "СдэкАПИ_РаботаСЗаказами"'
}
}
}

View File

@ -0,0 +1 @@
oint cdek CreateOrder --token %token% --order %order% --ostore %ostore% --testapi %testapi%

View File

@ -0,0 +1 @@
oint cdek GetOrderDescription --empty %empty% --required %required% --ostore %ostore%

View File

@ -0,0 +1 @@
 Result = OPI_CDEK.GetOrderDescription();

View File

@ -37,7 +37,7 @@ Method at API documentation: [Client authorization](https://api-docs.cdek.ru/299
```sh title="CLI command example"
oint cdek GetToken --account "wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP" --pass "RmAmgvSgSl..." --testapi %testapi%
oint cdek GetToken --account "wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP" --pass "RmAmgvSgSl..." --testapi %testapi%
```

View File

@ -0,0 +1,44 @@
---
sidebar_position: 1
---
# Create order
Creates an order based on field descriptions
`Function CreateOrder(Val Token, Val OrderDescription, Val OnlineStore = False, TestAPI = False) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| Token | --token | String | Auth token |
| OrderDescription | --order | Structure of KeyAndValue | Set of order fields. See GetOrderDescription |
| OnlineStore | --ostore | Boolean | Flag of Online store order type |
| TestAPI | --testapi | Boolean | Flag to use test API for requests |
Returns: Map Of KeyAndValue - serialized JSON response from CDEK
<br/>
:::tip
Method at API documentation: [Order registration](https://api-docs.cdek.ru/29923926.html)
:::
<br/>
```bsl title="Code example"
```
```sh title="CLI command example"
oint cdek CreateOrder --token %token% --order %order% --ostore %ostore% --testapi %testapi%
```
```json title="Result"
```

View File

@ -0,0 +1,45 @@
---
sidebar_position: 2
---
# Get order description
Gets the layout of order for the CreateOrder function
`Function GetOrderDescription(Val Clear = False, Val RequiredOnly = False, Val OnlineStore = False) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| Clear | --empty | Boolean | True > structure with empty valuse, False > field descriptions at values |
| RequiredOnly | --required | Boolean | True > only required fields will be in the set |
| OnlineStore | --ostore | Boolean | Flag of including fields in the layout exclusively for online store orders |
Returns: Structure of KeyAndValue - Fields structure
<br/>
:::tip
Required fields may depend on the type of order or nesting. Be sure to read the CDEK documentation
Field descriptions in the documentation: [Order registration](https://api-docs.cdek.ru/29923926.html)
:::
<br/>
```bsl title="Code example"
Result = OPI_CDEK.GetOrderDescription();
```
```sh title="CLI command example"
oint cdek GetOrderDescription --empty %empty% --required %required% --ostore %ostore%
```
```json title="Result"
```

View File

@ -0,0 +1,4 @@
{
"label": "Orders managment",
"position": "3"
}

View File

@ -0,0 +1 @@
oint cdek ПолучитьОписаниеЗаказа --empty %empty% --required %required% --ostore %ostore%

View File

@ -0,0 +1 @@
oint cdek СоздатьЗаказ --token %token% --order %order% --ostore %ostore% --testapi %testapi%

View File

@ -0,0 +1 @@
 Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();

View File

@ -37,7 +37,7 @@ sidebar_position: 1
```sh title="Пример команды CLI"
oint cdek ПолучитьТокен --account "wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP" --pass "RmAmgvSgSl..." --testapi %testapi%
oint cdek ПолучитьТокен --account "wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP" --pass "RmAmgvSgSl..." --testapi %testapi%
```

View File

@ -0,0 +1,44 @@
---
sidebar_position: 1
---
# Создать заказ
Создает заказ по описанию полей
`Функция СоздатьЗаказ(Знач Токен, Знач ОписаниеЗаказа, Знач ИнтернетМагазин = Ложь, ТестовыйAPI = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| Токен | --token | Строка | Токен авторизации |
| ОписаниеЗаказа | --order | Структура Из КлючИЗначение | Набор полей заказа. См. ПолучитьОписаниеЗаказа |
| ИнтернетМагазин | --ostore | Булево | Признак типа заказа Интернет магазин |
| ТестовыйAPI | --testapi | Булево | Флаг использования API для тестовых запросов |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
<br/>
:::tip
Метод в документации API: [Регистрация заказа](https://api-docs.cdek.ru/29923926.html)
:::
<br/>
```bsl title="Пример кода"
```
```sh title="Пример команды CLI"
oint cdek СоздатьЗаказ --token %token% --order %order% --ostore %ostore% --testapi %testapi%
```
```json title="Результат"
```

View File

@ -0,0 +1,45 @@
---
sidebar_position: 2
---
# Получить описание заказа
Получает макет для создания заказа в функции СоздатьЗаказ
`Функция ПолучитьОписаниеЗаказа(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь, Знач ИнтернетМагазин = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| Пустая | --empty | Булево | Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей |
| ТолькоОбязательные | --required | Булево | Истина > в макете будут только обязательные поля |
| ИнтернетМагазин | --ostore | Булево | Признак включения в макет полей исключительно для заказо Интернет магазина |
Возвращаемое значение: Структура Из КлючИЗначение - Структура полей
<br/>
:::tip
Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
Описания полей в документации: [Регистрация заказа](https://api-docs.cdek.ru/29923926.html)
:::
<br/>
```bsl title="Пример кода"
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
```
```sh title="Пример команды CLI"
oint cdek ПолучитьОписаниеЗаказа --empty %empty% --required %required% --ostore %ostore%
```
```json title="Результат"
```

View File

@ -0,0 +1,4 @@
{
"label": "Работа с заказми",
"position": "3"
}

File diff suppressed because it is too large Load Diff

View File

@ -75,6 +75,241 @@ EndFunction
#EndRegion
#Region OrdersManagment
// Create order
// Creates an order based on field descriptions
//
// Note
// Method at API documentation: [Order registration](@api-docs.cdek.ru/29923926.html)
//
// Parameters:
// Token - String - Auth token - token
// OrderDescription - Structure of KeyAndValue - Set of order fields. See GetOrderDescription - order
// OnlineStore - Boolean - Flag of Online store order type - ostore
// TestAPI - Boolean - Flag to use test API for requests - testapi
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from CDEK
Function CreateOrder(Val Token, Val OrderDescription, Val OnlineStore = False, TestAPI = False) Export
OPI_TypeConversion.GetCollection(OrderDescription);
OPI_TypeConversion.GetBoolean(OnlineStore);
URL = FormURL("/orders", TestAPI);
Parameters = New Structure;
For Each OrderField In OrderDescription Do
OPI_Tools.AddField(OrderField.Key, OrderField.Value, "Current", Parameters);
EndDo;
OPI_Tools.AddField("type", ?(OnlineStore, 1, 2), "Number", Parameters);
Response = OPI_Tools.Post(URL, OrderDescription, , False);
Return Response;
EndFunction
// Get order description
// Gets the layout of order for the CreateOrder function
//
// Note
// Required fields may depend on the type of order or nesting. Be sure to read the CDEK documentation
// Field descriptions in the documentation: [Order registration](@api-docs.cdek.ru/29923926.html)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
// RequiredOnly - Boolean - True > only required fields will be in the set - required
// OnlineStore - Boolean - Flag of including fields in the layout exclusively for online store orders - ostore
//
// Returns:
// Structure of KeyAndValue - Fields structure
Function GetOrderDescription(Val Clear = False, Val RequiredOnly = False, Val OnlineStore = False) Export
OPI_TypeConversion.GetBoolean(Clear);
OPI_TypeConversion.GetBoolean(RequiredOnly);
OPI_TypeConversion.GetBoolean(OnlineStore);
OrderStructure = New Structure;
OrderStructure.Insert("tariff_code" , "<Tariff code)>");
RecipientStructure = New Structure;
RecipientStructure.Insert("company" , "<Company name>");
RecipientStructure.Insert("name" , "<Full name of contact person>");
RecipientStructure.Insert("passport_series" , "<Passport series>");
RecipientStructure.Insert("passport_number" , "<Passport number>");
RecipientStructure.Insert("passport_date_of_issue", "<Date of issue of passport>");
RecipientStructure.Insert("passport_organization" , "<Passport issuing authority>");
RecipientStructure.Insert("tin" , "<TIN>");
RecipientStructure.Insert("passport_date_of_birth", "<Birth date>");
RecipientStructure.Insert("email" , "<Email as RFC 2822>");
RecipientStructure.Insert("contragent_type" , "<Sender type: LEGAL_ENTITY, INDIVIDUAL >");
PhonesArray = New Array;
PhoneStructure = New Structure;
PhoneStructure.Insert("number" , "<Phone number>");
PhoneStructure.Insert("additional", "<Additional information (extension number)>");
PhonesArray.Add(PhoneStructure);
RecipientStructure.Insert("phones", PhonesArray);
OrderStructure.Insert("recipient", RecipientStructure);
PackagesArray = New Array;
PackageStructure = New Structure;
PackageStructure.Insert("number" , "<Package number>");
PackageStructure.Insert("weight" , "<Total weight (grams)>");
PackageStructure.Insert("length" , "<Package Dimensions. Length (cm)>");
PackageStructure.Insert("width" , "<Package Dimensions. Width (cm)>");
PackageStructure.Insert("height" , "<Package Dimensions. Height (cm)>");
PackageStructure.Insert("comment", "<Package withommentary>");
ItemsArray = New Array;
ItemStructure = New Structure;
ItemStructure.Insert("name" , "<Product name>");
ItemStructure.Insert("ware_key", "<Product ID/article>");
ItemStructure.Insert("marking" , "<Product marking>");
PaymentStructure = New Structure;
PaymentStructure.Insert("value" , "<Amount of cash on delivery, including VAT>");
PaymentStructure.Insert("vat_sum" , "<VAT amount>");
PaymentStructure.Insert("vat_rate", "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
ItemStructure.Insert("payment" , PaymentStructure);
ItemStructure.Insert("cost" , "<Declared product price>");
ItemStructure.Insert("weight" , "<Weight (per unit, grams)>");
ItemStructure.Insert("weight_gross", "<Gross weight>");
ItemStructure.Insert("amount" , "<Number of units (pcs)>");
ItemStructure.Insert("name_i18n" , "<Foreign language name>");
ItemStructure.Insert("brand" , "<Brand in a foreign language>");
ItemStructure.Insert("country_code", "<Country code of the product manufacturer as ISO_3166-1_alpha-2>");
ItemStructure.Insert("material" , "<Material code>");
ItemStructure.Insert("wifi_gsm" , "<Contains wifi or gsm>");
ItemStructure.Insert("url" , "<Link to the website of the online store with the description of the product>");
ItemsArray.Add(ItemStructure);
PackageStructure.Insert("items", ItemsArray);
PackagesArray.Add(PackageStructure);
OrderStructure.Insert("packages", PackagesArray);
If Not RequiredOnly Then
OrderStructure.Insert("additional_order_types" , "<Additional order type>");
OrderStructure.Insert("comment" , "<Order comment>");
OrderStructure.Insert("developer_key" , "<Developer key (for module developers)>");
OrderStructure.Insert("shipment_point" , "<Code of CDEK POZ for self carriage by the customer>");
OrderStructure.Insert("delivery_point" , "<Code of CDEK office to which the package will be delivered>");
OrderStructure.Insert("date_invoice" , "<Invoice date>");
OrderStructure.Insert("shipper_name" , "<Shipper>");
OrderStructure.Insert("shipper_address" , "<Shippers address>");
SenderStructure = New Structure;
SenderStructure.Insert("company" , "<Company name>");
SenderStructure.Insert("name" , "<Full name of contact person>");
SenderStructure.Insert("email" , "<Email for alerts as RFC 2822>");
SenderStructure.Insert("passport_series" , "<Passport series>");
SenderStructure.Insert("passport_number" , "<Passport number>");
SenderStructure.Insert("passport_date_of_issue" , "<Date of issue of passport>");
SenderStructure.Insert("passport_organization" , "<Passport issuing authority>");
SenderStructure.Insert("tin" , "<TIN>");
SenderStructure.Insert("passport_date_of_birth" , "<Birth date>");
SenderStructure.Insert("contragent_type" , "<Sender type: LEGAL_ENTITY, INDIVIDUAL >");
PhonesArray = New Array;
PhoneStructure = New Structure;
PhoneStructure.Insert("number" , "<Phone number>");
PhoneStructure.Insert("additional", "<Additional information (extension number)>");
PhonesArray.Add(PhoneStructure);
SenderStructure.Insert("phones", PhonesArray);
OrderStructure.Insert("sender", SenderStructure);
AddressStructure = New Structure;
AddressStructure.Insert("code" , "<CDEC locality code>");
AddressStructure.Insert("fias_guid" , "<Unique FIAS identifier>");
AddressStructure.Insert("postal_code" , "<Postal code>");
AddressStructure.Insert("longitude" , "<Longitude>");
AddressStructure.Insert("latitude" , "<Latitude>");
AddressStructure.Insert("country_code", "<Code withтраны in format ISO_3166-1_alpha-2>");
AddressStructure.Insert("region" , "<Region name, specifying parameter for the city field>");
AddressStructure.Insert("region_code" , "<CDEK region code, specifying parameter for the city field>");
AddressStructure.Insert("sub_region" , "<Name of the region's district, specifying parameter for the region field>");
AddressStructure.Insert("city" , "<City name, specifying parameter for postal_code>");
AddressStructure.Insert("kladr_code" , "<CLADR code>");
AddressStructure.Insert("address" , "<Address string >");
OrderStructure.Insert("from_location", AddressStructure);
OrderStructure.Insert("to_location" , AddressStructure);
ServiceStructure = New Structure;
ServiceStructure.Insert("code" , "<Type of additional service>");
ServiceStructure.Insert("parameter", "<Additional service parameter>");
OrderStructure.Insert("services" , ServiceStructure);
OrderStructure.Insert("print" , "<Need to generate a document>");
OrderStructure.Insert("is_client_return" , "<Customer refund>");
OrderStructure.Insert("accompanying_number", "<Number of the accompanying consignment note>");
OrderStructure.Insert("widget_token" , "<Token received from widget.cdek.ru>");
If OnlineStore Then
OrderStructure.Insert("number", "<Order number in the customers system (uuid, if not filled in)>");
CollectionStructure = New Structure;
CollectionStructure.Insert("value" , "<Amount of additional fee (including VAT)>");
CollectionStructure.Insert("vat_sum" , "<VAT amount>");
CollectionStructure.Insert("vat_rate", "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
OrderStructure.Insert("delivery_recipient_cost", CollectionStructure);
ThresholdsArray = New Array;
ThresholdStructure = New Structure;
ThresholdStructure.Insert("threshold", "<Threshold for the value of goods in whole units of currency>");
ThresholdStructure.Insert("sum" , "<Additional fee for delivery of products, the total value of which is in the range>");
ThresholdStructure.Insert("vat_sum" , "<VAT included in additional delivery charge>");
ThresholdStructure.Insert("vat_rate" , "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
ThresholdsArray.Add(ThresholdStructure);
OrderStructure.Insert("delivery_recipient_cost_adv", ThresholdsArray);
SellerStructure = New Structure;
SellerStructure.Insert("name" , "<Name of the true seller>");
SellerStructure.Insert("inn" , "<TIN of the true seller>");
SellerStructure.Insert("phone" , "<The true sellers phone number>");
SellerStructure.Insert("ownership_form", "<Form of ownership code>");
SellerStructure.Insert("address" , "<The address of the true seller>");
OrderStructure.Insert("seller", SellerStructure);
EndIf;
EndIf;
If Clear Then
OrderStructure = OPI_Tools.ClearCollectionRecursively(OrderStructure);
EndIf;
//@skip-check constructor-function-return-section
Return OrderStructure;
EndFunction
#EndRegion
#EndRegion
#Region Private

View File

@ -1996,6 +1996,15 @@ Procedure CdekAPI_CommonMethods() Export
EndProcedure
Procedure CDEKAPI_OrdersManagment() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token" , TestParameters);
CDEK_GetOrderDescription(TestParameters);
EndProcedure
#EndRegion
#EndRegion
@ -13626,6 +13635,22 @@ Procedure CDEK_GetToken(FunctionParameters)
EndProcedure
Procedure CDEK_GetOrderDescription(FunctionParameters)
Result = OPI_CDEK.GetOrderDescription();
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetOrderDescription", "CDEK");
OPI_TestDataRetrieval.Check_Structure(Result);
Result = OPI_CDEK.GetOrderDescription(True);
OPI_TestDataRetrieval.WriteLog(Result, "GetOrderDescription (Empty)", "CDEK");
OPI_TestDataRetrieval.Check_Structure(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -213,7 +213,8 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
NewTest(TestTable, "NC_FilesManagment" , "Files managment" , Neocities);
NewTest(TestTable, "NC_DataRetrieving" , "Data retrieving" , Neocities);
NewTest(TestTable, "CdekAPI_CommonMethods" , "CommonMethods" , Cdek);
NewTest(TestTable, "CdekAPI_CommonMethods" , "Common methods" , Cdek);
NewTest(TestTable, "CDEKAPI_OrdersManagment" , "Orders managment" , Cdek);
Return TestTable;

View File

@ -425,6 +425,43 @@ Function ConvertDataWithSizeRetrieval(Data, Val MinimumStreamSize = 0) Export
EndFunction
Function ClearCollectionRecursively(Val Collection) Export
ValeType = TypeOf(Collection);
If ValeType = Type("Structure") Or ValeType = Type("Map") Then
For Each CollectionItem In Collection Do
ClearField = ClearCollectionRecursively(CollectionItem.Value);
Collection[CollectionItem.Key] = ClearField;
EndDo;
ElsIf ValeType = Type("Array") Then
Collection_ = New Array;
For Each CollectionItem In Collection Do
ClearField = ClearCollectionRecursively(CollectionItem);
Collection_.Add(ClearField);
EndDo;
Collection = Collection_;
Else
Collection = "";
EndIf;
Return Collection;
EndFunction
Procedure ValueToArray(Value) Export
Value_ = New Array;

View File

@ -75,6 +75,241 @@ EndFunction
#EndRegion
#Region OrdersManagment
// Create order
// Creates an order based on field descriptions
//
// Note
// Method at API documentation: [Order registration](@api-docs.cdek.ru/29923926.html)
//
// Parameters:
// Token - String - Auth token - token
// OrderDescription - Structure of KeyAndValue - Set of order fields. See GetOrderDescription - order
// OnlineStore - Boolean - Flag of Online store order type - ostore
// TestAPI - Boolean - Flag to use test API for requests - testapi
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from CDEK
Function CreateOrder(Val Token, Val OrderDescription, Val OnlineStore = False, TestAPI = False) Export
OPI_TypeConversion.GetCollection(OrderDescription);
OPI_TypeConversion.GetBoolean(OnlineStore);
URL = FormURL("/orders", TestAPI);
Parameters = New Structure;
For Each OrderField In OrderDescription Do
OPI_Tools.AddField(OrderField.Key, OrderField.Value, "Current", Parameters);
EndDo;
OPI_Tools.AddField("type", ?(OnlineStore, 1, 2), "Number", Parameters);
Response = OPI_Tools.Post(URL, OrderDescription, , False);
Return Response;
EndFunction
// Get order description
// Gets the layout of order for the CreateOrder function
//
// Note
// Required fields may depend on the type of order or nesting. Be sure to read the CDEK documentation
// Field descriptions in the documentation: [Order registration](@api-docs.cdek.ru/29923926.html)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
// RequiredOnly - Boolean - True > only required fields will be in the set - required
// OnlineStore - Boolean - Flag of including fields in the layout exclusively for online store orders - ostore
//
// Returns:
// Structure of KeyAndValue - Fields structure
Function GetOrderDescription(Val Clear = False, Val RequiredOnly = False, Val OnlineStore = False) Export
OPI_TypeConversion.GetBoolean(Clear);
OPI_TypeConversion.GetBoolean(RequiredOnly);
OPI_TypeConversion.GetBoolean(OnlineStore);
OrderStructure = New Structure;
OrderStructure.Insert("tariff_code" , "<Tariff code)>");
RecipientStructure = New Structure;
RecipientStructure.Insert("company" , "<Company name>");
RecipientStructure.Insert("name" , "<Full name of contact person>");
RecipientStructure.Insert("passport_series" , "<Passport series>");
RecipientStructure.Insert("passport_number" , "<Passport number>");
RecipientStructure.Insert("passport_date_of_issue", "<Date of issue of passport>");
RecipientStructure.Insert("passport_organization" , "<Passport issuing authority>");
RecipientStructure.Insert("tin" , "<TIN>");
RecipientStructure.Insert("passport_date_of_birth", "<Birth date>");
RecipientStructure.Insert("email" , "<Email as RFC 2822>");
RecipientStructure.Insert("contragent_type" , "<Sender type: LEGAL_ENTITY, INDIVIDUAL >");
PhonesArray = New Array;
PhoneStructure = New Structure;
PhoneStructure.Insert("number" , "<Phone number>");
PhoneStructure.Insert("additional", "<Additional information (extension number)>");
PhonesArray.Add(PhoneStructure);
RecipientStructure.Insert("phones", PhonesArray);
OrderStructure.Insert("recipient", RecipientStructure);
PackagesArray = New Array;
PackageStructure = New Structure;
PackageStructure.Insert("number" , "<Package number>");
PackageStructure.Insert("weight" , "<Total weight (grams)>");
PackageStructure.Insert("length" , "<Package Dimensions. Length (cm)>");
PackageStructure.Insert("width" , "<Package Dimensions. Width (cm)>");
PackageStructure.Insert("height" , "<Package Dimensions. Height (cm)>");
PackageStructure.Insert("comment", "<Package withommentary>");
ItemsArray = New Array;
ItemStructure = New Structure;
ItemStructure.Insert("name" , "<Product name>");
ItemStructure.Insert("ware_key", "<Product ID/article>");
ItemStructure.Insert("marking" , "<Product marking>");
PaymentStructure = New Structure;
PaymentStructure.Insert("value" , "<Amount of cash on delivery, including VAT>");
PaymentStructure.Insert("vat_sum" , "<VAT amount>");
PaymentStructure.Insert("vat_rate", "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
ItemStructure.Insert("payment" , PaymentStructure);
ItemStructure.Insert("cost" , "<Declared product price>");
ItemStructure.Insert("weight" , "<Weight (per unit, grams)>");
ItemStructure.Insert("weight_gross", "<Gross weight>");
ItemStructure.Insert("amount" , "<Number of units (pcs)>");
ItemStructure.Insert("name_i18n" , "<Foreign language name>");
ItemStructure.Insert("brand" , "<Brand in a foreign language>");
ItemStructure.Insert("country_code", "<Country code of the product manufacturer as ISO_3166-1_alpha-2>");
ItemStructure.Insert("material" , "<Material code>");
ItemStructure.Insert("wifi_gsm" , "<Contains wifi or gsm>");
ItemStructure.Insert("url" , "<Link to the website of the online store with the description of the product>");
ItemsArray.Add(ItemStructure);
PackageStructure.Insert("items", ItemsArray);
PackagesArray.Add(PackageStructure);
OrderStructure.Insert("packages", PackagesArray);
If Not RequiredOnly Then
OrderStructure.Insert("additional_order_types" , "<Additional order type>");
OrderStructure.Insert("comment" , "<Order comment>");
OrderStructure.Insert("developer_key" , "<Developer key (for module developers)>");
OrderStructure.Insert("shipment_point" , "<Code of CDEK POZ for self carriage by the customer>");
OrderStructure.Insert("delivery_point" , "<Code of CDEK office to which the package will be delivered>");
OrderStructure.Insert("date_invoice" , "<Invoice date>");
OrderStructure.Insert("shipper_name" , "<Shipper>");
OrderStructure.Insert("shipper_address" , "<Shippers address>");
SenderStructure = New Structure;
SenderStructure.Insert("company" , "<Company name>");
SenderStructure.Insert("name" , "<Full name of contact person>");
SenderStructure.Insert("email" , "<Email for alerts as RFC 2822>");
SenderStructure.Insert("passport_series" , "<Passport series>");
SenderStructure.Insert("passport_number" , "<Passport number>");
SenderStructure.Insert("passport_date_of_issue" , "<Date of issue of passport>");
SenderStructure.Insert("passport_organization" , "<Passport issuing authority>");
SenderStructure.Insert("tin" , "<TIN>");
SenderStructure.Insert("passport_date_of_birth" , "<Birth date>");
SenderStructure.Insert("contragent_type" , "<Sender type: LEGAL_ENTITY, INDIVIDUAL >");
PhonesArray = New Array;
PhoneStructure = New Structure;
PhoneStructure.Insert("number" , "<Phone number>");
PhoneStructure.Insert("additional", "<Additional information (extension number)>");
PhonesArray.Add(PhoneStructure);
SenderStructure.Insert("phones", PhonesArray);
OrderStructure.Insert("sender", SenderStructure);
AddressStructure = New Structure;
AddressStructure.Insert("code" , "<CDEC locality code>");
AddressStructure.Insert("fias_guid" , "<Unique FIAS identifier>");
AddressStructure.Insert("postal_code" , "<Postal code>");
AddressStructure.Insert("longitude" , "<Longitude>");
AddressStructure.Insert("latitude" , "<Latitude>");
AddressStructure.Insert("country_code", "<Code withтраны in format ISO_3166-1_alpha-2>");
AddressStructure.Insert("region" , "<Region name, specifying parameter for the city field>");
AddressStructure.Insert("region_code" , "<CDEK region code, specifying parameter for the city field>");
AddressStructure.Insert("sub_region" , "<Name of the region's district, specifying parameter for the region field>");
AddressStructure.Insert("city" , "<City name, specifying parameter for postal_code>");
AddressStructure.Insert("kladr_code" , "<CLADR code>");
AddressStructure.Insert("address" , "<Address string >");
OrderStructure.Insert("from_location", AddressStructure);
OrderStructure.Insert("to_location" , AddressStructure);
ServiceStructure = New Structure;
ServiceStructure.Insert("code" , "<Type of additional service>");
ServiceStructure.Insert("parameter", "<Additional service parameter>");
OrderStructure.Insert("services" , ServiceStructure);
OrderStructure.Insert("print" , "<Need to generate a document>");
OrderStructure.Insert("is_client_return" , "<Customer refund>");
OrderStructure.Insert("accompanying_number", "<Number of the accompanying consignment note>");
OrderStructure.Insert("widget_token" , "<Token received from widget.cdek.ru>");
If OnlineStore Then
OrderStructure.Insert("number", "<Order number in the customers system (uuid, if not filled in)>");
CollectionStructure = New Structure;
CollectionStructure.Insert("value" , "<Amount of additional fee (including VAT)>");
CollectionStructure.Insert("vat_sum" , "<VAT amount>");
CollectionStructure.Insert("vat_rate", "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
OrderStructure.Insert("delivery_recipient_cost", CollectionStructure);
ThresholdsArray = New Array;
ThresholdStructure = New Structure;
ThresholdStructure.Insert("threshold", "<Threshold for the value of goods in whole units of currency>");
ThresholdStructure.Insert("sum" , "<Additional fee for delivery of products, the total value of which is in the range>");
ThresholdStructure.Insert("vat_sum" , "<VAT included in additional delivery charge>");
ThresholdStructure.Insert("vat_rate" , "<VAT rate (value - 0, 10, 12, 20, null - no VAT)>");
ThresholdsArray.Add(ThresholdStructure);
OrderStructure.Insert("delivery_recipient_cost_adv", ThresholdsArray);
SellerStructure = New Structure;
SellerStructure.Insert("name" , "<Name of the true seller>");
SellerStructure.Insert("inn" , "<TIN of the true seller>");
SellerStructure.Insert("phone" , "<The true sellers phone number>");
SellerStructure.Insert("ownership_form", "<Form of ownership code>");
SellerStructure.Insert("address" , "<The address of the true seller>");
OrderStructure.Insert("seller", SellerStructure);
EndIf;
EndIf;
If Clear Then
OrderStructure = OPI_Tools.ClearCollectionRecursively(OrderStructure);
EndIf;
//@skip-check constructor-function-return-section
Return OrderStructure;
EndFunction
#EndRegion
#EndRegion
#Region Private

View File

@ -213,7 +213,8 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
NewTest(TestTable, "NC_FilesManagment" , "Files managment" , Neocities);
NewTest(TestTable, "NC_DataRetrieving" , "Data retrieving" , Neocities);
NewTest(TestTable, "CdekAPI_CommonMethods" , "CommonMethods" , Cdek);
NewTest(TestTable, "CdekAPI_CommonMethods" , "Common methods" , Cdek);
NewTest(TestTable, "CDEKAPI_OrdersManagment" , "Orders managment" , Cdek);
Return TestTable;

View File

@ -1996,6 +1996,15 @@ Procedure CdekAPI_CommonMethods() Export
EndProcedure
Procedure CDEKAPI_OrdersManagment() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token" , TestParameters);
CDEK_GetOrderDescription(TestParameters);
EndProcedure
#EndRegion
#EndRegion
@ -13626,6 +13635,22 @@ Procedure CDEK_GetToken(FunctionParameters)
EndProcedure
Procedure CDEK_GetOrderDescription(FunctionParameters)
Result = OPI_CDEK.GetOrderDescription();
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetOrderDescription", "CDEK");
OPI_TestDataRetrieval.Check_Structure(Result);
Result = OPI_CDEK.GetOrderDescription(True);
OPI_TestDataRetrieval.WriteLog(Result, "GetOrderDescription (Empty)", "CDEK");
OPI_TestDataRetrieval.Check_Structure(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -425,6 +425,43 @@ Function ConvertDataWithSizeRetrieval(Data, Val MinimumStreamSize = 0) Export
EndFunction
Function ClearCollectionRecursively(Val Collection) Export
ValeType = TypeOf(Collection);
If ValeType = Type("Structure") Or ValeType = Type("Map") Then
For Each CollectionItem In Collection Do
ClearField = ClearCollectionRecursively(CollectionItem.Value);
Collection[CollectionItem.Key] = ClearField;
EndDo;
ElsIf ValeType = Type("Array") Then
Collection_ = New Array;
For Each CollectionItem In Collection Do
ClearField = ClearCollectionRecursively(CollectionItem);
Collection_.Add(ClearField);
EndDo;
Collection = Collection_;
Else
Collection = "";
EndIf;
Return Collection;
EndFunction
Procedure ValueToArray(Value) Export
Value_ = New Array;

View File

@ -40,6 +40,78 @@
NewLine.Описание = "Flag to use test API for requests (optional, def. val. - No)";
NewLine.Область = "Common methods";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "CreateOrder";
NewLine.МетодПоиска = "CREATEORDER";
NewLine.Параметр = "--token";
NewLine.Описание = "Auth token";
NewLine.Область = "Orders managment";
NewLine.ОписаниеМетода = "Creates an order based on field descriptions";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "CreateOrder";
NewLine.МетодПоиска = "CREATEORDER";
NewLine.Параметр = "--order";
NewLine.Описание = "Set of order fields. See GetOrderDescription";
NewLine.Область = "Orders managment";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "CreateOrder";
NewLine.МетодПоиска = "CREATEORDER";
NewLine.Параметр = "--ostore";
NewLine.Описание = "Flag of Online store order type (optional, def. val. - No)";
NewLine.Область = "Orders managment";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "CreateOrder";
NewLine.МетодПоиска = "CREATEORDER";
NewLine.Параметр = "--testapi";
NewLine.Описание = "Flag to use test API for requests (optional, def. val. - No)";
NewLine.Область = "Orders managment";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "GetOrderDescription";
NewLine.МетодПоиска = "GETORDERDESCRIPTION";
NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Orders managment";
NewLine.ОписаниеМетода = "Gets the layout of order for the CreateOrder function";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "GetOrderDescription";
NewLine.МетодПоиска = "GETORDERDESCRIPTION";
NewLine.Параметр = "--required";
NewLine.Описание = "True > only required fields will be in the set (optional, def. val. - No)";
NewLine.Область = "Orders managment";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "cdek";
NewLine.Модуль = "OPI_CDEK";
NewLine.Метод = "GetOrderDescription";
NewLine.МетодПоиска = "GETORDERDESCRIPTION";
NewLine.Параметр = "--ostore";
NewLine.Описание = "Flag of including fields in the layout exclusively for online store orders (optional, def. val. - No)";
NewLine.Область = "Orders managment";
Return CompositionTable;
EndFunction

View File

@ -79,46 +79,46 @@
// Создать заказ
// Создает заказ по описанию полей
//
//
// Примечание:
// Метод в документации API: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
//
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// ОписаниеЗаказа - Структура Из КлючИЗначение - Набор полей заказа. См. ПолучитьОписаниеЗаказа - order
// ИнтернетМагазин - Булево - Признак типа заказа Интернет магазин - ostore
// ИнтернетМагазин - Булево - Признак типа заказа Интернет магазин - ostore
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СоздатьЗаказ(Знач Токен, Знач ОписаниеЗаказа, Знач ИнтернетМагазин = Ложь, ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
URL = СформироватьURL("/orders", ТестовыйAPI);
Параметры = Новый Структура;
Для Каждого ПолеЗаказа Из ОписаниеЗаказа Цикл
OPI_Инструменты.ДобавитьПоле(ПолеЗаказа.Ключ, ПолеЗаказа.Значение, "Текущий", Параметры);
КонецЦикла;
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
URL = СформироватьURL("/orders", ТестовыйAPI);
Параметры = Новый Структура;
Для Каждого ПолеЗаказа Из ОписаниеЗаказа Цикл
OPI_Инструменты.ДобавитьПоле(ПолеЗаказа.Ключ, ПолеЗаказа.Значение, "Текущий", Параметры);
КонецЦикла;
OPI_Инструменты.ДобавитьПоле("type", ?(ИнтернетМагазин, 1, 2), "Число", Параметры);
Ответ = OPI_Инструменты.Post(URL, ОписаниеЗаказа, , Ложь);
Возврат Ответ;
КонецФункции
// Получить описание заказа
// Получает макет для создания заказа в функции СоздатьЗаказ
//
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
//
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
@ -127,185 +127,185 @@
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеЗаказа(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь, Знач ИнтернетМагазин = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
СтруктураЗаказа = Новый Структура;
СтруктураЗаказа.Вставить("tariff_code" , "<Код тарифа (подробнее см. приложение 1)>");
СтруктураПолучателя = Новый Структура;
СтруктураПолучателя.Вставить("company" , "<Название компании>");
СтруктураПолучателя.Вставить("name" , "<ФИО контактного лица>");
СтруктураПолучателя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураПолучателя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураПолучателя.Вставить("passport_date_of_issue", "<Дата выдачи паспорта>");
СтруктураПолучателя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураПолучателя.Вставить("tin" , "<ИНН>");
СтруктураПолучателя.Вставить("passport_date_of_birth", "<Дата рождения>");
СтруктураПолучателя.Вставить("email" , "<Email как RFC 2822>");
СтруктураПолучателя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураПолучателя.Вставить("phones", МассивТелефонов);
СтруктураПолучателя = Новый Структура;
СтруктураПолучателя.Вставить("company" , "<Название компании>");
СтруктураПолучателя.Вставить("name" , "<ФИО контактного лица>");
СтруктураПолучателя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураПолучателя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураПолучателя.Вставить("passport_date_of_issue", "<Дата выдачи паспорта>");
СтруктураПолучателя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураПолучателя.Вставить("tin" , "<ИНН>");
СтруктураПолучателя.Вставить("passport_date_of_birth", "<Дата рождения>");
СтруктураПолучателя.Вставить("email" , "<Email как RFC 2822>");
СтруктураПолучателя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураПолучателя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("recipient", СтруктураПолучателя);
МассивУпаковок = Новый Массив;
СтруктураУпаковки = Новый Структура;
СтруктураУпаковки.Вставить("number" , "<Номер упаковки>");
СтруктураУпаковки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураУпаковки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураУпаковки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураУпаковки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураУпаковки.Вставить("comment", "<Комментарий к упаковке>");
МассивПозиций = Новый Массив;
СтруктураПозиции = Новый Структура;
СтруктураПозиции.Вставить("name" , "<Наименование товара>");
СтруктураПозиции.Вставить("ware_key", "<Идентификатор/артикул товара>");
СтруктураПозиции.Вставить("marking" , "<Маркировка товара>");
СтруктураОплаты = Новый Структура;
СтруктураОплаты.Вставить("value" , "<Сумма наложенного платежа, в том числе и НДС>");
СтруктураОплаты.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураОплаты.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураПозиции.Вставить("payment" , СтруктураОплаты);
СтруктураПозиции.Вставить("cost" , "<Объявленная стоимость товара>");
СтруктураПозиции.Вставить("weight" , "<Вес (за единицу товара, в граммах)>");
СтруктураПозиции.Вставить("weight_gross", "<Вес брутто>");
СтруктураПозиции.Вставить("amount" , "<Количество единиц товара (в штуках)>");
СтруктураПозиции.Вставить("name_i18n" , "<Наименование на иностранном языке>");
СтруктураПозиции.Вставить("brand" , "<Бренд на иностранном языке>");
СтруктураПозиции.Вставить("country_code", "<Код страны производителя товара ISO_3166-1_alpha-2>");
СтруктураПозиции.Вставить("material" , "<Код материала>");
СтруктураПозиции.Вставить("wifi_gsm" , "<Содержит wifi или gsm>");
СтруктураПозиции.Вставить("url" , "<Ссылка на сайт интернет-магазина с описанием товара>");
МассивПозиций.Добавить(СтруктураПозиции);
СтруктураУпаковки.Вставить("items", МассивПозиций);
МассивУпаковок.Добавить(СтруктураУпаковки);
СтруктураЗаказа.Вставить("packages", МассивУпаковок);
МассивУпаковок = Новый Массив;
СтруктураУпаковки = Новый Структура;
СтруктураУпаковки.Вставить("number" , "<Номер упаковки>");
СтруктураУпаковки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураУпаковки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураУпаковки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураУпаковки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураУпаковки.Вставить("comment", "<Комментарий к упаковке>");
МассивПозиций = Новый Массив;
СтруктураПозиции = Новый Структура;
СтруктураПозиции.Вставить("name" , "<Наименование товара>");
СтруктураПозиции.Вставить("ware_key", "<Идентификатор/артикул товара>");
СтруктураПозиции.Вставить("marking" , "<Маркировка товара>");
СтруктураОплаты = Новый Структура;
СтруктураОплаты.Вставить("value" , "<Сумма наложенного платежа, в том числе и НДС>");
СтруктураОплаты.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураОплаты.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураПозиции.Вставить("payment" , СтруктураОплаты);
СтруктураПозиции.Вставить("cost" , "<Объявленная стоимость товара>");
СтруктураПозиции.Вставить("weight" , "<Вес (за единицу товара, в граммах)>");
СтруктураПозиции.Вставить("weight_gross", "<Вес брутто>");
СтруктураПозиции.Вставить("amount" , "<Количество единиц товара (в штуках)>");
СтруктураПозиции.Вставить("name_i18n" , "<Наименование на иностранном языке>");
СтруктураПозиции.Вставить("brand" , "<Бренд на иностранном языке>");
СтруктураПозиции.Вставить("country_code", "<Код страны производителя товара ISO_3166-1_alpha-2>");
СтруктураПозиции.Вставить("material" , "<Код материала>");
СтруктураПозиции.Вставить("wifi_gsm" , "<Содержит wifi или gsm>");
СтруктураПозиции.Вставить("url" , "<Ссылка на сайт интернет-магазина с описанием товара>");
МассивПозиций.Добавить(СтруктураПозиции);
СтруктураУпаковки.Вставить("items", МассивПозиций);
МассивУпаковок.Добавить(СтруктураУпаковки);
СтруктураЗаказа.Вставить("packages", МассивУпаковок);
Если Не ТолькоОбязательные Тогда
СтруктураЗаказа.Вставить("additional_order_types" , "<Дополнительный тип заказа>");
СтруктураЗаказа.Вставить("comment" , "<Комментарий к заказу>");
СтруктураЗаказа.Вставить("developer_key" , "<Ключ разработчика (для разработчиков модулей)>");
СтруктураЗаказа.Вставить("shipment_point" , "<Код ПВЗ СДЭК для самостоятельного привоза клиентом>");
СтруктураЗаказа.Вставить("delivery_point" , "<Код офиса СДЭК, на который будет доставлена посылка>");
СтруктураЗаказа.Вставить("date_invoice" , "<Дата инвойса>");
СтруктураЗаказа.Вставить("shipper_name" , "<Грузоотправитель>");
СтруктураЗаказа.Вставить("shipper_address" , "<Адрес грузоотправителя>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("email" , "<Email для оповещений RFC 2822>");
СтруктураОтправителя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураОтправителя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураОтправителя.Вставить("passport_date_of_issue" , "<Дата выдачи паспорта>");
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("sender", СтруктураОтправителя);
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдреса.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдреса.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдреса.Вставить("longitude" , "<Долгота>");
СтруктураАдреса.Вставить("latitude" , "<Широта>");
СтруктураАдреса.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураАдреса.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдреса.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдреса.Вставить("kladr_code" , "<Код КЛАДР>");
СтруктураАдреса.Вставить("address" , "<Строка адреса >");
СтруктураЗаказа.Вставить("from_location", СтруктураАдреса);
СтруктураЗаказа.Вставить("to_location" , СтруктураАдреса);
СтруктураУслуги = Новый Структура;
СтруктураУслуги.Вставить("code" , "<Тип дополнительной услуги>");
СтруктураУслуги.Вставить("parameter", "<Параметр дополнительной услуги>");
СтруктураЗаказа.Вставить("services" , СтруктураУслуги);
СтруктураЗаказа.Вставить("print" , "<Необходимость сформировать печатную форму>");
СтруктураЗаказа.Вставить("is_client_return" , "<Клиентский возврат>");
СтруктураЗаказа.Вставить("accompanying_number", "<Номер сопроводительной накладной>");
СтруктураЗаказа.Вставить("widget_token" , "<Токен, полученный от widget.cdek.ru>");
Если ИнтернетМагазин Тогда
СтруктураЗаказа.Вставить("number", "<Номер заказа в ИС Клиента (uuid, если не заполнено)>");
СтруктураСбора = Новый Структура;
СтруктураСбора.Вставить("value" , "<Сумма дополнительного сбора (в том числе и НДС)>");
СтруктураСбора.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураСбора.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураЗаказа.Вставить("delivery_recipient_cost", СтруктураСбора);
МассивПорогов = Новый Массив;
СтруктураПорога = Новый Структура;
СтруктураПорога.Вставить("threshold", "<Порог стоимости товара в целых единицах валюты>");
СтруктураПорога.Вставить("sum" , "<Доп. сбор за доставку товаров, общая стоимость которых в интервале>");
СтруктураПорога.Вставить("vat_sum" , "<Сумма НДС, включённая в доп. сбор за доставку>");
СтруктураПорога.Вставить("vat_rate" , "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
МассивПорогов.Добавить(СтруктураПорога);
СтруктураЗаказа.Вставить("delivery_recipient_cost_adv", МассивПорогов);
СтруктураПродавца = Новый Структура;
СтруктураПродавца.Вставить("name" , "<Наименование истинного продавца>");
СтруктураПродавца.Вставить("inn" , "<ИНН истинного продавца>");
СтруктураПродавца.Вставить("phone" , "<Телефон истинного продавца>");
СтруктураПродавца.Вставить("ownership_form", "<Код формы собственности>");
СтруктураПродавца.Вставить("address" , "<Адрес истинного продавца>");
СтруктураЗаказа.Вставить("seller", СтруктураПродавца);
КонецЕсли;
СтруктураЗаказа.Вставить("additional_order_types" , "<Дополнительный тип заказа>");
СтруктураЗаказа.Вставить("comment" , "<Комментарий к заказу>");
СтруктураЗаказа.Вставить("developer_key" , "<Ключ разработчика (для разработчиков модулей)>");
СтруктураЗаказа.Вставить("shipment_point" , "<Код ПВЗ СДЭК для самостоятельного привоза клиентом>");
СтруктураЗаказа.Вставить("delivery_point" , "<Код офиса СДЭК, на который будет доставлена посылка>");
СтруктураЗаказа.Вставить("date_invoice" , "<Дата инвойса>");
СтруктураЗаказа.Вставить("shipper_name" , "<Грузоотправитель>");
СтруктураЗаказа.Вставить("shipper_address" , "<Адрес грузоотправителя>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("email" , "<Email для оповещений RFC 2822>");
СтруктураОтправителя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураОтправителя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураОтправителя.Вставить("passport_date_of_issue" , "<Дата выдачи паспорта>");
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("sender", СтруктураОтправителя);
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдреса.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдреса.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдреса.Вставить("longitude" , "<Долгота>");
СтруктураАдреса.Вставить("latitude" , "<Широта>");
СтруктураАдреса.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураАдреса.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдреса.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдреса.Вставить("kladr_code" , "<Код КЛАДР>");
СтруктураАдреса.Вставить("address" , "<Строка адреса >");
СтруктураЗаказа.Вставить("from_location", СтруктураАдреса);
СтруктураЗаказа.Вставить("to_location" , СтруктураАдреса);
СтруктураУслуги = Новый Структура;
СтруктураУслуги.Вставить("code" , "<Тип дополнительной услуги>");
СтруктураУслуги.Вставить("parameter", "<Параметр дополнительной услуги>");
СтруктураЗаказа.Вставить("services" , СтруктураУслуги);
СтруктураЗаказа.Вставить("print" , "<Необходимость сформировать печатную форму>");
СтруктураЗаказа.Вставить("is_client_return" , "<Клиентский возврат>");
СтруктураЗаказа.Вставить("accompanying_number", "<Номер сопроводительной накладной>");
СтруктураЗаказа.Вставить("widget_token" , "<Токен, полученный от widget.cdek.ru>");
Если ИнтернетМагазин Тогда
СтруктураЗаказа.Вставить("number", "<Номер заказа в ИС Клиента (uuid, если не заполнено)>");
СтруктураСбора = Новый Структура;
СтруктураСбора.Вставить("value" , "<Сумма дополнительного сбора (в том числе и НДС)>");
СтруктураСбора.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураСбора.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураЗаказа.Вставить("delivery_recipient_cost", СтруктураСбора);
МассивПорогов = Новый Массив;
СтруктураПорога = Новый Структура;
СтруктураПорога.Вставить("threshold", "<Порог стоимости товара в целых единицах валюты>");
СтруктураПорога.Вставить("sum" , "<Доп. сбор за доставку товаров, общая стоимость которых в интервале>");
СтруктураПорога.Вставить("vat_sum" , "<Сумма НДС, включённая в доп. сбор за доставку>");
СтруктураПорога.Вставить("vat_rate" , "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
МассивПорогов.Добавить(СтруктураПорога);
СтруктураЗаказа.Вставить("delivery_recipient_cost_adv", МассивПорогов);
СтруктураПродавца = Новый Структура;
СтруктураПродавца.Вставить("name" , "<Наименование истинного продавца>");
СтруктураПродавца.Вставить("inn" , "<ИНН истинного продавца>");
СтруктураПродавца.Вставить("phone" , "<Телефон истинного продавца>");
СтруктураПродавца.Вставить("ownership_form", "<Код формы собственности>");
СтруктураПродавца.Вставить("address" , "<Адрес истинного продавца>");
СтруктураЗаказа.Вставить("seller", СтруктураПродавца);
КонецЕсли;
КонецЕсли;
Если Пустая Тогда
СтруктураЗаказа = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаказа);
СтруктураЗаказа = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаказа);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураЗаказа;
КонецФункции
#КонецОбласти

View File

@ -1997,12 +1997,12 @@
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
ПараметрыТеста = Новый Структура;
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token" , ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -13637,18 +13637,18 @@
Процедура CDEK_ПолучитьОписаниеЗаказа(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
#КонецОбласти

View File

@ -1801,9 +1801,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -426,40 +426,40 @@
КонецФункции
Функция ОчиститьКоллекциюРекурсивно(Знач Коллекция) Экспорт
ТипЗначения = ТипЗнч(Коллекция);
Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("Соответствие") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
ЭлементКоллекции.Значение = ОчищенноеПоле;
КонецЦикла;
ИначеЕсли ТипЗначения = Тип("Массив") Тогда
Коллекция_ = Новый Массив;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции);
Коллекция_.Добавить(ОчищенноеПоле);
КонецЦикла;
Коллекция = Коллекция_;
Иначе
Коллекция = "";
КонецЕсли;
Возврат Коллекция;
ТипЗначения = ТипЗнч(Коллекция);
Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("Соответствие") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
Коллекция[ЭлементКоллекции.Ключ] = ОчищенноеПоле;
КонецЦикла;
ИначеЕсли ТипЗначения = Тип("Массив") Тогда
Коллекция_ = Новый Массив;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции);
Коллекция_.Добавить(ОчищенноеПоле);
КонецЦикла;
Коллекция = Коллекция_;
Иначе
Коллекция = "";
КонецЕсли;
Возврат Коллекция;
КонецФункции
Процедура ЗначениеВМассив(Значение) Экспорт

View File

@ -79,46 +79,46 @@
// Создать заказ
// Создает заказ по описанию полей
//
//
// Примечание:
// Метод в документации API: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
//
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// ОписаниеЗаказа - Структура Из КлючИЗначение - Набор полей заказа. См. ПолучитьОписаниеЗаказа - order
// ИнтернетМагазин - Булево - Признак типа заказа Интернет магазин - ostore
// ИнтернетМагазин - Булево - Признак типа заказа Интернет магазин - ostore
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СоздатьЗаказ(Знач Токен, Знач ОписаниеЗаказа, Знач ИнтернетМагазин = Ложь, ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
URL = СформироватьURL("/orders", ТестовыйAPI);
Параметры = Новый Структура;
Для Каждого ПолеЗаказа Из ОписаниеЗаказа Цикл
OPI_Инструменты.ДобавитьПоле(ПолеЗаказа.Ключ, ПолеЗаказа.Значение, "Текущий", Параметры);
КонецЦикла;
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
URL = СформироватьURL("/orders", ТестовыйAPI);
Параметры = Новый Структура;
Для Каждого ПолеЗаказа Из ОписаниеЗаказа Цикл
OPI_Инструменты.ДобавитьПоле(ПолеЗаказа.Ключ, ПолеЗаказа.Значение, "Текущий", Параметры);
КонецЦикла;
OPI_Инструменты.ДобавитьПоле("type", ?(ИнтернетМагазин, 1, 2), "Число", Параметры);
Ответ = OPI_Инструменты.Post(URL, ОписаниеЗаказа, , Ложь);
Возврат Ответ;
КонецФункции
// Получить описание заказа
// Получает макет для создания заказа в функции СоздатьЗаказ
//
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
//
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
@ -127,185 +127,185 @@
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеЗаказа(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь, Знач ИнтернетМагазин = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
СтруктураЗаказа = Новый Структура;
СтруктураЗаказа.Вставить("tariff_code" , "<Код тарифа (подробнее см. приложение 1)>");
СтруктураПолучателя = Новый Структура;
СтруктураПолучателя.Вставить("company" , "<Название компании>");
СтруктураПолучателя.Вставить("name" , "<ФИО контактного лица>");
СтруктураПолучателя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураПолучателя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураПолучателя.Вставить("passport_date_of_issue", "<Дата выдачи паспорта>");
СтруктураПолучателя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураПолучателя.Вставить("tin" , "<ИНН>");
СтруктураПолучателя.Вставить("passport_date_of_birth", "<Дата рождения>");
СтруктураПолучателя.Вставить("email" , "<Email как RFC 2822>");
СтруктураПолучателя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураПолучателя.Вставить("phones", МассивТелефонов);
СтруктураПолучателя = Новый Структура;
СтруктураПолучателя.Вставить("company" , "<Название компании>");
СтруктураПолучателя.Вставить("name" , "<ФИО контактного лица>");
СтруктураПолучателя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураПолучателя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураПолучателя.Вставить("passport_date_of_issue", "<Дата выдачи паспорта>");
СтруктураПолучателя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураПолучателя.Вставить("tin" , "<ИНН>");
СтруктураПолучателя.Вставить("passport_date_of_birth", "<Дата рождения>");
СтруктураПолучателя.Вставить("email" , "<Email как RFC 2822>");
СтруктураПолучателя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураПолучателя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("recipient", СтруктураПолучателя);
МассивУпаковок = Новый Массив;
СтруктураУпаковки = Новый Структура;
СтруктураУпаковки.Вставить("number" , "<Номер упаковки>");
СтруктураУпаковки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураУпаковки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураУпаковки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураУпаковки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураУпаковки.Вставить("comment", "<Комментарий к упаковке>");
МассивПозиций = Новый Массив;
СтруктураПозиции = Новый Структура;
СтруктураПозиции.Вставить("name" , "<Наименование товара>");
СтруктураПозиции.Вставить("ware_key", "<Идентификатор/артикул товара>");
СтруктураПозиции.Вставить("marking" , "<Маркировка товара>");
СтруктураОплаты = Новый Структура;
СтруктураОплаты.Вставить("value" , "<Сумма наложенного платежа, в том числе и НДС>");
СтруктураОплаты.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураОплаты.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураПозиции.Вставить("payment" , СтруктураОплаты);
СтруктураПозиции.Вставить("cost" , "<Объявленная стоимость товара>");
СтруктураПозиции.Вставить("weight" , "<Вес (за единицу товара, в граммах)>");
СтруктураПозиции.Вставить("weight_gross", "<Вес брутто>");
СтруктураПозиции.Вставить("amount" , "<Количество единиц товара (в штуках)>");
СтруктураПозиции.Вставить("name_i18n" , "<Наименование на иностранном языке>");
СтруктураПозиции.Вставить("brand" , "<Бренд на иностранном языке>");
СтруктураПозиции.Вставить("country_code", "<Код страны производителя товара ISO_3166-1_alpha-2>");
СтруктураПозиции.Вставить("material" , "<Код материала>");
СтруктураПозиции.Вставить("wifi_gsm" , "<Содержит wifi или gsm>");
СтруктураПозиции.Вставить("url" , "<Ссылка на сайт интернет-магазина с описанием товара>");
МассивПозиций.Добавить(СтруктураПозиции);
СтруктураУпаковки.Вставить("items", МассивПозиций);
МассивУпаковок.Добавить(СтруктураУпаковки);
СтруктураЗаказа.Вставить("packages", МассивУпаковок);
МассивУпаковок = Новый Массив;
СтруктураУпаковки = Новый Структура;
СтруктураУпаковки.Вставить("number" , "<Номер упаковки>");
СтруктураУпаковки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураУпаковки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураУпаковки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураУпаковки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураУпаковки.Вставить("comment", "<Комментарий к упаковке>");
МассивПозиций = Новый Массив;
СтруктураПозиции = Новый Структура;
СтруктураПозиции.Вставить("name" , "<Наименование товара>");
СтруктураПозиции.Вставить("ware_key", "<Идентификатор/артикул товара>");
СтруктураПозиции.Вставить("marking" , "<Маркировка товара>");
СтруктураОплаты = Новый Структура;
СтруктураОплаты.Вставить("value" , "<Сумма наложенного платежа, в том числе и НДС>");
СтруктураОплаты.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураОплаты.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураПозиции.Вставить("payment" , СтруктураОплаты);
СтруктураПозиции.Вставить("cost" , "<Объявленная стоимость товара>");
СтруктураПозиции.Вставить("weight" , "<Вес (за единицу товара, в граммах)>");
СтруктураПозиции.Вставить("weight_gross", "<Вес брутто>");
СтруктураПозиции.Вставить("amount" , "<Количество единиц товара (в штуках)>");
СтруктураПозиции.Вставить("name_i18n" , "<Наименование на иностранном языке>");
СтруктураПозиции.Вставить("brand" , "<Бренд на иностранном языке>");
СтруктураПозиции.Вставить("country_code", "<Код страны производителя товара ISO_3166-1_alpha-2>");
СтруктураПозиции.Вставить("material" , "<Код материала>");
СтруктураПозиции.Вставить("wifi_gsm" , "<Содержит wifi или gsm>");
СтруктураПозиции.Вставить("url" , "<Ссылка на сайт интернет-магазина с описанием товара>");
МассивПозиций.Добавить(СтруктураПозиции);
СтруктураУпаковки.Вставить("items", МассивПозиций);
МассивУпаковок.Добавить(СтруктураУпаковки);
СтруктураЗаказа.Вставить("packages", МассивУпаковок);
Если Не ТолькоОбязательные Тогда
СтруктураЗаказа.Вставить("additional_order_types" , "<Дополнительный тип заказа>");
СтруктураЗаказа.Вставить("comment" , "<Комментарий к заказу>");
СтруктураЗаказа.Вставить("developer_key" , "<Ключ разработчика (для разработчиков модулей)>");
СтруктураЗаказа.Вставить("shipment_point" , "<Код ПВЗ СДЭК для самостоятельного привоза клиентом>");
СтруктураЗаказа.Вставить("delivery_point" , "<Код офиса СДЭК, на который будет доставлена посылка>");
СтруктураЗаказа.Вставить("date_invoice" , "<Дата инвойса>");
СтруктураЗаказа.Вставить("shipper_name" , "<Грузоотправитель>");
СтруктураЗаказа.Вставить("shipper_address" , "<Адрес грузоотправителя>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("email" , "<Email для оповещений RFC 2822>");
СтруктураОтправителя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураОтправителя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураОтправителя.Вставить("passport_date_of_issue" , "<Дата выдачи паспорта>");
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("sender", СтруктураОтправителя);
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдреса.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдреса.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдреса.Вставить("longitude" , "<Долгота>");
СтруктураАдреса.Вставить("latitude" , "<Широта>");
СтруктураАдреса.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураАдреса.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдреса.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдреса.Вставить("kladr_code" , "<Код КЛАДР>");
СтруктураАдреса.Вставить("address" , "<Строка адреса >");
СтруктураЗаказа.Вставить("from_location", СтруктураАдреса);
СтруктураЗаказа.Вставить("to_location" , СтруктураАдреса);
СтруктураУслуги = Новый Структура;
СтруктураУслуги.Вставить("code" , "<Тип дополнительной услуги>");
СтруктураУслуги.Вставить("parameter", "<Параметр дополнительной услуги>");
СтруктураЗаказа.Вставить("services" , СтруктураУслуги);
СтруктураЗаказа.Вставить("print" , "<Необходимость сформировать печатную форму>");
СтруктураЗаказа.Вставить("is_client_return" , "<Клиентский возврат>");
СтруктураЗаказа.Вставить("accompanying_number", "<Номер сопроводительной накладной>");
СтруктураЗаказа.Вставить("widget_token" , "<Токен, полученный от widget.cdek.ru>");
Если ИнтернетМагазин Тогда
СтруктураЗаказа.Вставить("number", "<Номер заказа в ИС Клиента (uuid, если не заполнено)>");
СтруктураСбора = Новый Структура;
СтруктураСбора.Вставить("value" , "<Сумма дополнительного сбора (в том числе и НДС)>");
СтруктураСбора.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураСбора.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураЗаказа.Вставить("delivery_recipient_cost", СтруктураСбора);
МассивПорогов = Новый Массив;
СтруктураПорога = Новый Структура;
СтруктураПорога.Вставить("threshold", "<Порог стоимости товара в целых единицах валюты>");
СтруктураПорога.Вставить("sum" , "<Доп. сбор за доставку товаров, общая стоимость которых в интервале>");
СтруктураПорога.Вставить("vat_sum" , "<Сумма НДС, включённая в доп. сбор за доставку>");
СтруктураПорога.Вставить("vat_rate" , "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
МассивПорогов.Добавить(СтруктураПорога);
СтруктураЗаказа.Вставить("delivery_recipient_cost_adv", МассивПорогов);
СтруктураПродавца = Новый Структура;
СтруктураПродавца.Вставить("name" , "<Наименование истинного продавца>");
СтруктураПродавца.Вставить("inn" , "<ИНН истинного продавца>");
СтруктураПродавца.Вставить("phone" , "<Телефон истинного продавца>");
СтруктураПродавца.Вставить("ownership_form", "<Код формы собственности>");
СтруктураПродавца.Вставить("address" , "<Адрес истинного продавца>");
СтруктураЗаказа.Вставить("seller", СтруктураПродавца);
КонецЕсли;
СтруктураЗаказа.Вставить("additional_order_types" , "<Дополнительный тип заказа>");
СтруктураЗаказа.Вставить("comment" , "<Комментарий к заказу>");
СтруктураЗаказа.Вставить("developer_key" , "<Ключ разработчика (для разработчиков модулей)>");
СтруктураЗаказа.Вставить("shipment_point" , "<Код ПВЗ СДЭК для самостоятельного привоза клиентом>");
СтруктураЗаказа.Вставить("delivery_point" , "<Код офиса СДЭК, на который будет доставлена посылка>");
СтруктураЗаказа.Вставить("date_invoice" , "<Дата инвойса>");
СтруктураЗаказа.Вставить("shipper_name" , "<Грузоотправитель>");
СтруктураЗаказа.Вставить("shipper_address" , "<Адрес грузоотправителя>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("email" , "<Email для оповещений RFC 2822>");
СтруктураОтправителя.Вставить("passport_series" , "<Серия паспорта>");
СтруктураОтправителя.Вставить("passport_number" , "<Номер паспорта>");
СтруктураОтправителя.Вставить("passport_date_of_issue" , "<Дата выдачи паспорта>");
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаказа.Вставить("sender", СтруктураОтправителя);
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдреса.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдреса.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдреса.Вставить("longitude" , "<Долгота>");
СтруктураАдреса.Вставить("latitude" , "<Широта>");
СтруктураАдреса.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураАдреса.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдреса.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдреса.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдреса.Вставить("kladr_code" , "<Код КЛАДР>");
СтруктураАдреса.Вставить("address" , "<Строка адреса >");
СтруктураЗаказа.Вставить("from_location", СтруктураАдреса);
СтруктураЗаказа.Вставить("to_location" , СтруктураАдреса);
СтруктураУслуги = Новый Структура;
СтруктураУслуги.Вставить("code" , "<Тип дополнительной услуги>");
СтруктураУслуги.Вставить("parameter", "<Параметр дополнительной услуги>");
СтруктураЗаказа.Вставить("services" , СтруктураУслуги);
СтруктураЗаказа.Вставить("print" , "<Необходимость сформировать печатную форму>");
СтруктураЗаказа.Вставить("is_client_return" , "<Клиентский возврат>");
СтруктураЗаказа.Вставить("accompanying_number", "<Номер сопроводительной накладной>");
СтруктураЗаказа.Вставить("widget_token" , "<Токен, полученный от widget.cdek.ru>");
Если ИнтернетМагазин Тогда
СтруктураЗаказа.Вставить("number", "<Номер заказа в ИС Клиента (uuid, если не заполнено)>");
СтруктураСбора = Новый Структура;
СтруктураСбора.Вставить("value" , "<Сумма дополнительного сбора (в том числе и НДС)>");
СтруктураСбора.Вставить("vat_sum" , "<Сумма НДС>");
СтруктураСбора.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
СтруктураЗаказа.Вставить("delivery_recipient_cost", СтруктураСбора);
МассивПорогов = Новый Массив;
СтруктураПорога = Новый Структура;
СтруктураПорога.Вставить("threshold", "<Порог стоимости товара в целых единицах валюты>");
СтруктураПорога.Вставить("sum" , "<Доп. сбор за доставку товаров, общая стоимость которых в интервале>");
СтруктураПорога.Вставить("vat_sum" , "<Сумма НДС, включённая в доп. сбор за доставку>");
СтруктураПорога.Вставить("vat_rate" , "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
МассивПорогов.Добавить(СтруктураПорога);
СтруктураЗаказа.Вставить("delivery_recipient_cost_adv", МассивПорогов);
СтруктураПродавца = Новый Структура;
СтруктураПродавца.Вставить("name" , "<Наименование истинного продавца>");
СтруктураПродавца.Вставить("inn" , "<ИНН истинного продавца>");
СтруктураПродавца.Вставить("phone" , "<Телефон истинного продавца>");
СтруктураПродавца.Вставить("ownership_form", "<Код формы собственности>");
СтруктураПродавца.Вставить("address" , "<Адрес истинного продавца>");
СтруктураЗаказа.Вставить("seller", СтруктураПродавца);
КонецЕсли;
КонецЕсли;
Если Пустая Тогда
СтруктураЗаказа = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаказа);
СтруктураЗаказа = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаказа);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураЗаказа;
КонецФункции
#КонецОбласти

View File

@ -426,40 +426,40 @@
КонецФункции
Функция ОчиститьКоллекциюРекурсивно(Знач Коллекция) Экспорт
ТипЗначения = ТипЗнч(Коллекция);
Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("Соответствие") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
Коллекция[ЭлементКоллекции.Ключ] = ОчищенноеПоле;
КонецЦикла;
ИначеЕсли ТипЗначения = Тип("Массив") Тогда
Коллекция_ = Новый Массив;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции);
Коллекция_.Добавить(ОчищенноеПоле);
КонецЦикла;
Коллекция = Коллекция_;
Иначе
Коллекция = "";
КонецЕсли;
Возврат Коллекция;
ТипЗначения = ТипЗнч(Коллекция);
Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("Соответствие") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
Коллекция[ЭлементКоллекции.Ключ] = ОчищенноеПоле;
КонецЦикла;
ИначеЕсли ТипЗначения = Тип("Массив") Тогда
Коллекция_ = Новый Массив;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции);
Коллекция_.Добавить(ОчищенноеПоле);
КонецЦикла;
Коллекция = Коллекция_;
Иначе
Коллекция = "";
КонецЕсли;
Возврат Коллекция;
КонецФункции
Процедура ЗначениеВМассив(Значение) Экспорт

View File

@ -1997,12 +1997,12 @@
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
ПараметрыТеста = Новый Структура;
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token" , ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -13637,18 +13637,18 @@
Процедура CDEK_ПолучитьОписаниеЗаказа(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаказа(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
#КонецОбласти

View File

@ -40,6 +40,78 @@
НоваяСтрока.Описание = "Флаг использования API для тестовых запросов (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Общие методы";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "СоздатьЗаказ";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЗАКАЗ";
НоваяСтрока.Параметр = "--token";
НоваяСтрока.Описание = "Токен авторизации";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока.ОписаниеМетода = "Создает заказ по описанию полей";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "СоздатьЗаказ";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЗАКАЗ";
НоваяСтрока.Параметр = "--order";
НоваяСтрока.Описание = "Набор полей заказа. См. ПолучитьОписаниеЗаказа";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "СоздатьЗаказ";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЗАКАЗ";
НоваяСтрока.Параметр = "--ostore";
НоваяСтрока.Описание = "Признак типа заказа Интернет магазин (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "СоздатьЗаказ";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЗАКАЗ";
НоваяСтрока.Параметр = "--testapi";
НоваяСтрока.Описание = "Флаг использования API для тестовых запросов (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "ПолучитьОписаниеЗаказа";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬОПИСАНИЕЗАКАЗА";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока.ОписаниеМетода = "Получает макет для создания заказа в функции СоздатьЗаказ";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "ПолучитьОписаниеЗаказа";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬОПИСАНИЕЗАКАЗА";
НоваяСтрока.Параметр = "--required";
НоваяСтрока.Описание = "Истина > в макете будут только обязательные поля (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Работа с заказми";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "cdek";
НоваяСтрока.Модуль = "OPI_CDEK";
НоваяСтрока.Метод = "ПолучитьОписаниеЗаказа";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬОПИСАНИЕЗАКАЗА";
НоваяСтрока.Параметр = "--ostore";
НоваяСтрока.Описание = "Признак включения в макет полей исключительно для заказо Интернет магазина (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Работа с заказми";
Возврат ТаблицаСостава;
КонецФункции