Механизмы отборов — как программно установить отбор в справочнике «Без помеченных на удаление», «Без папок», отключить иерархический просмотр (1С: Программисту)

Вопрос Как установить отбор в справочнике «без помеченных на удаление» программным путем?
Ответ
Когда справочник наполняется помеченными на удаление объектами, они начинают мешать пользователям выбирать значение справочника. Бывает, что долго не представляется возможным удалить помеченные на удаление элементы. Чтобы пользователям они не мешали, можно программным путем отключить их видимость при открытии формы выбора (или формы списка) справочника с помощью предустановки отбора.
Делается это примерно таким способом. В диалоговой форме справочника назначается процедура «При открытии». И в модуле формы пишется примерно такой код:

Процедура ПриОткрытии()

	// чтобы для выбора справочник открывался в неиерархическом виде (чтобы не нужно было каждый раз "раскрывать" папки в поисках нужного элемента)
	ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;

	// можно установить ограничение - для определенной роли
	//Если НЕ РольДоступна("усРазработчик") Тогда

		// установка собственно ограничения видимости помеченных на удаление элементов:
		ЭлементОтбора = СправочникСписок.Отбор.Найти("ПометкаУдаления");
		Если ЭлементОтбора = Неопределено Тогда
			ЭлементОтбора = СправочникСписок.Отбор.Добавить("ПометкаУдаления");
		КонецЕсли;
		ЭлементОтбора.Установить(Ложь);
		// чтобы можно было открыть отбор и вручную сбросить установленные выше флаг отбора:
		ЭлементыФормы.СправочникСписок.НастройкаОтбора.ПометкаУдаления.Доступность = Истина;

		// чтобы папки не отображались:
		ЭлементОтбора = СправочникСписок.Отбор.Найти("ЭтоГруппа");
		Если ЭлементОтбора = Неопределено Тогда
			ЭлементОтбора = СправочникСписок.Отбор.Добавить("ЭтоГруппа");
		КонецЕсли;
		ЭлементОтбора.Установить(Ложь);
		// чтобы можно было открыть отбор и вручную сбросить установленные выше флаг отбора:
		ЭлементыФормы.СправочникСписок.НастройкаОтбора.ЭтоГруппа.Доступность = Истина;

	//КонецЕсли;

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *