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

 
