Добавить условие в запрос

1. Synthersizer 07.11.22 10:12 Сейчас в теме
Доброе утро, подскажите пожалуйста можно ли добавить это условие в запрос и так же выводить ошибку? (Пытался но не получалось) Так понимаю нужно использовать еще 'ОбщегоНазначенияКлиентСервер.СообщитьПользователю'. Не кидайтесь тапками, учусь :).
&Перед("ОбработкаПроведения")
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	Запрос = Новый Запрос; 
	Запрос.УстановитьПараметр("ЗаказНаПроизводство",   ЗаказНаПроизводство);
	Запрос.УстановитьПараметр("Подразделение",   Подразделение);
	Запрос.УстановитьПараметр("Дата", Дата);
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ЗаказНаПроизводствоЗапасы.Ссылка КАК ЗаказНаПроизводство,
	|	ЗаказНаПроизводствоЗапасы.Номенклатура КАК Номенклатура,
	|	ЗаказНаПроизводствоЗапасы.Характеристика КАК Характеристика,
	|	ЗаказНаПроизводствоЗапасы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	ЗаказНаПроизводствоЗапасы.Количество КАК Количество,
	|	ЗаказНаПроизводствоЗапасы.Этап КАК ЭтапПроизводства
	|ПОМЕСТИТЬ ВтЗаказНаПроизводство
	|ИЗ
	|	Документ.ЗаказНаПроизводство.Запасы КАК ЗаказНаПроизводствоЗапасы
	|ГДЕ
	|	ЗаказНаПроизводствоЗапасы.Ссылка В(&ЗаказНаПроизводство)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВтЗаказНаПроизводство.ЭтапПроизводства КАК ЭтапПроизводства,
	|	ЭтапыПроизводстваСтруктурныеЕдиницы.СтруктурнаяЕдиница КАК ПодразделениеЭтапа
	|ПОМЕСТИТЬ ВтЭтапыПроизводства
	|ИЗ
	|	ВтЗаказНаПроизводство КАК ВтЗаказНаПроизводство
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапыПроизводства.СтруктурныеЕдиницы КАК ЭтапыПроизводстваСтруктурныеЕдиницы
	|		ПО ВтЗаказНаПроизводство.ЭтапПроизводства = ЭтапыПроизводстваСтруктурныеЕдиницы.Ссылка
	|
	|СГРУППИРОВАТЬ ПО
	|	ЭтапыПроизводстваСтруктурныеЕдиницы.СтруктурнаяЕдиница,
	|	ВтЗаказНаПроизводство.ЭтапПроизводства
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	СУММА(РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
	|	СУММА(РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.Материал КАК Материал,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.Характеристика КАК Характеристика,
	|	СУММА(РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.КоличествоПриход - РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.КоличествоРасход) КАК ОстатокЛимита
	|ПОМЕСТИТЬ ВтЛимиты
	|ИЗ
	|	РегистрНакопления.РезервыМатериаловПодЗаказНаПроизводстве.Обороты КАК РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты
	|
	|СГРУППИРОВАТЬ ПО
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.ЗаказНаПроизводство,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.Материал,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.СтруктурнаяЕдиница,
	|	РезервыМатериаловПодЗаказНаПроизводствеОстаткиИОбороты.Характеристика
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВтЗаказНаПроизводство.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
	|	ВтЭтапыПроизводства.ПодразделениеЭтапа КАК Подразделение,
	|	ВтЗаказНаПроизводство.Номенклатура.Склад КАК СкладМатериала,
	|	ВтЗаказНаПроизводство.Номенклатура КАК Номенклатура,
	|	ВтЗаказНаПроизводство.Характеристика КАК Характеристика,
	|	ВтЗаказНаПроизводство.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	СУММА(ВтЗаказНаПроизводство.Количество) КАК Количество,
	|	СУММА(ВтЛимиты.КоличествоПриход) КАК ЛимитПоЗаказу,
	|	СУММА(ВтЛимиты.КоличествоРасход) КАК Выдано,
	|	СУММА(ВтЛимиты.ОстатокЛимита) КАК ОстатокЛимита
	|ПОМЕСТИТЬ ВтЗаказ
	|ИЗ
	|	ВтЗаказНаПроизводство КАК ВтЗаказНаПроизводство
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтЭтапыПроизводства КАК ВтЭтапыПроизводства
	|		ПО ВтЗаказНаПроизводство.ЭтапПроизводства = ВтЭтапыПроизводства.ЭтапПроизводства
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтЛимиты КАК ВтЛимиты
	|		ПО ВтЗаказНаПроизводство.ЗаказНаПроизводство = ВтЛимиты.ЗаказНаПроизводство
	|			И ВтЗаказНаПроизводство.Номенклатура = ВтЛимиты.Материал
	|			И ВтЗаказНаПроизводство.Характеристика = ВтЛимиты.Характеристика
	|
	|СГРУППИРОВАТЬ ПО
	|	ВтЗаказНаПроизводство.ЗаказНаПроизводство,
	|	ВтЭтапыПроизводства.ПодразделениеЭтапа,
	|	ВтЗаказНаПроизводство.Номенклатура.Склад,
	|	ВтЗаказНаПроизводство.Номенклатура,
	|	ВтЗаказНаПроизводство.Характеристика,
	|	ВтЗаказНаПроизводство.ЕдиницаИзмерения
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВЗ.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
	|	ВЗ.Подразделение КАК Подразделение,
	|	ВЗ.СкладМатериала КАК СкладМатериала,
	|	ВЗ.Номенклатура КАК Номенклатура,
	|	ВЗ.Характеристика КАК Характеристика,
	|	ВЗ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	СУММА(ВЗ.Количество) КАК Количество,
	|	СУММА(ВЗ.ЛимитПоЗаказу) КАК ЛимитПоЗаказу,
	|	СУММА(ВЗ.Выдано) КАК Выдано,
	|	СУММА(ВЗ.ОстатокЛимита) КАК ОстатокЛимита
	|ПОМЕСТИТЬ ВтЛимитки
	|ИЗ
	|	(ВЫБРАТЬ
	|		ВтЗаказ.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
	|		ВтЗаказ.Подразделение КАК Подразделение,
	|		ВтЗаказ.СкладМатериала КАК СкладМатериала,
	|		ВтЗаказ.Номенклатура КАК Номенклатура,
	|		ВтЗаказ.Характеристика КАК Характеристика,
	|		ВтЗаказ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|		СУММА(ВтЗаказ.Количество) КАК Количество,
	|		СУММА(ВтЗаказ.ЛимитПоЗаказу) КАК ЛимитПоЗаказу,
	|		СУММА(ВтЗаказ.Выдано) КАК Выдано,
	|		СУММА(ВтЗаказ.ОстатокЛимита) КАК ОстатокЛимита
	|	ИЗ
	|		ВтЗаказ КАК ВтЗаказ
	|	
	|	СГРУППИРОВАТЬ ПО
	|		ВтЗаказ.ЗаказНаПроизводство,
	|		ВтЗаказ.Подразделение,
	|		ВтЗаказ.СкладМатериала,
	|		ВтЗаказ.Номенклатура,
	|		ВтЗаказ.Характеристика,
	|		ВтЗаказ.ЕдиницаИзмерения
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.ЗаказНаПроизводство,
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.Подразделение,
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.Склад,
	|		ЛимитноЗаборнаяКартаТовары.Номенклатура,
	|		ЛимитноЗаборнаяКартаТовары.Характеристика,
	|		ЛимитноЗаборнаяКартаТовары.ЕдиницаИзмерения,
	|		СУММА(-ЛимитноЗаборнаяКартаТовары.Количество),
	|		СУММА(0),
	|		СУММА(0),
	|		СУММА(0)
	|	ИЗ
	|		Документ.ЛимитноЗаборнаяКарта.Товары КАК ЛимитноЗаборнаяКартаТовары
	|	ГДЕ
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.Проведен
	|	
	|	СГРУППИРОВАТЬ ПО
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.ЗаказНаПроизводство,
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.Подразделение,
	|		ЛимитноЗаборнаяКартаТовары.Ссылка.Склад,
	|		ЛимитноЗаборнаяКартаТовары.Номенклатура,
	|		ЛимитноЗаборнаяКартаТовары.Характеристика,
	|		ЛимитноЗаборнаяКартаТовары.ЕдиницаИзмерения) КАК ВЗ
	|
	|СГРУППИРОВАТЬ ПО
	|	ВЗ.СкладМатериала,
	|	ВЗ.Подразделение,
	|	ВЗ.Номенклатура,
	|	ВЗ.ЕдиницаИзмерения,
	|	ВЗ.Характеристика,
	|	ВЗ.ЗаказНаПроизводство
	|
	|ИМЕЮЩИЕ
	|	СУММА(ВЗ.Количество) < 0
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВтЛимитки.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
	|	ВтЛимитки.Подразделение КАК Подразделение,
	|	ВтЛимитки.СкладМатериала КАК СкладМатериала,
	|	ВтЛимитки.Номенклатура КАК Номенклатура,
	|	ВтЛимитки.Характеристика КАК Характеристика,
	|	ВтЛимитки.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	СУММА(ВтЛимитки.Количество) КАК Количество,
	|	СУММА(ВтЛимитки.ЛимитПоЗаказу) КАК ЛимитПоЗаказу,
	|	СУММА(ВтЛимитки.Выдано) КАК Выдано,
	|	СУММА(ВтЛимитки.ОстатокЛимита) КАК ОстатокЛимита
	|ИЗ
	|	ВтЛимитки КАК ВтЛимитки
	|ГДЕ
	|	ВтЛимитки.ЗаказНаПроизводство = &ЗаказНаПроизводство
	|	И ВтЛимитки.Подразделение = &Подразделение
	|
	|СГРУППИРОВАТЬ ПО
	|	ВтЛимитки.ЗаказНаПроизводство,
	|	ВтЛимитки.Подразделение,
	|	ВтЛимитки.СкладМатериала,
	|	ВтЛимитки.Номенклатура,
	|	ВтЛимитки.Характеристика,
	|	ВтЛимитки.ЕдиницаИзмерения
	|
	|ИТОГИ ПО
	|	ЗаказНаПроизводство,
	|	Подразделение,
	|	СкладМатериала";
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл     
		Если Выборка.Количество < 0 Тогда 
			ВызватьИсключение ("Общее количество материалов не должно превышать количество материала в заказе на производство!");
		Иначе
		КонецЕсли;
	КонецЦикла;	
	

КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. tamidi 8 07.11.22 10:18 Сейчас в теме
(1)Условие можно и в запрос добавить, сделайте из последнего запроса еще одну временную таблицу, итоги замените группировкой, а в новый запрос на основе этой таблицы добавьте нужное вам условие.
Synthersizer; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tamidi 8 07.11.22 10:18 Сейчас в теме
(1)Условие можно и в запрос добавить, сделайте из последнего запроса еще одну временную таблицу, итоги замените группировкой, а в новый запрос на основе этой таблицы добавьте нужное вам условие.
Synthersizer; +1 Ответить
3. Synthersizer 07.11.22 10:39 Сейчас в теме
(2) Спасибо большое за объяснение) Удалось
Оставьте свое сообщение

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