Заказ переработчику (2.4) / Выбор заказа в передаче сырья переработчику / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ЗаполнитьСписокРаспоряжений();
	
	СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, "СписокРаспоряжений.Дата", Элементы.СписокРаспоряженийДата.Имя);
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокРаспоряжений

&НаКлиенте
Процедура СписокРаспоряженийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Элементы.СписокРаспоряжений.ТекущиеДанные <> Неопределено Тогда
		ОповеститьОВыборе(Элементы.СписокРаспоряжений.ТекущиеДанные.Ссылка);
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Выбрать(Команда)
	
	Если Элементы.СписокРаспоряжений.ТекущиеДанные <> Неопределено Тогда
		ОповеститьОВыборе(Элементы.СписокРаспоряжений.ТекущиеДанные.Ссылка);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ЗаполнитьСписокРаспоряжений()

	ТекстЗапроса = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Заказы.Ссылка КАК Ссылка,
	|	Заказы.Дата КАК Дата,
	|	Заказы.Номер КАК Номер,
	|	Заказы.Партнер КАК Партнер,
	|	Заказы.Контрагент КАК Контрагент,
	|	Заказы.Договор КАК Договор,
	|	Заказы.Организация КАК Организация,
	|	Заказы.Валюта КАК Валюта,
	|	Заказы.Статус КАК Статус,
	|	Заказы.СуммаДокумента КАК СуммаДокумента
	|ИЗ
	|	(ВЫБРАТЬ
	|		ТаблицаЗаказы.ЗаказКлиента КАК ЗаказКлиента,
	|		СУММА(ТаблицаЗаказы.КОформлению) КАК КОформлению
	|	ИЗ
	|		(ВЫБРАТЬ
	|			РаспоряженияОбороты.Распоряжение КАК ЗаказКлиента,
	|			(РаспоряженияОбороты.КОформлениюКоличествоОборот -
	|				РаспоряженияОбороты.ОформленоКоличествоОборот) КАК КОформлению
	|		ИЗ
	|			#РаспоряженияНаОтгрузкуОборотыРазвернутая КАК РаспоряженияОбороты
	|		ГДЕ
	|			(РаспоряженияОбороты.КОформлениюКоличествоОборот -
	|				РаспоряженияОбороты.ОформленоКоличествоОборот) <> 0
	|
	|		ОБЪЕДИНИТЬ ВСЕ
	|
	|		ВЫБРАТЬ
	|			РаспоряженияДвижения.Распоряжение,
	|			ВЫБОР
	|				КОГДА РаспоряженияДвижения.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОформлению)
	|					ТОГДА -РаспоряженияДвижения.Количество
	|				ИНАЧЕ РаспоряженияДвижения.Количество
	|			КОНЕЦ
	|		ИЗ
	|			РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат КАК РаспоряженияДвижения
	|		ГДЕ
	|			РаспоряженияДвижения.Регистратор = &Регистратор
	|			И РаспоряженияДвижения.Показатель В
	|				(ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОформлению),
	|				ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено))
	|			И РаспоряженияДвижения.Активность
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Организация = &Организация
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Валюта = &Валюта
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Контрагент = &Контрагент
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Договор = &Договор
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Партнер = &Партнер
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК Документ.ЗаказПереработчику).Сделка = &Сделка
	|			И ВЫРАЗИТЬ(РаспоряженияДвижения.Распоряжение КАК
	|				Документ.ЗаказПереработчику).ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
	|			И (РаспоряженияДвижения.Склад = &Склад
	|			ИЛИ РаспоряженияДвижения.Склад В ИЕРАРХИИ (&Склад)
	|			ИЛИ РаспоряженияДвижения.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))) КАК ТаблицаЗаказы
	|	СГРУППИРОВАТЬ ПО
	|		ТаблицаЗаказы.ЗаказКлиента) КАК ТаблицаЗаказы
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику КАК Заказы
	|		ПО (Заказы.Ссылка = ТаблицаЗаказы.ЗаказКлиента)
	|ГДЕ
	|	ТаблицаЗаказы.КОформлению > 0
	|
	|УПОРЯДОЧИТЬ ПО
	|	Дата,
	|	Номер";
	
	ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
	ПараметрыФормированияТаблицы.ТекстУсловия =
		"ТИПЗНАЧЕНИЯ(Распоряжение) = ТИП(Документ.ЗаказПереработчику)
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Организация = &Организация
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Валюта = &Валюта
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Контрагент = &Контрагент
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Договор = &Договор
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Партнер = &Партнер
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).Сделка = &Сделка
		|		И ВЫРАЗИТЬ(Распоряжение КАК Документ.ЗаказПереработчику).ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|		И (Склад = &Склад
		|			ИЛИ Склад В ИЕРАРХИИ (&Склад)
		|			ИЛИ Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))";
	ПараметрыФормированияТаблицы.Группировка = "Распоряжение";
	ПараметрыФормированияТаблицы.Показатели = "КОформлению, Оформлено";
	ПараметрыФормированияТаблицы.Ресурсы = "Количество";
	
	РаспоряженияНаОтгрузкуОборотыРазвернутая =
		РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
			ПараметрыФормированияТаблицы);
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
		"#РаспоряженияНаОтгрузкуОборотыРазвернутая",
		РаспоряженияНаОтгрузкуОборотыРазвернутая);
	
	Запрос = Новый Запрос(ТекстЗапроса);
	
	МассивОтборов = Новый Массив;
	МассивОтборов.Добавить("Организация");
	МассивОтборов.Добавить("Валюта");
	МассивОтборов.Добавить("Контрагент");
	МассивОтборов.Добавить("Договор");
	МассивОтборов.Добавить("Партнер");
	МассивОтборов.Добавить("Сделка");
	МассивОтборов.Добавить("ВернутьМногооборотнуюТару");
	МассивОтборов.Добавить("НаправлениеДеятельности");

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

КонецПроцедуры

#КонецОбласти

Связанные материалы