Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 10 - Назначение справочников.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
282.17 Кб
Скачать

Удаление элемента справочника

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 список событий для всех объектов был значительно расширен.

Событие

Описание

ПриОткрытии

Вызывается при открытии формы списка справочника. Можно задать начальные значения для переменных, проверить права пользователя на открытие данного справочника и т.д.

ПриЗакрытии

Вызывается при закрытии формы списка справочника.

ПриЗаписи

Вызывается при записи элемента справочника, если элементы вводятся прямо в форме списка, а не в форме элемента. Это используется для справочников с простой структурой, например справочник Должности. В этой процедуре можно проверить вводимые данные на наличие ошибок.

Пример, справочник Должности

7.7

Процедура ПриЗаписи() .....Если СокрЛП(Наименование)="" Тогда ..........Предупреждение("Не указано название должности!",30); ..........СтатусВозврата(0); .....КонецЕсли; КонецПроцедуры

8.0

Процедура ПриЗаписи(Отказ) .....Если СокрЛП(Наименование)="" Тогда ..........Предупреждение("Не указано название должности!",30); ..........Отказ = Истина; .....КонецЕсли; КонецПроцедуры

ПриВыбореРодителя(НовРодитель)

Вызывается при выборе родителя (группы). В этой процедуре можно проверить права пользователя на просмотр элементов данной группы.

ПриВыбореВладельца(НовВладелец)

Вызывается при выборе владельца справочника-хозяина. Имеет смысл, если данный справочник подчинен другому.

ПриУстановкеОтбора(Реквизит,Значение)

Предопределенная процедура при интерактивной установке отбора любым способом (отбор, быстрый отбор, отбор по значению, история отбора) и при отключении отбора.

ПриВыбореСтроки()

Режим обработки выбора строки (двойной щелчок мыши или клавиша Enter) включается в форме списка справочника, журнала документов, счетов, журнала операций, журнала проводок при помощи метода Форма.ОбработкаВыбораСтроки(1). Тогда при выборе строки будет вызываться эта предопределенная процедура.