Главная » 1С Предприятие » ОТБОР  ПО РЕКВИЗИТУ СПРАВОЧНИКА

0

Позволяет,  например, в  справочнике Сотрудники_2 отобразить только  сотрудников,  имеющих,  скажем, высшее  образование.  Эта  возможность   предоставляется  благодаря  тому,  что  для  реквизита  Образование заданы  свойства Сортировка и  Отбор по реквизиту (рис. 5.29, б). Причем такие свойства можно  задать только для  непериодического реквизита. Отбор  по реквизиту,  не имеющему таких свойств,  невозможен.

5.9.1.1.       ИНТЕРАКТИВНОЕ УПРАВЛЕНИЕ ОТБОРОМ

Рис.  5.50. Диалог  формы списка  справочника  Сотрудники_2 с флажком Закладки отбора  по  образованию

Код процедуры  ПоказатьЗакладки  прост:

// Показывает/убирает закладки отбора по образованию процедура  ПоказатьЗакладки(  )

перем   значОтбора;

если закл =  1 тогда                         //                          Показать закладки значОтбора = ?(ЭтоГруппа()  = 0, Образование, "") ; ЗакладкиОтбора("Образование",  значОтбора);

иначе                                    //                      Убрать закладки ЗакладкиОтбора("");

конецЕсли;

конецПроцедуры // ПоказатьЗакладки

Замечание.   Вместо   процедуры  ПоказатьЗакладки  с  флажком  закл   можно  связать формулу

?(закл = 0, ЗакладкиОтбора(""),

ЗакладкиОтбора("Образование", ?(ЭтоГруппа() = 0, Образование, "")))

разместив ее в поле  Формула окна  задания свойств  флажка.

Код  предопределенной  процедуры ПриОткрытии  можно   дополнить  следующими операторами:

закл =1 ;                                 //                    Добавляются  в процедуру ПриОткрытии ЗакладкиОтбора("Образование","");

конецПроцедуры // ПриОткрытии

Также  напомним, что  модуль  формы списка справочника  Сотрудники_2  содержит приведенную  в  разд.  5.8.2.4  предопределенную процедуру  ПриНачалеРедактированияСтроки.

Помимо   рассмотренного  метода   ЗакладкиОтбора  для  организации   отбора  могут быть   также   употреблены  методы   УстановитьОтбор,  ПолучитьОтбор   и   ВидыОтбора. Они,  так  же  как  и  метод  ЗакладкиОтбора,  могут  появляться  только   в  модуле  формы списка справочника.  Описание методов см.  в разд.  5.12.5.

5.9.2. ФИЛЬТРАЦИЯ ДАННЫХ

Осуществляется  методом   ИспользоватьСписокЭлементов,  принимающим  в   качестве параметра список элементов справочника, которые следует отобразить в форме  его списка. Заносимые  в  список  значения  должны  иметь тип Справочник.  В  случае  пустого  списка выводятся все данные справочника.

Пример.   В   форме   списка  справочника   Сотрудники_2  отображаются  только   сотрудники,  оклад  которых  больше  или равен 2500 руб.

// Содержится в модуле формы списка справочника Сотрудники_2 процедура ПриОткрытии()

перем сЗнач, сСотр_2;

сЗнач  = СоздатьОбъект("СписокЗначений");

сСотр_2  = СоздатьОбъект("Справочник.Сотрудники_2");

// Дата для периодического реквизита Оклад сСотр_2.ИспользоватьДату(РабочаяДата());

// Позиционируемся на первой записи справочника Сотрудники_2 сСотр_2.ВыбратьЭлементы();

пока сСотр_2.ПолучитьЭлемент() = 1 цикл если сСотр_2.0клад >= 2500 тогда

// Добавляем в список элемент справочника сЗнач.ДобавитьЗначение(сСотр_2.ТекущийЭлемент());

конецЕсли;

конецЦикла; // пока сСотр_2 = 0;

// Задаем фильтр для справочника Сотрудники_2

ИспользоватьСписокЭлементов(сЗнач); конецПроцедуры // ПриОткрытии

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

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии