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