обмен с сайтом не выгружает количество по отбору

1. seregapplk 05.08.21 09:02 Сейчас в теме
Обмен с сайтом не выгружает количество по отбору, отбор работает только если установить конкретную номенклатуру, но если поставить остаток больше 0, выгружает все равно и если есть остаток и если нет. Почему?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ivanov_OM 38 05.08.21 13:42 Сейчас в теме
Скорее всего значение остаток NULL.
У тебя идет сравнение NULL > 0
Посмотри в запросе, которым формируется выгрузка там где поле остаток
и поставь типа такой конструкции:
ЕСТЬNULL(ОстаткиНаСкладахОстатки.Остаток,0) КАК Остаток
3. seregapplk 05.08.21 15:36 Сейчас в теме
(2)
NULL

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

	// Полученные в результате выполнения СКД таблицы значений поместим в новую СКД,
	// чтобы можно было применить отбор по количеству на складе
	
	СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
		
	ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); 
	ИсточникДанных.Имя                = "ИсточникДанных1";
	ИсточникДанных.ТипИсточникаДанных = "Local";

	ОбъектЦены = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
	ОбъектЦены.Имя = "Цены";
	ОбъектЦены.ИмяОбъекта = "Цены";
	ОбъектЦены.ИсточникДанных = "ИсточникДанных1";
	
	ОбъектОстатки = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
	ОбъектОстатки.Имя = "Остатки";
	ОбъектОстатки.ИмяОбъекта = "Остатки";
	ОбъектОстатки.ИсточникДанных = "ИсточникДанных1";
	
	ВнешниеНаборыДанных = Новый Структура;
	ВнешниеНаборыДанных.Вставить("Цены", ТаблицаЦены);
	ВнешниеНаборыДанных.Вставить("Остатки", ТаблицаОстатки);
	
	ПоляИсточниковДанных = Новый Структура;
	ЗаполнитьПоляИсточниковДанных(ПоляИсточниковДанных, Истина, Ложь);
	ЗаполнитьПоляСхемыКомпоновки(ПоляИсточниковДанных, СхемаКомпоновкиДанных);
	
	СвязиНаборов = СхемаКомпоновкиДанных.СвязиНаборовДанных;
	
	НоваяСвязь = СвязиНаборов.Добавить();
	НоваяСвязь.НаборДанныхИсточник  = "Цены";
	НоваяСвязь.НаборДанныхПриемник  = "Остатки";
	НоваяСвязь.ВыражениеИсточник    = "Номенклатура";
	НоваяСвязь.ВыражениеПриемник    = "Номенклатура";
	
	НоваяСвязь = СвязиНаборов.Добавить();
	НоваяСвязь.НаборДанныхИсточник  = "Цены";
	НоваяСвязь.НаборДанныхПриемник  = "Остатки";
	НоваяСвязь.ВыражениеИсточник    = "Характеристика";
	НоваяСвязь.ВыражениеПриемник    = "Характеристика";

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

	ТаблицаДанныеПакетаПредложений.Индексы.Добавить("Номенклатура");

КонецПроцедуры
Показать
5. seregapplk 06.08.21 09:05 Сейчас в теме
(2)
ЕСТЬNULL(ОстаткиНаСкладахОстатки.Остаток,0) КАК Остаток

в отборе так и стоит
4. seregapplk 05.08.21 15:37 Сейчас в теме
Как сделать чтоб с нулевым не выгружалась
Оставьте свое сообщение

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