В форме списка справочника элементы могут быть отсортированы в различном порядке: по коду, по наименованию или по любому реквизиту, у которого в Конфигураторе установлен флажок Сортировка. Задать тип сортировки можно программно методом Сортировка (Способ, ФлагРазрешенияИзменения)
7.7
Процедура ПриОткрытии() ...... Сортировка("Код",0); //сортировка по коду, пользователь изменить не может КонецПроцедуры
В форме списка справочника элементы могут быть отфильтрованы, т.е. пользователю будут показаны только нужные элементы. Программно установить отбор можно методом УстановитьОтбор (Реквизит, Значение). Для этого у реквизита должен быть установлен флажок "Отбор по реквизиту" в Конфигураторе .
В 1С 7.7 нельзя установить отбор по периодическому реквизиту или по нескольким реквизитам одновременно (сложный фильтр). В этом случае выходом из положения может быть метод ИспользоватьСписокЭлементов. Этому методу нужно передать список элементов, которые должны быть показаны. Предварительно этот список нужно сформировать.
7.7
Процедура ПоказатьРаботающихПлотников()
СписокЭлементов = создатьОбъект("СписокЗначений"); СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ИспользоватьДату(РабочаяДата()); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент()=1 Цикл .....Если (СпрСотр.Родитель = группаРаботающие) И (СпрСотр.Должность=длжПлотник) Тогда ...........СписокЭлементов.ДобавитьЗначение(СпрСотр.ТекущийЭлемент()); .....КонецЕсли; КонецЦикла; ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры
Если справочник имеет сложную структуру, тогда его элементы удобнее редактировать в отдельном окне, а не в списке. Ниже приведена форма элемента справочника Сотрудники.
В форме элемента справочника также есть предопределенные процедуры (события):
События
Описание
ПриОткрытии()
Вызывается при открытии формы элемента справочника. Можно задать начальные значения для переменных, проверить права пользователя на открытие данного элемента справочника и т.д.
ПриЗакрытии()
Вызывается при закрытии формы элемента справочника.
ПриЗаписи()
Вызывается при записи элемента справочника. В этой процедуре можно проверить вводимые данные на наличие ошибок.
Пример, справочник Сотрудники
Процедура ПриЗаписи ....Если Категория.Выбран()=0 Тогда .........Предупреждение("Не указана категория сотрудника!"); .........СтатусВозврата(0); .....КонецЕсли; КонецПроцедуры
ВводНового()
Вызывается при интерактивном вводе нового элемента справочника. В этой процедуре можно проверить права пользователя на создание новых элементов справочника, а также задать начальные значения реквизитов.
Следует заметить, что вверсии 8.0 список событий всех объектов значительно расширен.