
- •Атрибуты справочников
- •Типы данных
- •Иерархические справочники
- •Подчиненные справочники
- •Табличные части (только версия 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). Тогда при выборе строки будет вызываться эта предопределенная процедура. |