Передача параметров из одной базы в другую через веб сервис.

1. user1671936 1 30.09.21 19:44 Сейчас в теме
Доброго времени суток. Есть опубликованная база с веб сервисом (база источник), операция веб сервиса SubmitQuery с параметрами TypeOfExchange (тип значения string), BeginingDate и EndDate (тип значения Date) . Эти параметры передаются в модуль веб сервиса
        Функция SubmitQuery(TypeOfExchange,BeginningDate,EndDate)
    
    Структура = Десериализовать(TypeOfExchange);
    ТаблицаЗначений = Новый Структура;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("НачалоПериода", BeginningDate);
    Запрос.УстановитьПараметр("КонецПериода", КонецДня(EndDate));
    Запрос.Текст =

В другой базе (база приемник) написан обработчик, который подключается через WS-ссылку к базе источнику и получает оттуда данные из запроса. На форме обработчика есть выбор периода. Подскажите, как передать дату из базы приемника в базу источник , чтобы параметрам BeginningDate и EndDate из функции SubmitQuery присвоились значения , которые будут выбраны в обработчике. Может кто уже сталкивался с такими задачами.

Кусок кода из обработчика, отвечающий за подключение к базе источнику

&НаСервере
Функция ВыполнитьЗагрузкуНаСервере()
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    Счетчик = 1;
    
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("СравнениеДанных");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьОшибок = Макет.ПолучитьОбласть("СтрокаОшибок");
    
    Шапка.Параметры.НачПериод = Формат(НачалоПериода,"ДФ=dd.MM.yyyy");
    Шапка.Параметры.КонПериод = Формат(КонецПериода,"ДФ=dd.MM.yyyy");
    
    ТабДок.Вывести(Шапка);
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Данные", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150)));    
    
    Соединение = WSСсылки.ПолучитьДанныеДокументов.СоздатьWSПрокси("http://localhost/ws/CompareDocument", "WebCompareDocument", "WebCompareDocumentSoap");
    Соединение.Пользователь = "Admin";
    Соединение.Пароль = "13788";
    
    Операция = Соединение.ТочкаПодключения.Интерфейс.Операции.Получить("SubmitQuery");
    //Операция = Соединение.ТочкаПодключения.Интерфейс.Операции.Получить("BeginningDate");
    //Операция = Соединение.ТочкаПодключения.Интерфейс.Операции.Получить("EndDate");
    
    Данные = Новый Структура;
    Данные.Вставить("ТаблицаДанных", ТЗ);
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 30.09.21 23:28 Сейчас в теме
Круто же! Есть чем гордиться!
dehro; TokarevV; +2 Ответить
3. dehro 5 01.10.21 06:59 Сейчас в теме
(2) Позвольте не согласиться: в функции "SubmitQuery" не дописан запрос и вообще нет "КонецФункции". Незавершённая сюжетная линия.
TokarevV; +1 Ответить
4. user1619761 01.10.21 08:16 Сейчас в теме
(2)
(3) Позвольте не согласиться. У коллеги вопрос , который находится между функциями, а именно " В другой базе (база приемник) написан обработчик, который подключается через WS-ссылку к базе источнику и получает оттуда данные из запроса. На форме обработчика есть выбор периода. Подскажите, как передать дату из базы приемника в базу источник , чтобы параметрам BeginningDate и EndDate из функции SubmitQuery присвоились значения , которые будут выбраны в обработчике. Может кто уже сталкивался с такими задачами.

Кусок кода из обработчика, отвечающий за подключение к базе источнику &НаСервере
Функция ВыполнитьЗагрузкуНаСервере()"
9. FatPanzer 01.10.21 12:38 Сейчас в теме
(4) В тексте сообщения нет никакого вопроса. Возможно, человек просто хочет похвастаться своим кодом. Почему бы его не похвалить за это?
10. user1619761 01.10.21 12:43 Сейчас в теме
(9) Просто вопрос между функциями помещен был, поэтому он попал в код) Тоже сначала так подумал, что человек поделился своими результатами, но когда внимательнее посмотрел код то увидел в нем вопрос)) Только вопрос без знака вопроса, но все равно)
5. Dem0 01.10.21 08:34 Сейчас в теме
Ну как-то надо в параметры веб-сервиса передать эти даты.
У меня на мобильном приложении идет отправка данных через веб-сервис:
ВТочкаВхода = ВСервис.ТочкиПодключения.Получить(СтруктураИменВебСервиса.ПолныйИндекс);
Операция_НачатьОбмен = ВТочкаВхода.Интерфейс.Операции.Получить("НачатьОбмен");
ПериодВыгрузки = ВСПрокси.ФабрикаXDTO.Создать(Операция_НачатьОбмен.Параметры.Получить("ПериодВыгрузки").Тип,"За последнюю неделю");

Т.е. типы этих параметров получаете через xdto, хотя мб для даты наверное необязательно.
А по этому типу параметр создаете.
6. Dem0 01.10.21 08:34 Сейчас в теме
блин почему код так убого раскрашивается. ЧЯДНТ?
7. Dem0 01.10.21 08:35 Сейчас в теме
И как уже правильно сказали - учитесь оформлять вопрос.
Вон я например даже код неправильно оформляю =)
8. VZyryanov 01.10.21 09:24 Сейчас в теме
Передаю
Рез=ВебСервис.ЗатратыПоЗаказам(НомерЗаказа,Строка(ДатаНачала),Строка(ДатаОкончания));
ТЗ=ЗначениеИзСтрокиВнутр(Рез);


Операция веб-сервиса
Функция ЗатратыПоЗаказам(НомерЗаказа, НачалоПериода, КонецПериода)
	НачалоПериода1=Неопределено;
	КонецПериода1=Неопределено;
	Если ЗначениеЗаполнено(НачалоПериода) Тогда		
		НачалоПериода1=Дата(НачалоПериода);
	КонецЕсли;
	Если ЗначениеЗаполнено(КонецПериода) Тогда		
		КонецПериода1=Дата(КонецПериода);
	КонецЕсли;
	ТЗ=КФ_Выгрузка.ЗатратыПоЗаказам(НомерЗаказа,НачалоПериода1,КонецПериода1);
	Возврат ЗначениеВСтрокуВнутр(ТЗ);
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот