1С-Предприятие 8.0. Практическое пособие разработчика

       

Объекты встроенного языка для работы со справочниками


*Заливкой выделен объект манипулирования данными

Узнай больше!

Про основные виды объектов встроенного языка можно прочитать в главе "Виды объектов встроенного языка, предназначенные для работы с данными прикладных объектов конфигурации" на странице 551. [570]



//  Справочники

//Пример: Вывести все типы ссылок на элементы справочников, существующие

//в конфигурации

Массив = Справочники.ТипВсеСсылки().Типы();

Для Каждого ОчереднойТип из Массив Цикл

   Сообщить(ОчереднойТип);

КонецЦикла;

//  .<имя справочника>

//  [<имя справочника>]

//  Для Каждого ... Из ... Цикл ... КонецЦикла;

//Пример: Создать новую группу справочника Номенклатура

НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();

НоваяГруппа.Наименование = "Моя новая группа";

НоваяГруппа.Записать();

//Пример: Открыть форму выбора справочника Номенклатура

Форма = Справочники["Номенклатура"].ПолучитьФормуВыбора();

Форма.Открыть(); [571]

//  НайтиПоКоду()

//  НайтиПоНаименованию()

//  НайтиПоРеквизиту()

//  ПустаяСсылка()

//  ПолучитьСсылку()

//  .<имя предопределенного элемента справочника>

//Пример: Проверить, помечен ли на удаление элемент справочника Номенклатура

//c кодом 13

Если Справочники.Номенклатура.НайтиПоКоду(13).ПометкаУдаления Тогда

   Сообщить("Элемент с кодом 13 помечен на удаление");

КонецЕсли;

//Пример: Является ли элемент справочника Номенклатура с наименованием

//"Услуги" группой

Если Справочники.Номенклатура.НайтиПоНаименованию("Услуги", Истина).ЭтоГруппа Тогда

   Сообщить("Элемент Услуги является группой");

КонецЕсли;

//Пример: Проверить, что для всех элементов задан вид номенклатуры

ПустаяСсылкаПеречисления = Перечисления.ВидыНоменклатуры.ПустаяСсылка();




Если Не Справочники.Номенклатура.НайтиПоРеквизиту("ВидНоменклатуры", ПустаяСсылкаПеречисления).Пустая() Тогда

   Сообщить(" Есть элементы для которых не задан вид номенклатуры");

КонецЕсли;

//Пример: Передать пустую ссылку в параметр метода

Выборка = Справочники.Номенклатура.Выбрать(Справочники.Номенклатура.ПустаяСсылка()); [572]



//  Выбрать()

//  ВыбратьИерархически()

//Пример: Вывести список элементов, расположенных в корне справочника

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

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

   Если Не Выборка.ЭтоГруппа Тогда

       Сообщить(Выборка);

   КонецЕсли;

КонецЦикла;

//Пример: Удалить все элементы иерархического справочника

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

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

   Выборка.ПолучитьОбъект().Удалить();

КонецЦикла;



//  СоздатьГруппу()

//  СоздатьЭлемент()

//Пример: Создать новый элемент справочника Сотрудники

НовыйЭлемент = Справочники.Сотрудники.СоздатьЭлемент();

НовыйЭлемент.Наименование = "Смирнов Андрей Анатольевич";

//Заполнить табличную часть

НоваяСтрокаТабличнойЧасти = НовыйЭлемент.ТрудоваяДеятельность.Добавить();

НоваяСтрокаТабличнойЧасти.Организация = "OOO НТЦ";

НоваяСтрокаТабличнойЧасти.НачалоРаботы = Дата(2003,05,01);

НоваяСтрокаТабличнойЧасти.ОкончаниеРаботы = Дата(2003,12,31);

НоваяСтрокаТабличнойЧасти.Должность = "Программист";

НовыйЭлемент.Записать(); [573]



//  Владелец

//  Родитель

//  Ссылка

//Пример: запретить изменение подчиненных элементов, если у владельца

//установлено соответствующее свойство "ИзмененияЗапрещены"

//в модуле формы элемента справочника

Процедура ПередЗаписью(Отказ)

   Если Владелец.ИзмененияЗапрещены Тогда

       Отказ = Истина;



   КонецЕсли;

КонецПроцедуры



//  ПолучитьОбъект()

//  Скопировать()

//Пример: Изменить наименование элемента справочника

Элемент = Справочники.Номенклатура.НайтиПоКоду(10).ПолучитьОбъект();

Элемент.Наименование = "Мое новое наименование";

Элемент.Записать();

//Пример: Заполнить справочник тестовыми данными

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

Элемент.Наименование = "Тестовый элемент";

Элемент.Записать();

Для сч_к = 1 по 1000 Цикл

   НовыйЭлемент = Элемент.Скопировать();

   НовыйЭлемент.Записать();

КонецЦикла; [574]



//  Ссылка

//Пример: Заполнить табличную часть документа ПриходнаяНакладная всеми

//элементами из указанной группы справочника Номенклатура

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

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

   СсылкаНаНоменклатуру = Выборка.Ссылка;

   Если СсылкаНаНоменклатуру.ЭтоГруппа Тогда

       Продолжить;

   КонецЕсли;

   НоваяСтрока = Материалы.Добавить();

   НоваяСтрока.Материал = СсылкаНаНоменклатуру;

КонецЦикла;



//  ПолучитьОбъект()

//Пример: пометить все элементы неиерархического справочника на удаление

Выборка = Справочники.Клиенты.Выбрать();

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

   Выборка.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);

КонецЦикла; [575]

Содержание раздела