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