РассчитатьРассмотреноПоПапкам (БСП)

Автор: 1С
ОбщийМодуль.Взаимодействия
БСП

Рассчитать рассмотрено по папкам. Рассчитывает состояния предметов взаимодействий.

// Рассчитывает состояния предметов взаимодействий.
//
// Параметры:
//  ТаблицаПапок  - ТаблицаЗначений, Неопределено - таблица папок, которые необходимо рассчитать.
//             Если Неопределено, то рассчитываются состояния всех папок.
//
Процедура РассчитатьРассмотреноПоПапкам(ТаблицаПапок) Экспорт

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

	Пока Выборка.Следующий() Цикл
	
		РегистрыСведений.СостоянияПапокПисем.ВыполнитьЗаписьВРегистр(Выборка.Папка, Выборка.НеРассмотрено);
	
	КонецЦикла;

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

РассчитатьРассмотреноПоКонтактам (БСП)

РассчитатьРассмотреноПоПредметам (БСП)

ЭтоПапкаФайлов (БСП)

РассчитанныеДатыЗапретаИзменения (БСП)

УстановитьПризнакРассмотрено (БСП)

УстановитьРодителяУПапки (БСП)

ОпределитьПапкуДляПисьма (БСП)

УстановитьПапкиДляМассиваПисем (БСП)

УстановитьПапкуЭлектронногоПисьма (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз