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




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

7.7 СпрСотр.Новый(); СпрСотр.Наименование = "Иванов Иван Иванович"; СпрСотр.Оклад = 5000; СпрСотр.Записать();
8.0 НовЭл = СпрСотр.СоздатьЭлемент(); НовЭл.Наименование = "Иванов Иван Иванович"; НовЭл.Оклад = 5000; НовЭл.Записать();

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

7.7 //например, в приказе об увольнении СпрСотр.НайтиЭлемент(Сотрудник); СпрСотр.НайтиПоКоду(123); СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович"); СпрСотр.НайтиПоРеквизиту("Оклад", 5000); //если элемент найден, он становится текущим и его можно прочитать так: Если СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович")=1 Тогда........НайденныйСотр = СпрСотр.ТекущийЭлемент(); КонецЕсли;
8.0 //в версии 8.0 если элемент найден, то он возвращается, иначе возвращается Неопределено НайденныйСотр = СпрСотр.НайтиПоКоду(123); НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович"); НайденныйСотр СпрСотр.НайтиПоРеквизиту("Оклад", 5000); //далее нужно проверить найденное значение НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович"); Если НайденныйСотр = Неопределено Тогда.....//элемент не найден КонецЕсли;

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

7.7 СпрСотр.Удалить(1); //непосредственное удаление СпрСотр.Удалить(0); //пометка на удаление СпрСотр.СнятьПометкуУдаления(); //можно проверить, помечен ли элемент на удаление //функция возвращает 1 - если помечен, 0 - если нет Пометка = СпрСотр.ПометкаУдаления(); //обратите внимание: это метод
8.0 СпрСотр.Удалить(); //непосредственное удаление СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на удаление СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на удаление //можно проверить, помечен ли элемент на удаление //есть свойство ПометкаУдаления, оно имеет тип Булево - Истина или Ложь Пометка = СпрСотр.ПометкаУдаления; //обратите внимание: это свойство Если Пометка = Истина Тогда.....//элемент помечен на удаление КонецЕсли;

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

7.7 СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл... //действия с очередным элементом...Сообщить("Сотрудник " + СпрСотр.Наименование); КонецЦикла;
8.0 выборка = Справочники.Сотрудники.Выбрать(); Пока выборка.Следующий() = 1 Цикл... //действия с очередным элементом...Сообщить("Сотрудник " + выборка.Наименование); КонецЦикла;

 

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

7.7 СпрСотр.НайтиПоНаименованию("Работающие"); Работающие = СпрСотр.ТекущийЭлемент(); СпрСотр.ИспользоватьРодителя(Работающие); //дальше, например, цикл по сотрудникам (см. выше)...
8.0 СпрСотр = Справочники.Сотрудники; ГруппаРаботающие = СпрСотр.НайтиПоНаименованию("Работающие"); выборка = СпрСотр.Выбрать(ГруппаРаботающие); Пока выборка.Следующий() = 1 Цикл... //действия с очередным элементом...Сообщить("Сотрудник " + выборка.Наименование); КонецЦикла;

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

7.7 СпрНЛ = СоздатьОбъект("Справочник.НалоговыеЛьготы"); СпрНЛ.ИспользоватьВладельца(Сотрудник); //дальше, например, цикл по льготам этого сотрудника (см. выше)...
8.0 выборка = Справочники.НалоговыеЛьготы.Выбрать(,Сотрудник); Пока выборка.Следующий() = 1 Цикл... //действия с очередным элементом...Сообщить("льгота " + выборка.Наименование); КонецЦикла;

Периодические реквизиты
Чтение и запись периодических реквизитов.
Установка даты выборки периодических реквизитов для всего справочника.

7.7 //так мы узнаем, какая была у сотрудника //категория на определенную дату Катег = СпрСотр.Категория.Получить(НекаяДата); //так мы установим сотруднику категорию //на определенную дату СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория); //можно установить дату выборки периодических //реквизитов для всего справочника СпрСотр.ИспользоватьДату(НекаяДата); //тогда ниже уже нельзя использовать Установить и Получить //доступ к периодическим реквизитам становится //такой же, как к обычным реквизитам Катег = СпрСотр.Категория; СпрСотр.Оклад = 6000;
8.0 В версии 8.0 нет периодических реквизитов. Вместо них необхидом использовать регистры сведений, развернутые во времени.

Экранные формы справочников



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: