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

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

Выгрузка,подтверждение,очистка УзлаОбмена с использованием Web-сервиса

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

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

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

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

        ОбработкаВыгрузки.ВыполнитьВыгрузку();
        
        ФайлВыгрузки = Новый Файл(ИмяФайлаВыгрузки);
        Если Не ФайлВыгрузки.Существует() Тогда
            ВозвращаемаяСтрока = "";
        Иначе
            ТекстовыйФайл = Новый ТекстовыйДокумент;
            ТекстовыйФайл.Прочитать(ИмяФайлаВыгрузки);
            ЗаписьЖурналаРегистрации("Данные выгружены в "+УзелОбмена.Код, УровеньЖурналаРегистрации.Информация, Метаданные.WebСервисы.ZupExchange);
            ВозвращаемаяСтрока = ТекстовыйФайл.ПолучитьТекст();
        КонецЕсли;
    Исключение
        ЗаписьЖурналаРегистрации("Данные не выгружены в "+УзелОбмена.Код, УровеньЖурналаРегистрации.Ошибка, Метаданные.WebСервисы.ZupExchange);
    КонецПопытки;
    
    ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
    Пока ВыборкаИзменений.Следующий() Цикл КонецЦикла;
    ЗаписьСообщения.ЗакончитьЗапись();
    
    УдалитьФайлы(ИмяВременногоКаталога);
    ВозвращаемаяСтруктура.ВыгружаемыеДанные = ВозвращаемаяСтрока;
    ВозвращаемаяСтруктура.НомерОтправленного= УзелОбмена.НомерОтправленного;
    ДанныеДляОтправки = ПодготовитьДанныеДляОтправки(ВозвращаемаяСтруктура);
    
    Возврат ДанныеДляОтправки;
    
КонецФункции
 
 
   DrShad
 
1 - 29.05.18 - 17:14
ты уверен что хочешь все это тягать через веб сервант?
   skupidom
 
2 - 29.05.18 - 17:21
можно просто помочь?
   DrShad
 
3 - 29.05.18 - 17:25
не стоит, поверь
   FIXXXL
 
4 - 29.05.18 - 17:30
(0) в ДанныеДляОтправки сунь НомерОтправленного и сделай еще одну операцию веб-сервиса, которая в обратку примет номер и зачистит изменения
   hhhh
 
5 - 29.05.18 - 17:55
(2) в web-сервисе это всё делается точно так же, как и не в web-сервисе. Чего вы прикалываетесь?

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