Создание и запись нового элемента
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 нет периодических реквизитов. Вместо них необхидом использовать регистры сведений, развернутые во времени. |
Экранные формы справочников