Справочники в языке 1С 8.3, 8.2 (в примерах)

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

<<< Документы Константы Перечисления РегистрыБухгалтерии
<<< РегистрыНакопления РегистрыСведений Справочники

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Полный синтаксис (нажмите, чтобы раскрыть)
Оглавление (нажмите, чтобы раскрыть)

/// Как обойти все элементы справочника в 1с 8.3, 8.2
 
&НаСервере
Процедура КакОбойтиЭлементыСправочникаНаСервере()
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Наименование
        |ИЗ
        |   Справочник.Вкусы КАК Вкусы
        |ГДЕ
        |   ЭтоГруппа = ЛОЖЬ
        |УПОРЯДОЧИТЬ ПО
        |   Наименование";
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаВкусов = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаВкусов.Следующий() Цикл
        Сообщить(ВыборкаВкусов.Наименование);
    КонецЦикла;
 
КонецПроцедуры
Результат обхода элементов справочника
/// Как обойти все группы справочника в 1с 8.3, 8.2
&НаСервере
Процедура КакОбойтиГруппыСправочникаНаСервере()
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Наименование
        |ИЗ
        |   Справочник.Вкусы КАК Вкусы
        |ГДЕ
        |   ЭтоГруппа = ИСТИНА
        |УПОРЯДОЧИТЬ ПО
        |   Наименование";
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаВкусов = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаВкусов.Следующий() Цикл
        Сообщить(ВыборкаВкусов.Наименование);
    КонецЦикла;
 
КонецПроцедуры
Результат обхода групп справочника
/// Как обойти группы вместе с элементами
/// справочника (иерархически) в 1с 8.3, 8.2
 
&НаСервере
Процедура КакОбойтиГруппыИЭлементыСправочникаНаСервере()
 
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Наименование
        |ИЗ
        |   Справочник.Вкусы КАК Вкусы
        |УПОРЯДОЧИТЬ ПО
        |   Наименование Иерархия";
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаВкусов = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаВкусов.Следующий() Цикл
        Отступ = "";
        Для Шаг = 0 По ВыборкаВкусов.Уровень() Цикл
            Отступ = Отступ + "    ";
        КонецЦикла;
        Сообщить(Отступ + ВыборкаВкусов.Наименование);
    КонецЦикла;
 
КонецПроцедуры
Результат обхода групп и элементов (иерархически) справочника
/// Как отобрать элементы справочника по родителю в 1с 8.3, 8.2
/// (перечислим все элементы группы)
 
&НаСервере
Процедура КакОтобратьЭлементыСправочникаПоРодителюНаСервере()
 
    // для тестов найдём группу "Любимые" по её имени
    СсылкаНаРодителя = Справочники.Вкусы.НайтиПоНаименованию("Любимые");
 
    // перечислим только те элементы справочника, что
    // входят в группу "Любимые"
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Наименование
        |ИЗ
        |   Справочник.Вкусы КАК Вкусы
        |ГДЕ
        |   Вкусы.Родитель = &Родитель";
 
    Запрос.УстановитьПараметр("Родитель", СсылкаНаРодителя);
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаВкусов = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаВкусов.Следующий() Цикл
        Сообщить(ВыборкаВкусов.Наименование);
    КонецЦикла;
 
КонецПроцедуры
Результат отбора элементов по родителю (группе) справочника