1С 8.x Управляемое приложение 1С 7.7. Бухучет Статьи Ссылки
1С 8.x arrow 1С 8.x arrow Узелки на память arrow Работаем со справочником
Работаем со справочником Печать

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

КонецЕсли;


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

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

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

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

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

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

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

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

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

КонецЕсли

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

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

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

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

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

КонецЦикла;

Родитель

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

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

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

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

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

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

КонецЦикла;

Владелец

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

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

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

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

КонецЦикла;


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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

КонецЦикла;

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