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 + + <key>ru</key> + <value>Пользователь</value> + + 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 + + <key>ru</key> + <value>Пароль</value> + + 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 + + + <key>ru</key> + <value>Пользователь пароль</value> + + + УИ_ПользовательПарольВебСервисаРасширеннаяПодсказка + 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 + + + <key>ru</key> + <value>У и группа выгрузка через веб сервис</value> + + + УИ_ГруппаВыгрузкаЧерезВебСервисРасширеннаяПодсказка + 417 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + true true @@ -7621,6 +7895,23 @@ DontUse + + УИ_ТестПодключенияКВебСервису + + <key>ru</key> + <value>Тест подключения</value> + + 20 + + true + + + + УИ_ТестПодключенияКВебСервису + + + 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.Закрыть()); Возврат Ответ;