diff --git a/README.md b/README.md
index 39009c3c..0e68ab0b 100644
--- a/README.md
+++ b/README.md
@@ -79,6 +79,7 @@
- **Загрузка данных из табличного докумнета**-Обработка предназначена для загрузки данных в справочники и табличные части различных объектов из табличного документа. Форк обработки https://infostart.ru/public/269425/. [Разрешение автора](http://forum.infostart.ru/forum15/topic107643/message2397121/#message2397121)
- **Редактор JSON**- Позволяет в удобной форме редактировать строки JSON. Содержит подсветку синтаксиса JSON, редактирование в виде дерева, некоторые автоподстановки. Редактор реализован на основании библиотеки https://github.com/josdejong/jsoneditor. В Windows работает, начиная с версии платформы 8.3.14
- **Редактор HTML**- Быстрая отладка отображения HTML страниц в 1С. Представляет собой экран разбитый на 4 части, в левой части три редактора-тела HTML, CSS и JavaScript, а право - поле результата. Есть контекстная подсказка и автодополнение кода. Для редкторов кода используется библиотека https://ace.c9.io/. Незаменим, при тестировании вывода HTML в 1С, т.к. даже с платформы 8.3.14 отображение в браузере и 1С, а также в разных операционных системах может сильно отличаться
+- **Универсальный обмен данными в формате XML (с фильтрами и прямой загрузкой через HTTP сервис)** - Выгрузка и загрузка по правилам обмена. Форк стандартной обработки от 1С и https://infostart.ru/public/1176839/. Добавлена возможность накладывать фильтры на выгружаемые объеты, и прямая выгрузка в базу через http сервис универсальных инструментов.
# Программный интерфейс
diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form"
index bed24b5f..16e76b0c 100644
--- "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form"
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form"
@@ -214,6 +214,15 @@
1
+
+
+ ru
+ Выгрузка в файл и загрузка в приемник через вебсервис
+
+
+ 2
+
+
@@ -1350,6 +1359,271 @@
true
+
+ УИ_ГруппаВыгрузкаЧерезВебСервис
+ 416
+
+ АдресПубликацииПриемника
+ 418
+ true
+ true
+
+ true
+
+
+ Объект.УИ_АдресПубликацииПриемника
+
+
+ АдресПубликацииПриемникаРасширеннаяПодсказка
+ 420
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ АдресПубликацииПриемникаКонтекстноеМеню
+ 419
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ УИ_ПользовательПарольВебСервиса
+ 423
+
+ УИ_ПользовательИнформационнойБазыДляПодключенияКВебСервису
+ 425
+
+ ru
+ Пользователь
+
+ true
+ true
+
+ true
+
+
+
+ Объект.ПользовательИнформационнойБазыДляПодключения
+
+
+
+ УИ_ПользовательИнформационнойБазыДляПодключенияКВебСервисуРасширеннаяПодсказка
+ 427
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ УИ_ПользовательИнформационнойБазыДляПодключенияКВебСервисуКонтекстноеМеню
+ 426
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+
+
+
+ УИ_ПарольИнформационнойБазыДляПодключенияКВебСервису
+ 428
+
+ ru
+ Пароль
+
+ true
+ true
+
+ true
+
+
+
+ Объект.ПарольИнформационнойБазыДляПодключения
+
+
+
+ УИ_ПарольИнформационнойБазыДляПодключенияКВебСервисуРасширеннаяПодсказка
+ 430
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ УИ_ПарольИнформационнойБазыДляПодключенияКВебСервисуКонтекстноеМеню
+ 429
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ true
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Пользователь пароль
+
+
+ УИ_ПользовательПарольВебСервисаРасширеннаяПодсказка
+ 424
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ true
+ true
+ Auto
+ DontUse
+
+
+
+ УИ_ТестПодключенияКВебСервису
+ 421
+ true
+ true
+
+ true
+
+
+ УИ_ТестПодключенияКВебСервисуРасширеннаяПодсказка
+ 422
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.УИ_ТестПодключенияКВебСервису
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ ru
+ У и группа выгрузка через веб сервис
+
+
+ УИ_ГруппаВыгрузкаЧерезВебСервисРасширеннаяПодсказка
+ 417
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+ Page
+
+ Vertical
+ true
+
+
true
true
@@ -7621,6 +7895,23 @@
DontUse
+
+ УИ_ТестПодключенияКВебСервису
+
+ ru
+ Тест подключения
+
+ 20
+
+
+
+ УИ_ТестПодключенияКВебСервису
+
+
+ Auto
+
diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Module.bsl" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Module.bsl"
index aa352c0b..9f5a6cf5 100644
--- "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Module.bsl"
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Module.bsl"
@@ -786,6 +786,31 @@
КонецПроцедуры
+&НаКлиенте
+Процедура УИ_ТестПодключенияКВебСервису(Команда)
+ Путь=Объект.УИ_АдресПубликацииПриемника+"/hs/tools-ui-1c/exchange";
+
+ ДопПараметры=Новый Структура;
+ ДопПараметры.Вставить("Таймаут", 10);
+
+ Аутентификация=Новый Структура;
+ Аутентификация.Вставить("Пользователь",Объект.ПользовательИнформационнойБазыДляПодключения);
+ Аутентификация.Вставить("Пароль",Объект.ПарольИнформационнойБазыДляПодключения);
+ ДопПараметры.Вставить("Аутентификация",Аутентификация);
+
+ Попытка
+ РезультатПодключения=УИ_КоннекторHTTP.Get(Путь,,ДопПараметры);
+ РезультатПодключения=УИ_КоннекторHTTP.КакТекст(РезультатПодключения);
+ Исключение
+ РезультатПодключения=Неопределено;
+ СообщитьПользователю(ОписаниеОшибки());
+ КонецПопытки;
+ Если РезультатПодключения="OK" Тогда
+ ПоказатьПредупреждение(,"Тест подключения пройден успешно");
+ КонецЕсли;
+КонецПроцедуры
+
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1590,7 +1615,7 @@
Объект.ИмяФайлаПравилОбмена = ИмяФайлаНаСервереИлиКлиенте(ИмяФайлаПравил, АдресФайлаПравилВХранилище);
Если Не ПрямаяВыгрузка Тогда
-
+
ИмяВременногоФайлаДанных = ИмяФайлаНаСервереИлиКлиенте(ИмяФайлаДанных, "",,Истина, Ложь);
Если ИмяВременногоФайлаДанных = Неопределено Тогда
@@ -1603,6 +1628,12 @@
Объект.ИмяФайлаОбмена = ИмяВременногоФайлаДанных;
КонецЕсли;
+ //УИ++
+ ИначеЕсли ПрямаяВыгрузка=2 Тогда
+ ИмяВременногоФайлаДанных=ПолучитьИмяВременногоФайла(".xml");
+ Объект.ИмяФайлаОбмена = ИмяВременногоФайлаДанных;
+ Объект.УИ_ВыгрузкаЧерезВебСервис=Истина;
+ //УИ--
КонецЕсли;
@@ -1651,6 +1682,13 @@
АдресФайлаДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ИмяФайлаОбмена), УникальныйИдентификатор);
УдалитьФайлы(Объект.ИмяФайлаОбмена);
+
+ //УИ++
+ ИначеЕсли ПрямаяВыгрузка=2 Тогда
+ АдресФайлаДанных = "";
+ УдалитьФайлы(Объект.ИмяФайлаОбмена);
+
+ //УИ--
Иначе
@@ -1728,9 +1766,20 @@
ПараметрыВыгрузки = Элементы.ПараметрыВыгрузки;
- ПараметрыВыгрузки.ТекущаяСтраница = ?(ПрямаяВыгрузка = 0,
- ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВФайл,
- ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВИБПриемник);
+ //УИ++
+// ПараметрыВыгрузки.ТекущаяСтраница = ?(ПрямаяВыгрузка = 0,
+// ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВФайл,
+// ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВИБПриемник);
+ Если ПрямаяВыгрузка=0 Тогда
+ ПараметрыВыгрузки.ТекущаяСтраница=ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВФайл;
+ ИначеЕсли ПрямаяВыгрузка=1 Тогда
+ ПараметрыВыгрузки.ТекущаяСтраница=ПараметрыВыгрузки.ПодчиненныеЭлементы.ВыгрузкаВИБПриемник;
+ Иначе
+ ПараметрыВыгрузки.ТекущаяСтраница=ПараметрыВыгрузки.ПодчиненныеЭлементы.УИ_ГруппаВыгрузкаЧерезВебСервис;
+ КонецЕсли;
+
+ Объект.УИ_ВыгрузкаЧерезВебСервис=(ПрямаяВыгрузка = 2);
+ //УИ--
Объект.НепосредственноеЧтениеВИБПриемнике = (ПрямаяВыгрузка = 1);
@@ -2050,4 +2099,5 @@
+
#КонецОбласти
\ No newline at end of file
diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/ObjectModule.bsl" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/ObjectModule.bsl"
index b1ca9d34..19951099 100644
--- "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/ObjectModule.bsl"
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/ObjectModule.bsl"
@@ -13161,11 +13161,55 @@
Функция ВыполнитьПередачуИнформацииПриЗавершенииПередачиДанных()
- Если НЕ НепосредственноеЧтениеВИБПриемнике Тогда
- Возврат Истина;
+ //УИ++
+// Если НЕ НепосредственноеЧтениеВИБПриемнике Тогда
+// Возврат Истина;
+// КонецЕсли;
+//
+// мОбработкаДляЗагрузкиДанных.ВыполнитьДействияПослеЗавершенияЧтенияДанных();
+
+ Если НепосредственноеЧтениеВИБПриемнике Тогда
+ мОбработкаДляЗагрузкиДанных.ВыполнитьДействияПослеЗавершенияЧтенияДанных();
+ ИначеЕсли УИ_ВыгрузкаЧерезВебСервис Тогда
+ Сообщить("Начало загрузки через вебсервис "+ТекущаяДата());
+ КэшАрхивации=АрхивироватьФайл;
+ АрхивироватьФайл=Истина;
+ СжатьРезультирующийФайлОбмена();
+ АрхивироватьФайл=КэшАрхивации;
+
+ ДвоичныеДанные=Новый ДвоичныеДанные(ИмяФайлаОбмена);
+
+ ПараметрыЗапросаHTTP=Новый Структура;
+ ПараметрыЗапросаHTTP.Вставить("Таймайт", 0);
+
+ Аутентификация=Новый Структура;
+ Аутентификация.Вставить("Пользователь", ПользовательИнформационнойБазыДляПодключения);
+ Аутентификация.Вставить("Пароль", ПарольИнформационнойБазыДляПодключения);
+ ПараметрыЗапросаHTTP.Вставить("Аутентификация", Аутентификация);
+
+ Попытка
+ РезультатВыгрузки=УИ_КоннекторHTTP.Post(УИ_АдресПубликацииПриемника+"/hs/tools-ui-1c/exchange", ДвоичныеДанные, ПараметрыЗапросаHTTP);
+ СтруктураРезультата=УИ_КоннекторHTTP.КакJson(РезультатВыгрузки);
+
+ ЛогЗагрузки=СтруктураРезультата["ЛогЗагрузки"];
+ Текст=Новый ТекстовыйДокумент();
+ Текст.УстановитьТекст(ЛогЗагрузки);
+ Для НомерСтрокиЛога = 1 По Текст.КоличествоСтрок() Цикл
+ Сообщить(Текст.ПолучитьСтроку(НомерСтрокиЛога));
+
+ КонецЦикла;
+
+ Если ЗначениеЗаполнено(СтруктураРезультата["ОшибкаСервиса"]) Тогда
+ Сообщить(СтруктураРезультата["ОшибкаСервиса"]);
+ КонецЕсли;
+ Исключение
+ Сообщить("Ошибка отправки сообщения в приемник "+ОписаниеОшибки());
+ КонецПопытки;
+
+ Сообщить("Окончани загрузки через вебсервис "+ТекущаяДата());
+
КонецЕсли;
-
- мОбработкаДляЗагрузкиДанных.ВыполнитьДействияПослеЗавершенияЧтенияДанных();
+ //УИ--
КонецФункции
@@ -13300,6 +13344,12 @@
Отказ = Ложь;
+ //УИ++
+ Если УИ_ВыгрузкаЧерезВебСервис Тогда
+ БезопасныйРежим=Ложь;
+ КонецЕсли;
+ //УИ--
+
Попытка
// Включаем правила обмена в файл.
diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML.mdo" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML.mdo"
index e2c93528..8c3cda82 100644
--- "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML.mdo"
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/DataProcessors/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML/\320\243\320\230_\320\243\320\275\320\270\320\262\320\265\321\200\321\201\320\260\320\273\321\214\320\275\321\213\320\271\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270XML.mdo"
@@ -1236,6 +1236,27 @@
+
+ УИ_АдресПубликацииПриемника
+
+ ru
+ Адрес публикации приемника
+
+
+ String
+
+
+
+
+ УИ_ВыгрузкаЧерезВебСервис
+
+ ru
+ Выгрузка через веб сервис
+
+
+ Boolean
+
+
УправляемаяФорма
diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/HTTPServices/\320\243\320\230_\320\237\321\203\320\261\320\273\320\270\320\272\321\203\320\265\320\274\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Module.bsl" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/HTTPServices/\320\243\320\230_\320\237\321\203\320\261\320\273\320\270\320\272\321\203\320\265\320\274\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Module.bsl"
index fa5a84a8..826dccc3 100644
--- "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/HTTPServices/\320\243\320\230_\320\237\321\203\320\261\320\273\320\270\320\272\321\203\320\265\320\274\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Module.bsl"
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202\321\213/src/HTTPServices/\320\243\320\230_\320\237\321\203\320\261\320\273\320\270\320\272\321\203\320\265\320\274\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Module.bsl"
@@ -16,38 +16,38 @@
КонецФункции
Процедура ОбработатьЗапрос(WebID, ВходящиеПараметры, Ответ)
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | _37583_ALG.Ссылка КАК Алгоритм
- |ИЗ
- | Справочник.УИ_Алгоритмы КАК _37583_ALG
- |ГДЕ
- | _37583_ALG.ИдентификаторHTTP = &WebID";
-
- Запрос.УстановитьПараметр("WebID", WebID);
-
- РезультатЗапроса = Запрос.Выполнить();
- Если Не РезультатЗапроса.Пустой() Тогда
- ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
- ВыборкаДетальныеЗаписи.Следующий();
- сОтвет = _37583_АлгоритмыСервер.ВыполнитьФункцию(ВыборкаДетальныеЗаписи.Алгоритм, ВходящиеПараметры);
- Если ВходящиеПараметры["Отказ"] Тогда
- Ответ.КодСостояния = 500;
- Ответ.ТелоОтвета = ВходящиеПараметры.СообщениеОбОшибке;
- Иначе
- Если сОтвет["Результат"] = Неопределено Тогда
- Ответ.КодСостояния = 500;
- Ответ.ТелоОтвета = "Ошибка: не определен результат выполнения функции";
-
- Иначе
- Ответ.ТелоОтвета =сОтвет["Результат"];
- КонецЕсли;
- КонецЕсли;
- Иначе
- Ответ.КодСостояния = 404;
- Ответ.ТелоОтвета = "Ошибка: не найден алгоритм";
- КонецЕсли;
+// Запрос = Новый Запрос;
+// Запрос.Текст =
+// "ВЫБРАТЬ ПЕРВЫЕ 1
+// | _37583_ALG.Ссылка КАК Алгоритм
+// |ИЗ
+// | Справочник.УИ_Алгоритмы КАК _37583_ALG
+// |ГДЕ
+// | _37583_ALG.ИдентификаторHTTP = &WebID";
+//
+// Запрос.УстановитьПараметр("WebID", WebID);
+//
+// РезультатЗапроса = Запрос.Выполнить();
+// Если Не РезультатЗапроса.Пустой() Тогда
+// ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
+// ВыборкаДетальныеЗаписи.Следующий();
+// сОтвет = _37583_АлгоритмыСервер.ВыполнитьФункцию(ВыборкаДетальныеЗаписи.Алгоритм, ВходящиеПараметры);
+// Если ВходящиеПараметры["Отказ"] Тогда
+// Ответ.КодСостояния = 500;
+// Ответ.ТелоОтвета = ВходящиеПараметры.СообщениеОбОшибке;
+// Иначе
+// Если сОтвет["Результат"] = Неопределено Тогда
+// Ответ.КодСостояния = 500;
+// Ответ.ТелоОтвета = "Ошибка: не определен результат выполнения функции";
+//
+// Иначе
+// Ответ.ТелоОтвета =сОтвет["Результат"];
+// КонецЕсли;
+// КонецЕсли;
+// Иначе
+// Ответ.КодСостояния = 404;
+// Ответ.ТелоОтвета = "Ошибка: не найден алгоритм";
+// КонецЕсли;
КонецПроцедуры
Функция _37583_ALG_POST(Запрос)
@@ -74,7 +74,7 @@
Функция ПередачаДанныхPing(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
- Ответ.УстановитьТелоИзСтроки("Ок");
+ Ответ.УстановитьТелоИзСтроки("OK");
Возврат Ответ;
КонецФункции
@@ -83,48 +83,52 @@
ОшибкаЗагрузки=Ложь;
ОшибкаСервиса="";
ЛогЗагрузки="";
-
+
Попытка
- ИмяФайла = ПолучитьИмяВременногоФайла("xml");
- Запись = Новый ЗаписьТекста(ИмяФайла);
- Запись.ЗаписатьСтроку(Запрос.ПолучитьТелоКакСтроку("UTF-8"));
- Запись.Закрыть();
+ ИмяФайла = ПолучитьИмяВременногоФайла("zip");
+ ДвоичныеДанныеОбмена=Запрос.ПолучитьТелоКакДвоичныеДанные();
+ ДвоичныеДанныеОбмена.Записать(ИмяФайла);
- ИмяФайлаЛогаЗагрузки=ПолучитьИмяВременногоФайла();
+ ИмяФайлаЛогаЗагрузки=ПолучитьИмяВременногоФайла("txt");
Обработка = Обработки.УИ_УниверсальныйОбменДаннымиXML.Создать();
Обработка.РежимОбмена = "Загрузка";
Обработка.ИмяФайлаОбмена = ИмяФайла;
- Обработка.ИмяФайлаПротоколаОбменаЗагрузка=ИмяФайлаЛогаЗагрузки;
+ Обработка.ИмяФайлаПротоколаОбмена=ИмяФайлаЛогаЗагрузки;
+ Обработка.КодировкаФайлаПротоколаОбмена="UTF-8";
Обработка.ВыполнитьЗагрузку();
ОшибкаЗагрузки=Обработка.ФлагОшибки;
УдалитьФайлы(ИмяФайла);
-
- ТекстЛога=Новый ТекстовыйДокумент();
- ТекстЛога.Прочитать(ИмяФайлаЛогаЗагрузки);
-
- ЛогЗагрузки=ТекстЛога.ПолучитьТекст;
- ТекстЛога=Неопределено;
-
- УдалитьФайлы(ИмяФайлаЛогаЗагрузки);
+ ФайлЛога=Новый Файл(ИмяФайлаЛогаЗагрузки);
+ Если ФайлЛога.Существует() Тогда
+ ТекстЛога=Новый ТекстовыйДокумент;
+ ТекстЛога.Прочитать(ИмяФайлаЛогаЗагрузки);
+
+ ЛогЗагрузки=ТекстЛога.ПолучитьТекст();
+ ТекстЛога=Неопределено;
+
+ УдалитьФайлы(ИмяФайлаЛогаЗагрузки);
+
+ КонецЕсли;
Исключение
ОшибкаСервиса = ОписаниеОшибки();
КонецПопытки;
-
+
СтруктураОтвета=Новый Структура;
- СтруктураОтвета.Вставить("ОшибкаСервиса",ОшибкаСервиса);
- СтруктураОтвета.Вставить("ОшибкаЗагрузки",ОшибкаЗагрузки);
+ СтруктураОтвета.Вставить("ОшибкаСервиса", ОшибкаСервиса);
+ СтруктураОтвета.Вставить("ОшибкаЗагрузки", ОшибкаЗагрузки);
СтруктураОтвета.Вставить("ЛогЗагрузки", ЛогЗагрузки);
-
+
ЗаписьJSON=Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
-
+
ЗаписатьJSON(ЗаписьJSON, СтруктураОтвета);
Ответ = Новый HTTPСервисОтвет(200);
+ Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
Возврат Ответ;