Загрузка данных



&НаКлиенте
Процедура Тест(Команда)
	ТестНаСервере(); 
	ПредупреждениеАсинх("Закрытие выполнено!");
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаполнитьСписок(Команда)
    Объект.СписокОбращений.Очистить();
	ЗаполнитьСписокНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьСписокНаСервере()
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ВЫБОР
		|		КОГДА СвязанныеДокументы.ВидДокумента1 = ""Инцидент""
		|			ТОГДА СвязанныеДокументы.Документ1
		|		ИНАЧЕ СвязанныеДокументы.Документ2
		|	КОНЕЦ КАК Обращение,
		|	СвязанныеДокументы.Документ1.Состояние КАК СостояниеОбращения,
		|	ВЫБОР
		|		КОГДА СвязанныеДокументы.Документ2.Состояние в (&СостояниеНарядов)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК ВсеНарядыЗакрыты
		|ПОМЕСТИТЬ втОснДанные
		|ИЗ
		|	РегистрСведений.СвязанныеДокументы КАК СвязанныеДокументы
		|ГДЕ
		|	(СвязанныеДокументы.ВидДокумента1 = ""Инцидент""
		|				И СвязанныеДокументы.ВидДокумента2 = ""Наряд""
		|			ИЛИ СвязанныеДокументы.ВидДокумента2 = ""Инцидент""
		|				И СвязанныеДокументы.ВидДокумента1 = ""Наряд"")
		|	И СвязанныеДокументы.Документ1.Дата МЕЖДУ &НачалоПрериода И &КонецПериода
		|
		|СГРУППИРОВАТЬ ПО
		|	ВЫБОР
		|		КОГДА СвязанныеДокументы.ВидДокумента1 = ""Инцидент""
		|			ТОГДА СвязанныеДокументы.Документ1
		|		ИНАЧЕ СвязанныеДокументы.Документ2
		|	КОНЕЦ,
		|	СвязанныеДокументы.Документ1.Состояние,
		|	ВЫБОР
		|		КОГДА СвязанныеДокументы.Документ2.Состояние в(&СостояниеНарядов)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	втОснДанные.Обращение КАК Обращение,
		|	втОснДанные.СостояниеОбращения КАК СостояниеОбращения,
		|	втОснДанные.ВсеНарядыЗакрыты КАК ВсеНарядыЗакрыты
		|ПОМЕСТИТЬ ВтНеЗакрытые
		|ИЗ
		|	втОснДанные КАК втОснДанные
		|ГДЕ
		|	НЕ втОснДанные.ВсеНарядыЗакрыты
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	втОснДанные.Обращение КАК Обращение,
		|	втОснДанные.СостояниеОбращения КАК СостояниеОбращения,
		|	втОснДанные.ВсеНарядыЗакрыты КАК ВсеНарядыЗакрыты
		|ИЗ
		|	втОснДанные КАК втОснДанные
		|ГДЕ
		|	НЕ втОснДанные.Обращение В
		|				(ВЫБРАТЬ
		|					ВтНеЗакрытые.Обращение КАК Обращение
		|				ИЗ
		|					ВтНеЗакрытые КАК ВтНеЗакрытые)
		|	И втОснДанные.СостояниеОбращения = &СостояниеОбращения";
	СостоянияНарядовСписок = Новый Массив;
	СостоянияНарядовСписок.Добавить(Справочники.СостоянияНарядов.НайтиПоНаименованию("Закрыт"));
	
	Запрос.УстановитьПараметр("КонецПериода", Период.ДатаОкончания);
	Запрос.УстановитьПараметр("НачалоПрериода", Период.ДатаНачала);
	Запрос.УстановитьПараметр("СостояниеНарядов", СостоянияНарядовСписок);
	Запрос.УстановитьПараметр("СостояниеОбращения", Справочники.СостоянияИнцидентов.ПустаяСсылка());
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ТЧ = Объект.СписокОбращений.Добавить();
		ТЧ.Обращение = ВыборкаДетальныеЗаписи.Обращение;
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура МассовоеЗаркытие(Команда)
	МассовоеЗаркытиеНаСервере(); 
	ПредупреждениеАсинх("Массовое закрытие выполнено!");
КонецПроцедуры

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