ОчиститьВсеСвоиКромеЗанятых (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера
БСП

Очистить все свои кроме занятых. Удалить из регистра сведений ФайлыВРабочемКаталоге все записи,

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

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

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

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

ОчиститьВсеПараметрыСеансаКромеРазделителей (БСП)

ОчиститьОбластьДанных (БСП)

КоличествоЗанятыхФайлов (БСП)

ДобавитьЗанятуюЛицензию (БСП)

УдалитьЗанятуюЛицензию (БСП)

Программная установка условного оформления (УО) поля динамического списка

УдалитьВсеСеансыКромеТекущего (БСП)

КоличествоФайловЗанятыхТекущимПользователем (БСП)

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