-
Notifications
You must be signed in to change notification settings - Fork 209
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Возможность указывать параметры записи JSON
- Loading branch information
1 parent
da8aa03
commit 6959534
Showing
3 changed files
with
85 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,7 +17,7 @@ | |
// | ||
// URL: https://github.com/vbondarevsky/Connector | ||
// e-mail: [email protected] | ||
// Версия: 1.1.4 | ||
// Версия: 1.1.5 | ||
// | ||
// Требования: платформа 1С версии 8.3.10 и выше | ||
|
||
|
@@ -415,6 +415,8 @@ | |
// Если Ложь, объекты будут считываться в объект типа Структура. | ||
// **ФорматДатыJSON - ФорматДатыJSON - формат, в котором представлена дата в строке, подлежащей преобразованию. | ||
// **ИменаСвойствСоЗначениямиДата - Массив, Строка - имена свойств JSON, для которых нужно вызывать восстановление даты из строки. | ||
// *ПараметрыЗаписиJSON - Структура - параметры, используемые при записи объекта JSON. | ||
// См. в синтаксис-помощнике описание ПараметрыЗаписиJSON. | ||
// *Данные - Структура, Соответствие - поля формы, которые необходимо отправить в запрос: | ||
// *<Ключ> - Строка - имя поля. | ||
// *<Значение> - Строка - значение поля. | ||
|
@@ -470,6 +472,7 @@ | |
Запрос.Вставить("Аутентификация", ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Аутентификация", Новый Структура)); | ||
Запрос.Вставить("Cookies", ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Cookies", Новый Массив)); | ||
Запрос.Вставить("ПараметрыПреобразованияJSON", ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "ПараметрыПреобразованияJSON", Неопределено)); | ||
Запрос.Вставить("ПараметрыЗаписиJSON", ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "ПараметрыЗаписиJSON", Неопределено)); | ||
|
||
ПодготовленныйЗапрос = ПодготовитьЗапрос(Сессия, Запрос); | ||
|
||
|
@@ -589,7 +592,13 @@ | |
ПодготовленныйЗапрос.Вставить("URL", ПодготовитьURL(Запрос.URL, ПараметрыЗапроса)); | ||
|
||
ПодготовитьCookies(ПодготовленныйЗапрос); | ||
ПодготовитьТелоЗапроса(ПодготовленныйЗапрос, Запрос.Данные, Запрос.Файлы, Запрос.Json, Запрос.ПараметрыПреобразованияJSON); | ||
ПодготовитьТелоЗапроса( | ||
ПодготовленныйЗапрос, | ||
Запрос.Данные, | ||
Запрос.Файлы, | ||
Запрос.Json, | ||
Запрос.ПараметрыПреобразованияJSON, | ||
Запрос.ПараметрыЗаписиJSON); | ||
ПодготовитьАутентификацию(ПодготовленныйЗапрос); | ||
|
||
Возврат ПодготовленныйЗапрос; | ||
|
@@ -855,7 +864,7 @@ | |
|
||
КонецФункции | ||
|
||
Процедура ПодготовитьТелоЗапроса(ПодготовленныйЗапрос, Данные, Файлы, Json, ПараметрыПреобразованияJSON) | ||
Процедура ПодготовитьТелоЗапроса(ПодготовленныйЗапрос, Данные, Файлы, Json, ПараметрыПреобразованияJSON, ПараметрыЗаписиJSON) | ||
|
||
HTTPЗапрос = Новый HTTPЗапрос; | ||
HTTPЗапрос.АдресРесурса = СобратьАдресРесурса( | ||
|
@@ -874,7 +883,7 @@ | |
ИначеЕсли ЗначениеЗаполнено(Json) Тогда | ||
ContentType = "application/json"; | ||
HTTPЗапрос.УстановитьТелоИзСтроки( | ||
ОбъектВJson(Json, ПараметрыПреобразованияJSON), | ||
ОбъектВJson(Json, ПараметрыПреобразованияJSON, ПараметрыЗаписиJSON), | ||
КодировкаТекста.UTF8, | ||
ИспользованиеByteOrderMark.НеИспользовать); | ||
КонецЕсли; | ||
|
@@ -1473,15 +1482,28 @@ | |
|
||
КонецФункции | ||
|
||
Функция ОбъектВJson(Объект, ПараметрыПреобразования) | ||
Функция ОбъектВJson(Объект, Знач ПараметрыПреобразования, Знач ПараметрыЗаписи) | ||
|
||
ПараметрыПреобразованияJSON = ДополнитьПараметрыПреобразованияJSON(ПараметрыПреобразования); | ||
|
||
НастройкиСериализации = Новый НастройкиСериализацииJSON; | ||
НастройкиСериализации.ФорматСериализацииДаты = ПараметрыПреобразованияJSON.ФорматДатыJSON; | ||
|
||
|
||
ПараметрыЗаписи = ДополнитьПараметрыЗаписиJSON(ПараметрыЗаписи); | ||
|
||
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( | ||
ПараметрыЗаписи.ПереносСтрок, | ||
ПараметрыЗаписи.СимволыОтступа, | ||
ПараметрыЗаписи.ИспользоватьДвойныеКавычки, | ||
ПараметрыЗаписи.ЭкранированиеСимволов, | ||
ПараметрыЗаписи.ЭкранироватьУгловыеСкобки, | ||
ПараметрыЗаписи.ЭкранироватьРазделителиСтрок, | ||
ПараметрыЗаписи.ЭкранироватьАмперсанд, | ||
ПараметрыЗаписи.ЭкранироватьОдинарныеКавычки, | ||
ПараметрыЗаписи.ЭкранироватьСлеш); | ||
|
||
ЗаписьJSON = Новый ЗаписьJSON; | ||
ЗаписьJSON.УстановитьСтроку(); | ||
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); | ||
ЗаписатьJSON(ЗаписьJSON, Объект, НастройкиСериализации); | ||
|
||
Возврат ЗаписьJSON.Закрыть(); | ||
|
@@ -1524,6 +1546,21 @@ | |
|
||
КонецФункции | ||
|
||
Функция ДополнитьПараметрыЗаписиJSON(ПараметрыЗаписи) | ||
|
||
ПараметрыЗаписиJSON = ПолучитьПараметрыЗаписиJSONПоУмолчанию(); | ||
Если ЗначениеЗаполнено(ПараметрыЗаписи) Тогда | ||
Для Каждого Параметр Из ПараметрыЗаписи Цикл | ||
Если ПараметрыЗаписиJSON.Свойство(Параметр.Ключ) Тогда | ||
ПараметрыЗаписиJSON.Вставить(Параметр.Ключ, Параметр.Значение); | ||
КонецЕсли; | ||
КонецЦикла; | ||
КонецЕсли; | ||
|
||
Возврат ПараметрыЗаписиJSON; | ||
|
||
КонецФункции | ||
|
||
#Область ДекодированиеДанных | ||
|
||
#Область СлужебныеСтруктурыZip | ||
|
@@ -1892,6 +1929,23 @@ | |
|
||
КонецФункции | ||
|
||
Функция ПолучитьПараметрыЗаписиJSONПоУмолчанию() | ||
|
||
ПараметрыЗаписиJSONПоУмолчанию = Новый Структура; | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ПереносСтрок", ПереносСтрокJSON.Авто); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("СимволыОтступа", " "); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ИспользоватьДвойныеКавычки", Истина); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранированиеСимволов", ЭкранированиеСимволовJSON.Нет); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьУгловыеСкобки", Ложь); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьРазделителиСтрок", Истина); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьАмперсанд", Ложь); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьОдинарныеКавычки", Ложь); | ||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьСлеш", Ложь); | ||
|
||
Возврат ПараметрыЗаписиJSONПоУмолчанию; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
#КонецОбласти |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" format="Hierarchical" version="2.8"> | ||
<ConfigVersions> | ||
<Metadata name="CommonModule.КоннекторHTTP" id="b410e6fc-2af6-4b78-8dde-12f5e259926c" configVersion="b708ff2e9e27e4469f600736cf31869000000000"/> | ||
<Metadata name="CommonModule.КоннекторHTTP.Module" id="b410e6fc-2af6-4b78-8dde-12f5e259926c.0" configVersion="66f8df6cc2afae4aac23b47d41313efc00000000"/> | ||
<Metadata name="Configuration.Конфигурация" id="5eb9462b-b393-47be-933f-eee461b0776c" configVersion="75029b7659798547847351fc8e16754300000000"/> | ||
<Metadata name="Configuration.Конфигурация.HomePageWorkArea" id="d50a38bd-46a7-49df-b1c1-97a268165f22.8" configVersion="eb8184ae7b7a1b4c9dd29361693acfae00000000"/> | ||
<Metadata name="DataProcessor.Тесты" id="9f97ab24-5fa8-4904-97a8-ba436e571008" configVersion="c1daf971daea464d80058c3ca8c9475000000000"> | ||
<Metadata name="CommonModule.КоннекторHTTP" id="b410e6fc-2af6-4b78-8dde-12f5e259926c" configVersion="13ee538b7414cb4084e4215aa12993cd00000000"/> | ||
<Metadata name="CommonModule.КоннекторHTTP.Module" id="b410e6fc-2af6-4b78-8dde-12f5e259926c.0" configVersion="6c7bd7db18540741bc87fadb27b61ff800000000"/> | ||
<Metadata name="Configuration.Конфигурация" id="5eb9462b-b393-47be-933f-eee461b0776c" configVersion="852401691a96da41bcd813cd0883515e00000000"/> | ||
<Metadata name="Configuration.Конфигурация.HomePageWorkArea" id="d50a38bd-46a7-49df-b1c1-97a268165f22.8" configVersion="ea06656328870d4bbcdfa2a28309c7f400000000"/> | ||
<Metadata name="DataProcessor.Тесты" id="9f97ab24-5fa8-4904-97a8-ba436e571008" configVersion="9fb87e298a95444e8428cd01f8062e3600000000"> | ||
<Metadata name="DataProcessor.Тесты.Attribute.Логин" id="7fe8f06e-8b91-43a8-9ee0-74b68566215a"/> | ||
<Metadata name="DataProcessor.Тесты.Attribute.ТестироватьСоединениеЧерезПрокси" id="913b491d-b727-4b54-97ed-92de17157c7b"/> | ||
<Metadata name="DataProcessor.Тесты.Attribute.Пароль" id="b0718c92-e40b-4c48-8df9-3903401419b3"/> | ||
</Metadata> | ||
<Metadata name="DataProcessor.Тесты.Form.Форма" id="16f1d17a-2ee6-412e-8eb7-aaa7d4ff8526" configVersion="33e3e7d247158a4dbbf8df43f4084e5800000000"/> | ||
<Metadata name="DataProcessor.Тесты.Form.Форма.Form" id="16f1d17a-2ee6-412e-8eb7-aaa7d4ff8526.0" configVersion="0c63248d40aa4746a41a19128346541c00000000"/> | ||
<Metadata name="DataProcessor.Тесты.ObjectModule" id="9f97ab24-5fa8-4904-97a8-ba436e571008.0" configVersion="6f2be30e8073b74992707ae933bc55fb00000000"/> | ||
<Metadata name="Language.Русский" id="f58d5f4e-e29f-439e-ae9f-58b2015e0061" configVersion="a862de1788f51f48a794f213525c641100000000"/> | ||
<Metadata name="DataProcessor.Тесты.Form.Форма" id="16f1d17a-2ee6-412e-8eb7-aaa7d4ff8526" configVersion="856c560e47c954448c8869857165dcea00000000"/> | ||
<Metadata name="DataProcessor.Тесты.Form.Форма.Form" id="16f1d17a-2ee6-412e-8eb7-aaa7d4ff8526.0" configVersion="0130790045541b47b587bbe682008e7700000000"/> | ||
<Metadata name="DataProcessor.Тесты.ObjectModule" id="9f97ab24-5fa8-4904-97a8-ba436e571008.0" configVersion="2465c1440dc13945ac3d1cb90cc9dc7d00000000"/> | ||
<Metadata name="Language.Русский" id="f58d5f4e-e29f-439e-ae9f-58b2015e0061" configVersion="b2b8d556b7e4ba4ca8d524667acbdedd00000000"/> | ||
</ConfigVersions> | ||
</ConfigDumpInfo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters