Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Web-сервисы получение ответа и очистка

Web-сервисы получение ответа и очистка
Я
   skupidom
 
25.05.18 - 13:48
Коллеги,
требуется создать web-сервис,через который получать ответ по загрузке данных и очистке файла выгрузки.
Что написать в процедурах в модуле web-сервиса:
GetData и ClearData.

Это выгрузка:
Функция GetData(Unit)
                ВозвращаемаяСтруктура = Новый Структура("ВыгружаемыеДанные,НомерОтправленного","",0);
                
                Если ПустаяСтрока(Unit) Тогда
                               ДанныеДляОтправки = ПодготовитьДанныеДляОтправки(ВозвращаемаяСтруктура);
                               Возврат ДанныеДляОтправки;
                КонецЕсли;
                
                УзелОбмена = ПланыОбмена.п_ВнешниеСистемы.НайтиПоНаименованию(Unit,Истина);
                
                Если Не ЗначениеЗаполнено(УзелОбмена) Тогда
                               ДанныеДляОтправки = ПодготовитьДанныеДляОтправки(ВозвращаемаяСтруктура);
                               Возврат ДанныеДляОтправки;
                КонецЕсли;
                
                ЗаписьXML = Новый ЗаписьXML;
                ЗаписьXML.УстановитьСтроку();
                ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
                ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
                
                Попытка
                               ИмяВременногоКаталога = КаталогВременныхФайлов() + "ВыгрузкаЗУП\";
                               СоздатьКаталог(ИмяВременногоКаталога);
                               
                               ИмяФайлаВыгрузки     = ИмяВременногоКаталога + "ВыгрузкаЗП.xml";
                               
                               ИмяВременногоФайлаПравилОбмена = ИмяВременногоКаталога + "ПравилаОбмена.xml";
                              //ДвоичныеПравила = Справочники.ПравилаОбменаСПрограммамиБухгалтерскогоУчета.БухгалтерияПредприятия16.Правила.Получить();

                              //ДвоичныеПравила = Справочники.ПравилаОбменаСПрограммамиБухгалтерскогоУчета.п_УправлениеПроизводственнымПредприятием.Правила.Получить();

                               ДвоичныеПравила = УзелОбмена.ПравилаОбмена.Правила.Получить();
                               ДвоичныеПравила.Записать(ИмяВременногоФайлаПравилОбмена);
                               
                              // Получим Универсальную обработку обмена данными XML

                               ОбработкаВыгрузки    = Обработки.УниверсальныйОбменДаннымиXML.Создать();
                               ОбработкаВыгрузки.РежимОбмена = "Выгрузка";
                               ОбработкаВыгрузки.ИмяФайлаОбмена = ИмяФайлаВыгрузки;
                               ОбработкаВыгрузки.ИмяФайлаПравилОбмена = ИмяВременногоФайлаПравилОбмена;
                               ОбработкаВыгрузки.ЗагрузитьПравилаОбмена();
                              //УстановитьУзелПланаОбмена(ОбработкаВыгрузки.ТаблицаПравилВыгрузки.Строки, УзелОбмена);

                               ОбработкаВыгрузки.ВыполнитьВыгрузку();
                               
                               ФайлВыгрузки = Новый Файл(ИмяФайлаВыгрузки);
                               Если Не ФайлВыгрузки.Существует() Тогда
                                               ВозвращаемаяСтрока = "";
                               Иначе
                                               ТекстовыйФайл = Новый ТекстовыйДокумент;
                                               ТекстовыйФайл.Прочитать(ИмяФайлаВыгрузки);
                                               ЗаписьЖурналаРегистрации("Данные выгружены в "+УзелОбмена.Код, УровеньЖурналаРегистрации.Информация, Метаданные.WebСервисы.ZupExchange);
                                               ВозвращаемаяСтрока = ТекстовыйФайл.ПолучитьТекст();
                                КонецЕсли;
                Исключение
                               ЗаписьЖурналаРегистрации("Данные не выгружены в "+УзелОбмена.Код, УровеньЖурналаРегистрации.Ошибка, Метаданные.WebСервисы.ZupExchange);
                КонецПопытки;
                
                ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
                Пока ВыборкаИзменений.Следующий() Цикл КонецЦикла;
                ЗаписьСообщения.ЗакончитьЗапись();
                
                УдалитьФайлы(ИмяВременногоКаталога);
                ВозвращаемаяСтруктура.ВыгружаемыеДанные = ВозвращаемаяСтрока;
                ВозвращаемаяСтруктура.НомерОтправленного= УзелОбмена.НомерОтправленного;
                ДанныеДляОтправки = ПодготовитьДанныеДляОтправки(ВозвращаемаяСтруктура);
                Возврат ДанныеДляОтправки;
КонецФункции

Функция ПодготовитьДанныеДляОтправки(СтруктураДанных)
                ЗаписьXML = Новый ЗаписьXML;
                ЗаписьXML.УстановитьСтроку();
                СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураДанных);
                Возврат ЗаписьXML.Закрыть();
КонецФункции
 
 
   DrShad
 
1 - 25.05.18 - 13:50
хвастаешься?
   skupidom
 
2 - 25.05.18 - 15:03
получить ответ о загруженных изменениях с очисткой как написать ?
   stix2010
 
3 - 25.05.18 - 15:15
Передать строку, структуру, ТЗ не?
   skupidom
 
4 - 25.05.18 - 15:27
ClearData в модуле Web-сервиса что должно быть?
   stix2010
 
5 - 25.05.18 - 15:57
(4) Это ты нас спрашиваешь? Удаляй то, что тебе надо, пиши информацию в возвращаемую структуру.
   skupidom
 
6 - 26.05.18 - 00:13
можно пример кода с текстом и сообщениями
   Cyberhawk
 
7 - 26.05.18 - 00:48
Студенты со своими заданиями заполонили мисту!

Список тем форума
Рекламное место пустует  Рекламное место пустует
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует