Поступление от переработчика / Заказы переработчикам / Модуль формы

файл

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

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

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

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

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

&НаКлиенте
Процедура СписокРаспоряженийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ВыбратьРаспоряжениеИЗакрыть();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ВыбратьРаспоряжение(Команда)
	
	ВыбратьРаспоряжениеИЗакрыть();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура ВыбратьРаспоряжениеИЗакрыть()

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

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

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

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