Учебник по 1С
37917957

Информация о текущем элементе


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

Этот метод возвращает уровень текущего элемента. Например, для сотрудника, который находится в группе Работающие, мы получим число 2.

Пример, вывод иерархического справочника в виде дерева:

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

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

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

//вывести отступ в соответствии с глубиной вложенности элемента

Для Ном=1 По СпрСотр.Уровень() Цикл



.....Сообщить(".....");

КонецЦикла;

Сообщить(СпрСотр.Наименование);

КонецЦикла;

Пример, вывод сотрудников (группы не выводятся):

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

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

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

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

......Продолжить; //группы пропускаем, перейти в начало цикла

КонецЕсли;

Сообщить(СпрСотр.Наименование);

КонецЦикла;

Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет.

Пример, вывод товаров, принадлежащих к группе Спиртное, независимо от того входят ли они в подгруппы Шампанское, Пиво, Водка, Вино и т.д.:

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

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

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

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

.....Сообщить(СпрТовары.Наименование);

КонецЕсли;

КонецЦикла;

Этот атрибут содержит родителя текущего элемента справочника, т.е. группу, в которой находится текущий элемент. Доступен для чтения и записи.

Пример, перенос всех товаров из группы Спиртное в группу Распродажа:


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

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

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

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

.....СпрСотр.Родитель = грпРаспродажа;

.....СпрСотр.Записать();

КонецЕсли;

КонецЦикла;

А можно сделать красивее и перенести всю группу Спиртное в группу Распродажа, тогда все подгруппы и элементы также перенесутся в группу Распродажа.

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

СпрТовары.НайтиЭлемент(грпСпиртное);

СпрТовары.Родитель = грпРаспродажа;

СпрТовары.Записать();

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

Например, "2/7/123"

Возвращает строку, содержащую полное наименование выбранного элемента справочника со всеми вышестоящими уровнями, разделенными символом "/".

Например, "Спиртное/Шампанское/Советское"


Содержание раздела






Метод / атрибут
Описание
Уровень()
ЭтоГруппа()
Этот метод возвращает 1, если текущий элемент справочника является группой, или 0 если группой не является.
ПринадлежитГруппе(...)
Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится).
атрибут Родитель
ПолныйКод()
ПолноеНаименование()