helpf.pro
Регистрация

Как очистить справочник удалив все не используемые элементы?

Очень часто менеджеры дублируют информацию в справочниках и время от времени их приходится чистить.

Но как удалить только те элементы справочника, которые не используются в документах?

Следующий пример кода поможет это сделать(в примере обрабатывается 4 справочника: Сотрудники, ФизЛица, Договора и Контрагенты) Скачать: Обработка для УТ 10:

Код 1C v 8.х
 сп=Новый СписокЗначений;
	сп.Добавить("СотрудникиОрганизаций");
	сп.Добавить("ФизическиеЛица");
	сп.Добавить("ДоговорыКонтрагентов");
	сп.Добавить("Контрагенты");
	
	Для Каждого стр из сп Цикл
		текСпр=стр.Значение;
		Запрос = Новый Запрос;
		Текст = 
		"ВЫБРАТЬ
		|	СотрудникиОрганизаций.Ссылка
		|ИЗ
		|	Справочник.%текСпр% КАК СотрудникиОрганизаций
		|ГДЕ
		|	НЕ СотрудникиОрганизаций.ПометкаУдаления И НЕ СотрудникиОрганизаций.ЭтоГруппа";
		Запрос.Текст = СтрЗаменить(Текст,"%текСпр%",текСпр);
		РезультатЗапроса = Запрос.Выполнить();
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		итЗаписей = Строка(ВыборкаДетальныеЗаписи.Количество());
		ном=0;
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ном=ном+1; Состояние(текСпр+": "+Строка(ном)+" из "+итЗаписей);
			СсылкаНаУдаляемыйЭлемент = ВыборкаДетальныеЗаписи.Ссылка;
			// Найти ссылки на удаляемый элемент - СсылкаНаУдаляемыйЭлемент. 
			МассивСсылок = Новый Массив; 
			МассивСсылок.Добавить(СсылкаНаУдаляемыйЭлемент); 
			НайденныеСсылки = НайтиПоСсылкам(МассивСсылок); 
			
			Если НайденныеСсылки.Количество() > 0 Тогда 
				Сообщить("Нельзя удалять элемент:"+Строка(СсылкаНаУдаляемыйЭлемент)+", на него имеются ссылки",СтатусСообщения.Внимание); 
			Иначе
				Сообщить("Удаляем элемент:"+Строка(СсылкаНаУдаляемыйЭлемент),СтатусСообщения.Информация); 
				// Получаем объект
				УдаляемыйЭлемент = СсылкаНаУдаляемыйЭлемент.ПолучитьОбъект(); 
				// Установить пометку
				//УдаляемыйЭлемент.УстановитьПометкуУдаления(Истина); 
				// Удалить сразу
				УдаляемыйЭлемент.Удалить();
			КонецЕсли; 		  
			
		КонецЦикла; 
	КонецЦикла;    
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 19175
 0 
Распечатать
Возможно, вас также заинтересует
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-подключение к базе 7.7 из .NET, .NET Core 2
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: ---C# static void Main(string args) { // создаем строку соединен
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
ZIP-архив Чтение 1
Для того чтобы прочитать файлы из ZIP-архива необходимо выполнить несколько простых действий: - Открыть необходимый архив - Распаковать файлы Создание объекта ЧтениеZIPФайла можно осуществить двумя путями - создать инициализированный объект или
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!