Ошибка при обмене через Web-сервис

1. user1302499 23.09.21 12:56 Сейчас в теме
Добрый день!

Есть 2 базы УНФ обмениваются остатками через Web-сервис. Одна делает запрос к другой и получает остатки двумя способами:
1) По кнопке на форме элемента номенклатуры (передает параметр с артикулом номенклатура)
2) Регламентным заданием (не передает никаких параметров, должно получать остатки по всей номенклатуре)

Первый способ работает отлично, а вот второй пишет ошибку "недостаточно фактических параметров". Галочку "возможен пустой параметр" у web-сервиса поставил, параметр передаю с типом Неопределено. В чем еще может быть проблема?
По теме из базы знаний
Найденные решения
7. Sashares 35 23.09.21 13:44 Сейчас в теме
Как вариант - сделайте 2 метода у веб-сервиса.
В первом с параметром Код (как сейчас), во-втором, без параметров, и вызывайте разные методы.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tolyan_ekb 80 23.09.21 13:09 Сейчас в теме
(1) а код обработки выдачи остатков содержит обработку параметра Неопределено?
5. user1302499 23.09.21 13:27 Сейчас в теме
(2) Принцип не такой же, как при обычном вызове процедуры, функции?
6. user1302499 23.09.21 13:34 Сейчас в теме
(2)
 Вот функция на вебсервисе: Функция ПолучитьОстаткиНоменклатуры(Код=Неопределено)
	
	Если Код = Неопределено Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗапасыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
		|	ЗапасыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
		|ИЗ
		|	РегистрНакопления.ЗапасыНаСкладах.Остатки(&Дата, ) КАК ЗапасыНаСкладахОстатки";
		
		Запрос.УстановитьПараметр("Дата", ТекущаяДата());
		
		РезультатЗапроса = Запрос.Выполнить().Выгрузить();
		
		Возврат Новый ХранилищеЗначения(РезультатЗапроса);
		
	Иначе
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗапасыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
		|	ЗапасыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
		|ИЗ
		|	РегистрНакопления.ЗапасыНаСкладах.Остатки(&Дата, Номенклатура.Код = &Код) КАК ЗапасыНаСкладахОстатки";
		
		Запрос.УстановитьПараметр("Дата", ТекущаяДата());
		Запрос.УстановитьПараметр("Код", Код);
		
		РезультатЗапроса = Запрос.Выполнить().Выгрузить();
		
		Возврат Новый ХранилищеЗначения(РезультатЗапроса);
		
		
	КонецЕсли;	
			
	
КонецФункции
 
Показать
3. SaschaL 23.09.21 13:18 Сейчас в теме
(1) а в отладчике что- то формирутеся?
4. user1302499 23.09.21 13:26 Сейчас в теме
(3) что должно формироваться?
7. Sashares 35 23.09.21 13:44 Сейчас в теме
Как вариант - сделайте 2 метода у веб-сервиса.
В первом с параметром Код (как сейчас), во-втором, без параметров, и вызывайте разные методы.
8. user1302499 23.09.21 13:46 Сейчас в теме
(7) Мда уж...настолько просто, а я даже не додумался до этого(

Спасибо)
9. Sashares 35 23.09.21 13:50 Сейчас в теме
(8)Еще вариант, при запросе всех значений, задайте служебное значения для параметра Код.
Например, "[ПО_ВСЕМ_КОДАМ]", и передавайте его из рег.задания, вместо Неопределено.
А на стороне второй базы проверяйте параметр код - что это обычное значение или служебное.
Оставьте свое сообщение

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