helpf.pro
Регистрация
 0 
Распечатать

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

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

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

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

Код 1C v 8.х
 сп=Новый СписокЗначений;
сп.Добавить("СотрудникиОрганизаций");
сп.Добавить("ФизическиеЛица");
сп.Добавить("ДоговорыКонтрагентов");
сп.Добавить("Контрагенты");

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

Если НайденныеСсылки.Количество() > 0 Тогда 
Сообщить("Нельзя удалять элемент:"+Строка(СсылкаНаУдаляемыйЭлемент)+", на него имеются ссылки",СтатусСообщения.Внимание); 
Иначе
Сообщить("Удаляем элемент:"+Строка(СсылкаНаУдаляемыйЭлемент),СтатусСообщения.Информация); 
// Получаем объект
УдаляемыйЭлемент = СсылкаНаУдаляемыйЭлемент.ПолучитьОбъект(); 
// Установить пометку
//УдаляемыйЭлемент.УстановитьПометкуУдаления(Истина); 
// Удалить сразу
УдаляемыйЭлемент.Удалить();
КонецЕсли;  

КонецЦикла; 
КонецЦикла; 
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 19227
 0 
Распечатать
Возможно, вас также заинтересует
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
Ввод по строке - поиск по первым символам или в любом месте наименования 6
При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования! В 1С 8.3 по умолчанию настройки справочника номенклатуры такие: При такой настройке, механизм поиска в
Веб браузер в 1С используя поле HTML документа 7
Настраивал клиенту CRM, он захотел - чтобы панель управления сайтом была в 1С. Хочет - делаем: Обработка Веб браузер проста, состоит из поля HTML документа и 20 строчек кода: Код команд: НаКлиенте Процедура Команда1(Команда) Объект.HTML =
Вывод в поле Наименование справочника Штатное список значений из справочника Подразделения? 0
Есть два справочника Штатное и Подразделения. В справочнике Штатное есть автоматически генерируемое поле Наименование. Как программно сделать так чтобы в поле Наименование справочника Штатное выводились списком значений из поля Наименование справочн
Вывод результата запроса на форму УП в таблицу значений (аналог СоздатьКолонки() для УП) 2
при разработке на обычных формах было удобно выводить результат запроса используя метод СоздатьКолоки(): Процедура ПоискНажатие(Элемент) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДокументоОборот.Этап, | ДокументоОборот.Отдел, | Докуме
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.