Корректировка приобретения / Форма подбора исправляемого документа / Модуль формы

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьПараметрыСписка()
			
	ДокументыДляПодбора	= ДокументыДляПодбора(ДокументОснование);	
			
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ДокументыДляПодбора", ДокументыДляПодбора);
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ДатаИсправления", ДатаИсправления);
	
КонецПроцедуры

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

&НаСервере
Функция ТекстЗапроса_ДокументыДляПодбора()
	
	Текст = 
	
	"ВЫБРАТЬ
	|	&Ссылка КАК Ссылка
	|ПОМЕСТИТЬ ВТ_Основания
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	КорректировкаПриобретения.Ссылка
	|ИЗ
	|	Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
	|ГДЕ
	|	КорректировкаПриобретения.ДокументОснование = &Ссылка
	|	И
	|		КорректировкаПриобретения.ВидКорректировки = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КорректировкаПоСогласованиюСторон)
	|	И КорректировкаПриобретения.Проведен
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ИсправлениеДокументовСрезПоследних.ИсправляемыйДокумент КАК ИсправляемыйДокумент
	|ПОМЕСТИТЬ ВТ_Сторно
	|ИЗ
	|	РегистрСведений.ИсправленияДокументов.СрезПоследних(, ИсправляемыйДокумент В
	|		(ВЫБРАТЬ
	|			ВТ_Основания.Ссылка
	|		ИЗ
	|			ВТ_Основания)) КАК ИсправлениеДокументовСрезПоследних
	|ГДЕ
	|	ИсправлениеДокументовСрезПоследних.СторнированИсправляемыйДокумент
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТ_Основания.Ссылка КАК Ссылка
	|ИЗ
	|	ВТ_Основания КАК ВТ_Основания
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Сторно КАК ВТ_Сторно
	|		ПО ВТ_Основания.Ссылка = ВТ_Сторно.ИсправляемыйДокумент
	|ГДЕ
	|	ВТ_Сторно.ИсправляемыйДокумент ЕСТЬ NULL";
	
	Возврат Текст;
	
КонецФункции

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

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