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

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

2020-02-29T09:18:46+00:00 Документы Константы Перечисления РегистрыБухгалтерии
РегистрыНакопления РегистрыСведений Справочники

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

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

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

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

Результат обхода элементов справочника

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

Результат обхода групп справочника

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

Результат обхода групп и элементов (иерархически) справочника

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

Результат отбора элементов по родителю (группе) справочника