Основная страница

Глава 10-2
Работа со Справочниками


 

Методы справочников

Вид

Определить вид справочника.

Синтаксис:

Вид(<Название>)

Англоязычный синоним:

Kind

Параметры:

<Название>

Необязательный параметр. Строковое выражение с названием вида справочника.

Возвращаемое значение:

Строковое значение, содержащее текущее название вида справочника (на момент до исполнения метода).

Описание:

Метод Вид позволяет установить или получить текущее название вида справочника. В тексте программы метод Вид можно использовать как процедуру или как функцию. Если при вызове метода параметр <Название> задан явно, то вид справочника устанавливается в соответствии с этим параметром. Метод возвращает строку, содержащую текущий (на момент до исполнения метода) идентификатор вида справочника, как он задан в конфигураторе.

Устанавливать новое значение вида справочника допускается только для объектов типа «Справочник» неопределенного вида, созданных при помощи функции СоздатьОбъект.

Пример:

// отобразим вид справочника в строке состояния

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

Состояние(Cnpl.Вид());

Спр2 = СоздатьОбъект("Справочник.Клиенты");

Состояние(Спр2.Вид());

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

СпрЗ.Вид("Валюты");

Состояние(СпрЗ.Вид());

ПредставлениеВида

Определить пользовательское представление вида справочника.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида справочника (синоним справочника или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида справочника, как он задан в конфигураторе.

Пример:

// отобразим представление вида справочника в строке состояния

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

Состояние(Cnpl.ПредставлениеВида());

Уровень

Определить номер уровня элемента справочника.

Синтаксис:

Уровень()

Англоязычный синоним:

Level

Возвращаемое значение:

Числовое значение номера уровня текущего элемента справочника.

Описание:

Метод Уровень возвращает номер уровня текущего элемента справочника в структуре дерева многоуровневого справочника.

Пример:

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

Спр.ИспользоватьДату(РабочаяДата());

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() > 0 Цикл

   Сообщить(Строка(Спр.Наименование + Спр.Код + Спр.Уровень());

КонецЦикла;

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

<3начение>

Выражение, содержащее устанавливаемое значение реквизита.

Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Тов.УстановитьАтрибут("ЦенаРозн", ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Тов.ПолучитьАтрибут("ЦенаРозн");

ЭтоГруппа

Проверить принадлежность к группам.

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент справочника обычный элемент.

Описание:

Метод ЭтоГруппа возвращает числовое значение 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент справочника обычный элемент.

Пример:

* В данном примере мы просматриваем весь справочник "Сотрудники" и для групп сотрудников выводим в таблицу секцию "Группа", а для сотрудников выводим секцию " Элемент"

Таб = СоздатьОбъект("Таблица");

Таб.ВывестиСекцию("Отчет");

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

Сотр.ВыбратьЭлементы();

Пока Сотр.ПолучитьЭлемент() > 0 Цикл

   Если Сотр.ЭтоГруппа() = 1 Тогда

      Таб.ВывестиСекцию("Группа");

   Иначе

      Таб.ВывестиСекцию("Элемент");

   КонецЕсли;

КонецЦикла;

См. также: ПринадлежитГруппе

ПринадлежитГруппе

Проверить принадлежность к группе.

Синтаксис:

ПринадлежитГруппе(<Группа>)

Англоязычный синоним:

BelongsToGroup

Параметры:

<Группа>

Выражение со значением группы справочника.

Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника принадлежит указанной группе, 0 — если нет.

Описание:

Метод ПринадлежитГруппе проверяет, принадлежит ли указанной группе текущий элемент справочника (не важно, на каком нижестоящем уровне он находится). Возвращаемое числовое значение: 1 — если да; 0 — если нет.

Пример:

// выведем в отчет только те подразделения, которые

// принадлежат группе ВыбГруппа

Процедура ВывестиНаПечать()

   // . . .

   Возврат;

КонецПроцедуры

...

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

// Задаем выборку в порядке кодов Спр.ПорядокКодов();

Спр.ВыбратьЭлемернты();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Если Спр.ПринадлежитГруппе(ВыбГруппа) = -1 Тогда

      ВывестиНаПечать();

   КонецЕсли;

КонецЦикла;

См. также: ЭтоГруппа

Выбран

Проверить факт выбора элемента справочника.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент справочника выбран (спозиционирован); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент справочника выбран (спозиционирован), 0 — если элемент справочника не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбСклад - реквизит диалога типа «справочник.Склад»

Если ВыбСклад.Выбран() = 0 Тогда

   // Если Склад в диалоге не выбран, то формируем без условий

   Заг1 = "По всем складам.";

Иначе

   // если в диалоге выбран Склад

   // то формируем отчет только по выбранному складу

   Заг1 = "Отчет по складу " + ВыбСклад.Наименование;

КонецЕсли;

Выбрать

Выбрать элемент справочника в диалоге.

Синтаксис:

Выбрать(<Подсказка>, <Форма Списка>)

Англоязычный синоним:

Choose

Параметры:

<Подсказка>

Текст заголовка окна диалога выбора. Может использоваться в качестве подсказки конечному пользователю.

<ФормаСписка>

Строковое выражение идентификатора той формы списка справочника (как он объявлен в конфигураторе), которая должна использоваться для выбора. Если это значение пустое, то используется форма списка по умолчанию.

Возвращаемое значение:

Числовое значение: 1 — если элемент выбран; 0 — если не выбран.

Описание:

Метод Выбрать вызывает диалоговое окно для выбора элемента и затем позиционирует справочник на выбранном элементе. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

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

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента Справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для справочника неопределенного вида.

Синтаксис:

ВидыДляВыбора(<СписокВидов>)

Англоязычный синоним:

KindsForChoise

Параметры:

<СписокВидов>

Необязательный параметр. Строковое выражение, содержащее список видов выбираемых справочников, разделенных запятыми.

Возвращаемое значение:

Строковое значение, содержащее текущий список видов выбираемых справочников, разделенных запятыми (на момент до исполнения метода).

Описание:

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

Данный метод может использоваться только для объектов-справочников неопределенного вида, либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «справочник неопределенного вида», то интерактивный выбор элемента справочника будет производиться только среди установленных видов справочников.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект("Справочник");

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ВидыДляВыбора("Фирмы");

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: Выбрать

ВыборГруппы

Установить режим выборки групп.

Синтаксис:

ВыборГруппы(<Режим>)

Англоязычный синоним:

SelectGroup

Параметры:

<Режим>

Необязательный параметр. Числовое выражение:

1 — выбирать группы; 0—не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполнения метода).

Описание:

Метод ВыборГруппы устанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией СоздатьОбъект, так и для элементов диалога для полей типа «справочник» (см. «Методы элементов диалога»).

По умолчанию, выборка элементов справочников для полей в формах документов, журналов и справочников установлена без выбора групп, а в форме отчета с выбором групп. Поэтому реально имеет смысл применять данный метод только в том случае, если надо изменить режим выборки групп.

Пример:

* Если в форме документа необходимо, чтобы какой-либо реквизит "Статус" типа «справочник» мог принимать значения как элемента, так и группы, то этому реквизиту следует установить:

Статус.ВыборГруппы(1);

*

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

// Задаем выборку без групп

Спр.ВыборГруппы(0);

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() > 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ТекущийЭлемент

Получить значение элемента справочника.

Синтаксис:

ТекущийЭлемент()

Англоязычный синоним:

Currentltem

Возвращаемое значение:

Значение элемента справочника.

Описание:

Метод ТекущийЭлемент возвращает значение элемента справочника в целом, как объекта. Данный метод применяется, например, если нужно элемент справочника передать как параметр в вызове какого-либо метода или присвоить какому-либо реквизиту.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из справочника "Фирмы"

Процедура УстФирмы()

   // Создадим объект требуемого справочника

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

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

ПолныйКод

Определить полный код элемента справочника.

Синтаксис:

ПолныйКод()

Англоязычный синоним:

FullCode

Возвращаемое значение:

Строковое значение, содержащее полный код выбранного элемента справочника.

Описание:

Метод ПолныйКод возвращает строку, содержащую полный код выбранного элемента справочника (с кодами групп всех вышестоящих уровней, разделенными символом "/").

Пример:

ПолнКод = Спр.Подразделения.ПолныйКод();

См. также: НайтиПоКоду

ПолноеНаименование

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

Синтаксис:

ПолноеНаименование()

Англоязычный синоним:

FullDescr

Возвращаемое значение:

Строковое значение, содержащее полное наименование выбранного элемента справочника.

Описание:

Метод ПолноеНаименование возвращает строку, содержащую полное наименование выбранного элемента справочника (с наименованиями групп всех вышестоящих уровней, разделенными символом "/").

Пример:

ПолнИмя = Спр.Подразделения.ПолноеНаименование();

См. также: НайтиПоНаименованию

НайтиЭлемент

Найти элемент справочника по значению.

Синтаксис:

НайтиЭлемент(<Элемент>)

Англоязычный синоним:

Findltem

Параметры:

<Элемент>

Выражение со значением элемента справочника.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиЭлемент выполняет поиск элемента справочника по значению, заданному параметром <Элемент>, и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// НашБанк должен иметь тип «справочник.Банки»

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

Бнк.ИспользоватьДату(ДатаДок);

Если НашБанк.Выбран() = 1 Тогда

   // Позиционируем созданный объект Бнк на заданном элементе

   Бнк.НайтиЭлемент(НашБанк);

   Процент = Бнк.Процент;

   НазваниеБанка = Бнк.Наименование;

КонецЕсли;

См. также: ТекущийЭлемент

НайтиПоКоду

Найти элемент справочника по коду.

Синтаксис:

НайтиПоКоду(<Код>, <ФлагПоиска>)

Англоязычный синоним:

FindByCode

Параметры:

<Код>

Выражение со значением искомого кода.

<ФлагПоиска>

Необязательный параметр. Числовое выражение — флаг поиска: 0 — поиск во всем справочнике вне зависимости от родителя; 1 — поиск внутри установленного подчинения (родителя); 2 — поиск по полному коду.

Значение по умолчанию: 0 — для справочников, у которых код уникален во всем справочнике; 2 — для справочников, у которых код уникален в группе.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоКоду выполняет поиск элемента справочника по значению кода, заданному параметром <Код>, и позиционирует объект справочник на этом элементе. Если справочник многоуровневый, то полный код выбираемого элемента можно задавать, разделяя коды уровней символом "/".

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Контекст журнала расчетов.

// Реквизит Подразд имеет тип «справочник»

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

Пдр.ИспользоватьДату(ДатаДок);

Если Документ.Подразд <> 0 Тогда

   // если в документе код подразделения указан...

   Пдр.НайтиПоКоду(Документ.Подразд);

   Если Пдр.Выбран() > 0 Тогда

      Сообщить("Есть такое подразделение !")

   Иначе

      Сообщить("Нет такого подразделения!")

   КонецЕсли;

КонецЕсли;

См. также: ПолныйКод

НайтиПоНаименованию

Найти элемент справочника по наименованию.

Синтаксис:

НайтиПоНаименованию(<Наименование>, <Режим>, <ФлагПоиска>)

Англоязычный синоним:

FindByDescr

Параметры:

<Наименование>

Строковое выражение с наименованием искомого элемента справочника.

<Режим>

Необязательный параметр. Числовое выражение — режим поиска: 1 — поиск внутри установленного подчинения (родителя); 0 — поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию — 1.

<ФлагПоиска>

Необязательный параметр. Числовое выражение — флаг поиска: 1 — найти точное соответствие наименования; 0 — найти наименование по первым символам.

Значение по умолчанию — 0.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоНаименованию выполняет поиск элемента справочника по наименованию, заданному параметром <Наименование> и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по известному наименованию

Спр.НайтиПоНаименованию("Иванов", 1);

Если Спр.Выбран() > 0 Тогда

   Оклад=Спр.Оклад;

   Подразделение = Спр.Подразделение;

Иначе

   Предупреждение("Нет у нас Ивановых!");

КонецЕсли;

См. также: ПолноеНаименование

НайтиПоРеквизиту

Найти элемент справочника по значению реквизита.

Синтаксис:

НайтиПоРеквизиту(<ИмяРеквизита>, <3начение>, <ФлагГлобальногоПоиска>)

Англоязычный синоним:

FindByAttribute

Параметры:

<ИмяРеквизита>

Строковое выражение с наименованием реквизита.

<3начение>

Значение реквизита для поиска.

<ФлагГлобальногоПоиска>

Числовое выражение. Если 0, то поиск должен выполняться в пределах подчинения справочника, если 1, то поиск должен выполняться по всему справочнику.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоРеквизиту выполняет поиск первого элемента с указанным значением заданного реквизита и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только в том случае, если в конфигураторе при описании данного реквизита установлен признак «Сортировка» (Свойства реквизита - Дополнительные - Сортировка).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по реквизиту

Спр.НайтиПоРеквизиту("СерияПаспорта", "XXVII-OP", 1);

Если Спр.Выбран() > 0 Тогда

   Имя = Спр.Наименование;

Иначе

   Предупреждение("Не найден сотрудник с таким паспортом!");

КонецЕсли;

ВыбратьЭлементы

Открыть выборку элементов справочника

Синтаксис:

ВыбратьЭлементы(<Режим>)

Англоязычный синоним:

SelectItems

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать элементы с учетом иерархии; 0 — выбирать элементы без учета иерархии. Значение по умолчанию — 1.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один элемент;

Число 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьЭлементы предоставляет возможность выбирать элементы (открывает выборку) при помощи метода ПолучитьЭлемент.

Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего справочника в порядке, установленном заранее при помощи методов: ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя,