Работаем со справочником

Ссылка на справочник

Для работы со справочником из какого-нибудь модуля требуется сначала
создать ссылку на этот справочник:

СпрСотр = Справочники.Сотрудники;
СпрДолж = Справочники["Должности"]


Создание и запись нового элемента

Добавление в справочник новых элементов (записей):

НовЭл = СпрСотр.СоздатьЭлемент();
НовЭл.Наименование = "Иванов Иван Иванович";

НовЭл.Оклад = 5000;

НовЭл.Записать();
Поиск элемента справочника


НайденныйСотр = СпрСотр.НайтиПоКоду(123);

НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");

НайденныйСотр СпрСотр.НайтиПоРеквизиту("Оклад", 5000);

//далее нужно проверить найденное значение

НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");

Если НайденныйСотр = Неопределено Тогда

.....//элемент не найден

КонецЕсли;


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

СпрСотр.Удалить(); //непосредственное удаление

СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на удаление

СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на удаление

//можно проверить, помечен ли элемент на удаление

//есть свойство ПометкаУдаления, оно имеет тип Булево - Истина или Ложь

Пометка = СпрСотр.ПометкаУдаления; //обратите внимание: это свойство

Если Пометка = Истина Тогда

.....//элемент помечен на удаление

КонецЕсли

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

Перебор элементов справочника в цикле:

Выборка = Справочники.Сотрудники.Выбрать();
Пока выборка.Следующий() = 1 Цикл

... //действия с очередным элементом

...Сообщить("Сотрудник " + выборка.Наименование);

КонецЦикла;

Родитель

Перебор элементов внутри группы. Группа в терминах 1С -это "родитель".

СпрСотр = Справочники.Сотрудники;
ГруппаРаботающие = СпрСотр.НайтиПоНаименованию("Работающие");

Выборка = СпрСотр.Выбрать(ГруппаРаботающие);

Пока выборка.Следующий() = 1 Цикл

... //действия с очередным элементом

...Сообщить("Сотрудник " + Выборка.Наименование);

КонецЦикла;

Владелец

Перебор элементов справочника принадлежащих элементу другого справочника.
Один справочник подчинен другому справочнику, например Спр.НалоговыеЛьготы
подчинен Спр.Сотрудники.

Выборка = Справочники.НалоговыеЛьготы.Выбрать( ,Сотрудник);
Пока выборка.Следующий() = 1 Цикл

... //действия с очередным элементом

...Сообщить("льгота " + Выборка.Наименование);

КонецЦикла;


Выбор всех элементов из определенной группы

Выборка = Справочники.Номенклатура.Выбрать(ПолеВводаРодитель);
Пока Выборка.Следующий() Цикл

Наименование = Выборка.Наименование;

КонецЦикла;

Запрос = Новый Запрос("

|ВЫБРАТЬ
| Ссылка,
| Наименование
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Родитель = &Родитель
|АВТОУПОРЯДОЧИВАНИЕ");

Запрос.УстановитьПараметр("Родитель", ПолеВводаРодитель);

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
Наименование = Результат.Наименование;
КонецЦикла;

Выборка=Справочники.Номенклатура.ВыбратьИерархически(ПолеВводаРодитель);

Пока Выборка.Следующий() Цикл

Наименование = Выборка.Наименование;

КонецЦикла;

Запрос = Новый Запрос("

|ВЫБРАТЬ
| Ссылка,
| Наименование
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Родитель В ИЕРАРХИИ(&Родитель)
|АВТОУПОРЯДОЧИВАНИЕ");

Запрос.УстановитьПараметр("Родитель", ПолеВводаРодитель);

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл

Наименование = Результат.Наименование;

КонецЦикла;

По материалам сайта: http://razrabotka1c8.narod.ru