СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ИспользоватьРодителя(грпРаботающие); СпрСотр.ИспользоватьДату(РабочаяДата()); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
Если СпрСотр.Должность <> длжПлотник Тогда ....Продолжить; //этого сотрудника пропускаем, перейти в начало цикла КонецЕсли;
<действия с очередным элементом>
КонецЦикла;
Перед выборкой можно задать порядок сортировки следующими методами:
ПорядокКодов() ПорядокНаименований() ПорядокРеквизита(ИмяРекв) //у реквизита должен быть установлен флажок Сортировка в Конфигураторе ОбратныйПорядок()
Например, ниже открывается выборка сотрудников, отсортированных по номерам по убыванию:
Перебор элементов справочника можно организовать через Запрос. Часто это бывает удобнее, если применяется сложное условие отбора или группировка элементов. Подробнее см. Запросы
СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); Если СпрСотр.НайтиЭлемент(ВыбрСотр)=1 Тогда ....//элемент становится текущим ....СпрСотр.Родитель = грпРаботающие; ....СпрСотр.Записать(); КонецЕсли;
Если СпрСотр.НайтиПоКоду(1) = 1 Тогда ....ЭлементИлиГруппа = СпрСотр.ТекущийЭлемент(); КонецЕсли;
Поиск по наименованию
Если СпрСотр.НайтиПоНаименованию("Работающие")=1 Тогда ....грпРаботающие = СпрСотр.ТекущийЭлемент(); КонецЕсли;
Режим = 1; // 1 - поиск внутри установленного подчинения (родителя) (по умолч.); 0 - поиск во всем справочнике ФлагПоиска = 0; //1 - найти точное соответствие; 0 - найти наименование по первым символам (по умолч) СпрСотр.ИспользоватьРодителя(грпРаботающие); Если СпрСотр.НайтиПоНаименованию("Ив",Режим,ФлагПоиска)=1 Тогда ....ПервыйРаботающийИв = СпрСотр.ТекущийЭлемент(); КонецЕсли;
ИмяРекв = "Год"; //у реквизита должен быть установлен флажок Сортировка в Конфигураторе ФлагГлобПоиска = 1; // 1- искать во всем справочнике, 0 - искать в пределах подчинения Если СпрСотр.НайтиПоРеквизиту(ИмяРекв,1980,ФлагГлобПоиска)=1 Тогда .....НайденныйЭлемент = СпрСотр.ТекущийЭлемент(); КонецЕсли;