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