1С 8.3 Перечисления
Данные > Примеры кода 1С > 1С 8.3 Перечисления
Перечисления в 1С 8.3 это прикладные объекты конфигурации. Представляют собой фиксированный список данных, который задаётся в конфигураторе разработчиком и не меняется в процессе работы. Обычно хранят наборы значений схожих по свойствам и/или природе происхождения.
Оглавление:
Заполнение реквизита значением перечисления в 1С 8.3:
&НаСервере
Процедура ЗаполнениеРеквизитаПеречислением(Команда)
// ВидПЛ - тип перечисление
Объект.ВидПЛ = ПредопределенноеЗначение("Перечисление.ВидыПЛ.ТракторРБ");
// ВидПЛ = Значение("Перечисление.ВидыПЛ.ТракторРБ") - для запроса
КонецПроцедуры
Процедура ЗаполнениеРеквизитаПеречислением(Команда)
// ВидПЛ - тип перечисление
Объект.ВидПЛ = ПредопределенноеЗначение("Перечисление.ВидыПЛ.ТракторРБ");
// ВидПЛ = Значение("Перечисление.ВидыПЛ.ТракторРБ") - для запроса
КонецПроцедуры
Выводим все значения перечисления (Пример №1) в 1С 8.3:
&НаСервере
Процедура ВыводимВсеЗначенияПеречисленияПример1()
ПалитраЦветов = Перечисления.ПалитраЦветов;
Для Каждого Цвет Из ПалитраЦветов Цикл
Сообщить("...текущий цвет: "+Цвет);
КонецЦикла;
КонецПроцедуры
Процедура ВыводимВсеЗначенияПеречисленияПример1()
ПалитраЦветов = Перечисления.ПалитраЦветов;
Для Каждого Цвет Из ПалитраЦветов Цикл
Сообщить("...текущий цвет: "+Цвет);
КонецЦикла;
КонецПроцедуры
Выводим все значения перечисления (Пример №2) в 1С 8.3:
&НаСервере
Процедура ВыводимВсеЗначенияПеречисленияПример2()
ПалитраЦветов = Перечисления.ПалитраЦветов;
Для Индекс = 0 По ПалитраЦветов.Количество() - 1 Цикл
Сообщить("...текущий цвет: "+ПалитраЦветов.Получить(Индекс));
КонецЦикла;
КонецПроцедуры
Процедура ВыводимВсеЗначенияПеречисленияПример2()
ПалитраЦветов = Перечисления.ПалитраЦветов;
Для Индекс = 0 По ПалитраЦветов.Количество() - 1 Цикл
Сообщить("...текущий цвет: "+ПалитраЦветов.Получить(Индекс));
КонецЦикла;
КонецПроцедуры
Открываем форму списка значений перечисления в 1С 8.3:
&НаКлиенте
Процедура ОткрываемФормуСпискаЗначенийПеречисления(Команда)
ОткрытьФорму("Перечисление.ПалитраЦветов.ФормаСписка");
КонецПроцедуры
Процедура ОткрываемФормуСпискаЗначенийПеречисления(Команда)
ОткрытьФорму("Перечисление.ПалитраЦветов.ФормаСписка");
КонецПроцедуры
Открываем форму выбора значений перечисления в 1С 8.3:
&НаКлиенте
Процедура ОткрываемФормуВыбораЗначенияПеречисления(Команда)
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораПеречисления", ЭтотОбъект);
ОткрытьФорму("Перечисление.ПалитраЦветов.ФормаВыбора",,,,,,ОповещениеОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораПеречисления(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
Сообщить(РезультатЗакрытия);
КонецЕсли;
КонецПроцедуры
Процедура ОткрываемФормуВыбораЗначенияПеречисления(Команда)
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораПеречисления", ЭтотОбъект);
ОткрытьФорму("Перечисление.ПалитраЦветов.ФормаВыбора",,,,,,ОповещениеОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораПеречисления(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
Сообщить(РезультатЗакрытия);
КонецЕсли;
КонецПроцедуры
Сравниваем реквизит на соответствие перечислению в 1С 8.3:
&НаСервере
Процедура СравниваемРеквизитНаСоответствиеПеречислению(ЭлементСправочникаМеталлы)
Если ЭлементСправочникаМеталлы.Цвет = Перечисления.ПалитраЦветов.Желтый Тогда
Сообщить("Этот металл желтого цвета!");
КонецЕсли;
КонецПроцедуры
Процедура СравниваемРеквизитНаСоответствиеПеречислению(ЭлементСправочникаМеталлы)
Если ЭлементСправочникаМеталлы.Цвет = Перечисления.ПалитраЦветов.Желтый Тогда
Сообщить("Этот металл желтого цвета!");
КонецЕсли;
КонецПроцедуры
Сравниваем реквизит на соответствие перечислению запросом в 1С 8.3:
&НаСервере
Процедура СравниваемРеквизитНаСоответствиеПеречислениюЗапросом()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Металлы.Ссылка,
| Металлы.Наименование КАК Имя
|ИЗ
| Справочник.Металлы КАК Металлы
|ГДЕ
| Металлы.Цвет = &Цвет";
Запрос.УстановитьПараметр("Цвет", Перечисления.ПалитраЦветов.Желтый);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить("Металл <"+СокрЛП(ВыборкаДетальныеЗаписи.Имя)+"> желтого цвета!");
КонецЦикла;
КонецПроцедуры
Процедура СравниваемРеквизитНаСоответствиеПеречислениюЗапросом()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Металлы.Ссылка,
| Металлы.Наименование КАК Имя
|ИЗ
| Справочник.Металлы КАК Металлы
|ГДЕ
| Металлы.Цвет = &Цвет";
Запрос.УстановитьПараметр("Цвет", Перечисления.ПалитраЦветов.Желтый);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить("Металл <"+СокрЛП(ВыборкаДетальныеЗаписи.Имя)+"> желтого цвета!");
КонецЦикла;
КонецПроцедуры
💡 Шаблоны (готовые модели) кода 1С 8.3 с тегом #Перечисления:
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник