Как найти перечисление в 1с8

Работаем с перечислениями 1с 8
Иногда требуется по значению синонима найти имя перечисления или имя значения перечисления и преобразовать найденный результат к типу ПеречислениеСсылка. Для решения такой задачи программирования можно предложить варианты функций рассмотренные в данной статье. Рассматривается алгоритмический метод с использованием языка 1С и языка запросов.

Перечисление – объект конфигурации, имеющий значения данных описанное свойствами Имя и Синоним. Имя используется в алгоритмической части конфигурации, Синоним – для получения представления при выводе в элементы формы объектов или печатные формы. Другое определение перечисления – это именованные списки значений, задаваемых на этапе конфигурирования.

Как получить имя перечисления по синониму
Алгоритмически можно получить коллекцию перечислений из конфигурации и перебрав их в цикле сравнить значение реквизита синоним с параметром функции вернуть имя перечисления.
Исходный код функции ИмяПеречисленияПоСинониму (СинонимПеречисления):

// Возвращает имя перечисления по известному значению синонима

// Пример пСиснонимПеречисления = «Юр физ лицо» тип строка, 

// возвращаемое значение имя = «ЮрФизЛицо», тип строка

Функция ИмяПеречисленияПоСинониму( пСинонимПеречисления ) Экспорт

    КолекцияПеречислений = Метаданные.Перечисления;

Для каждого пНайденноеЗначение из КолекцияПеречислений Цикл

Если пНайденноеЗначение.Синоним = пСинонимПеречисления Тогда

Возврат пНайденноеЗначение.Имя;

КонецЕсли;

КонецЦикла;

Возврат неопределено;

КонецФункции // Имя Перечисления По Синониму

Функция размещена в примере конфигурации к данному разделу в общем модуле “Работа с перечислениями”.
Как получить имя значения перечисления, если известен синоним значения
Если известно перечисление, и известно, что одно из значений имеет известный нам синоним, то перебрав в цикле коллекцию значений перечисления можно получить его имя. Совокупность имени перечисления и имени значения перечисления позволяют получить ссылку на перечисление, которую уже можно применять в качестве значения реквизитов справочников, документов и регистров.
Исходный код функции ИмяЗначенияПеречисленияПоСинониму(ИмяПеречисления, СинонимЗначения):

// Функция возвращает имя реквизита данных перечисления по имени 

// перечисления и синониму его значения

// Принимаемые значения:

// пИмяПеречисления — тип строка. Имя объекта конфигурации «Перечисления»

// пСинонимЗначения — тип строка. Значение свойства Синоним реквизита данных перечисления

// Возвращаемое значение:

// Имя реквизита данных перечисления

Функция ИмяЗначенияПеречисленияПоСинониму( пИмяПеречисления, пСинонимЗначения ) Экспорт

    КолекцияЗначенийПеречисления = Метаданные.Перечисления[пИмяПеречисления].ЗначенияПеречисления;

Для каждого пНайденноеЗначение из КолекцияЗначенийПеречисления Цикл

Если пНайденноеЗначение.Синоним = пСинонимЗначения Тогда

Возврат пНайденноеЗначение.Имя;

КонецЕсли

КонецЦикла;

Возврат неопределено;

КонецФункции // Имя Значения Перечисления По Синониму

Функция размещена в примере конфигурации к данному разделу в общем модуле “Работа с перечислениями”.
Получение ссылки на значение перечисления по имени перечисления и по имени его значения
Если известно имя самого перечисления и имя его значения, то получить ссылку которая будет являться значением, например субконто, можно следующим образом:
ПеречислениеСсылка = Перечисления[пИмяПречисления][пИмяЗначения];
Исходный код функции ПолучитьСсылкуНаЗначениеПеречисления( пИмяПеречисления, пИмяЗначения )

// Возвращает ПеречисленияСсылка по «Имени» перечисления и «Имени» значения

// Пример пИмяПеречисления = «ЮрФизЛицо», пИмяЗначения = «ЮрЛицо», 

// результат: Перечисление ссылка на ЮрФизЛицо.ЮрЛицо

// пИмяПеречисления — тип строка

// пИмяЗначения — тип строка

Функция ПолучитьСсылкуНаЗначениеПеречисления( пИмяПеречисления, пИмяЗначения ) Экспорт

Попытка

Возврат Перечисления[пИмяПеречисления][пИмяЗначения];

исключение

        Сообщить(«Ошибка получения ссылки на значение перечисления. « + пИмяПеречисления + » :: « + пИмяЗначения);

Возврат неопределено;

КонецПопытки;

КонецФункции // Получить Ссылку На Значение Перечисления

Функция размещена в примере конфигурации к данному разделу в общем модуле “Работа с перечислениями”.
Использование значения перечисления в запросе
Возможность использования перечислений в запросах появилась в версии 8.1.5. В учебной версии 8.1.9.57 она описана во встроенной справке конфигуратора в разделе: 1С:Предприятие -> Встроенный язык -> Работа с запросами -> Язык запросов -> Использование предопределенных данных конфигурации. 
Текст запроса может содержать значения системных перечислений, которые могут быть присвоены полям в таблицах базы данных: ВидДвиженияНакопления, ВидСчета и ВидДвиженияБухгалтерии.
Обращение в запросах к предопределенным данным конфигурации и значениям системных перечислений осуществляется с помощью литерала функционального типа:
ЗНАЧЕНИЕ(<ПредставлениеЗначения>)
Для системных перечислений представление значение имеет вид:
<ИмяСистемногоПеречисления>.<Значение>
Пример запроса может выглядеть следующим образом:

Запрос = Новый Запрос;

Запрос.Текст = «ВЫБРАТЬ

    |    ВидыНоменклатуры.Ссылка как ссылка,

    |    ВидыНоменклатуры.Порядок

    |ИЗ

    |    Перечисление.ВидыНоменклатуры КАК ВидыНоменклатуры

    |ГДЕ

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

    ТЗ = Новый ТаблицаЗначений;

    ТЗ = запрос.Выполнить().Выгрузить();

    ЭлементыФормы.ТабличноеПоле1.Значение = ТЗ;

    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

Демонстрация работы с перечислениями в 1С
В качестве примера работы с менеджером коллекции значений перечисления можно скачать файл обновления конфигурации для платформы 1С версии 8.1 и демонстрационную обработку. Двойной щелчок мыши или нажатие клавиши обеспечивает вызов события “Выбор”, обработчик заполняет поля данных пСинонимПеречисления и пСинонимЗначение, а функционал общего модуля работа с перечислениями обеспечивает нахождение нужного значения типа ПеречислениеСсылка, который в форме имеет составной тип данных и рассчитан на работу только с версией cf из примера. При работе с другими конфигурациями следует отредактировать тип данных элемента формы пДанные.

Внешний вид экранной формы обработки по работе с синонимами перечислений для платформы 1С:

 
Выдержка из справочной системы 1С по назначению перечислений:
Перечисления используются в системе 1С:Предприятие для описания постоянных наборов значений, не изменяемых в процессе работы конфигурации. В отличие от справочника, значения перечислений задаются на этапе конфигурирования, и не могут быть изменены на этапе исполнения.
Типичными примерами перечислений являются виды оплаты (наличная, безналичная, бартер), статус клиента (постоянный, разовый) и т.д.
Одной из главных особенностей перечислений, отличающую их от справочников, является то, что набор значений перечисления не изменяется при работе конечного пользователя с программой. Например, алгоритм конфигурации может быть ориентирован на то, что каждый клиент имеет один из двух статусов – либо “постоянный”, либо “разовый”, в этом случае указание статуса клиента выполняется путем выбора одного из значений перечисления. Пользователь не может добавить новый статус.
В отличие от перечислений, для справочников конкретные значения обычно вводятся пользователем при работе с программой, например: наименования товаров, контрагентов и прочее.

Если Вы хотите больше узнать о программировании в 1С, тогда регистрируйтесь на курс: 1С 8.3 Старт >>>

Изображение

Работа с перечислениями

Для работы с перечислениями предназначена ветвь Перечисления дерева конфигурации.

Перечисление является объектом метаданных ссылочного типа и поэтому метод ПустаяСсылка() возвращает пустое значение ссылки на перечисление данного вида.

Пример:

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

Как получить имя значения перечисления заданное в метаданных?

Чтобы определить имя значения перечисления заданное в метаданных, имея значение типа ПеречислениеСсылка, необходимо найти объект метаданных и получить его имя:

ЗначениеПеречисления = Перечисления.ВидыКонтрагентов.Организация; ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя; 

Как получить индекс значения перечисления заданное в метаданных?

Метод Метаданные объекта ПеречислениеСсылка, как и у других аналогичных типов, выдает объект метаданных перечисления, а не значения перечисления.

Метод Индекс возвращает порядковый номер (индекс) перечисления в списке перечислений. Если не найдено, то возвращается -1.

ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления); 

Поиск объекта метаданных значения перечисления может быть выполнен по индексу значения перечисления, полученного у менеджера перечисления:

ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;

Свойство ЗначенияПеречисления содержит коллекцию объектов метаданных, описывающих значения данного перечисления.

Если известно имя самого перечисления и имя его значения, то получить ссылку которая будет являться значением, например субконто, можно следующим образом: 

ПеречислениеСсылка = Перечисления[ИмяПречисления][ИмяЗначения];

Данную операцию целесообразно выполнить внутри оператора попытки :

 Функция ПолучитьСсылкуНаЗначениеПеречисления( пИмяПеречисления, пИмяЗначения ) Экспорт        
Попытка
Возврат Перечисления[пИмяПеречисления][пИмяЗначения];
исключение
Сообщить("Ошибка получения ссылки на значение перечисления. " + пИмяПеречисления + " :: " + пИмяЗначения);
Возврат неопределено;
КонецПопытки;
КонецФункции

КАК ИСПОЛЬЗОВАТЬ ПЕРЕЧИСЛЕНИЕ В ЗАПРОСЕ ?

 Запрос.Текст = "
|ВЫБРАТЬ
// ...

 |ГДЕ
| ТипТовара = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Услуга)

 // ...
|";

Чтобы определить имя значения перечисления заданное в конфигурации, имея значение типа ПеречислениеСсылка, необходимо найти объект метаданных и получить его имя.

Метод Метаданные объекта ПеречислениеСсылка, как и у других аналогичных типов, выдает объект метаданных перечисления, а не значения перечисления.

Поиск объекта метаданных значения перечисления может быть выполнен по индексу значения перечисления, полученного у менеджера перечисления.

Например:

ЗначениеПеречисления = Перечисления.ВидыКонтрагентов.Организация;
ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;

В предыдущей статье я  показал, как создавать перечисления 1С, значения перечислений, как указывать ссылку на нужное перечисление у реквизита объекта, и как работать с перечислением на управляемой форме. В этой статье я покажу некоторые моменты программной работы с перечислениями в языке программирования 1С.

Предыдущая статья: Перечисления в 1С.

Программная работа с перечислениями в 1С отличается в
зависимости от того в каком контексте мы работаем с этим перечислением: в
серверном или клиентском (конкретно на тонком клиенте и веб-клиенте). Поэтому
разберем оба варианта по отдельности, 
также изучим, как работать с перечислениям в языке запросов 1С.

Перечисление в серверном контексте

Для того, чтобы понять как работать со значениями
перечисления в серверном контексте, рассмотрим простую задачу: будем программно
создавать элемент справочника и присваивать ему конкретное значение
перечисления.

В моей учебной конфигурации, есть справочник Контарагенты, с реквизитом Статус, у которого тип ссылка на перечисление ЮридическийСтатусКонтрагента, которое было создано в предыдущей статье. Создадим программно нового контрагента, с уже конкретным значением перечисления. Делать я это будут на управляемой форме учебной обработки. На этой форме я создал команду, серверный и клиентский обработчик команды.

В серверном обработчике и будет создаваться новый элемент
справочника.

&НаСервере
Процедура СоздатьСправочникНаСервере()
    НовыйКонтр = Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтр.Наименование = "Иванов и Партнеры";
    НовыйКонтр.Статус = Перечисления.ЮридическийСтатусКонтрегента.ЮрЛицо;
    НовыйКонтр.Записать();
КонецПроцедуры

&НаКлиенте
Процедура СоздатьСправочник(Команда)
    СоздатьСправочникНаСервере();
КонецПроцедуры 

В этом коде мы создаем объект справочника, заполняем его
реквизиты какими-то значениями, а потом сохраняем. Реквизиту Статус мы присваиваем конкретное
значение перечисления ЮридическийСтатусКонтреганта.
Вы заметили, что к нужному перечислению мы обращаемся посредством объекта Перечисления, который имеет типа ПеречисленияМенеджер.

А выражение Перечисления.ЮридическийСтатусКонтрегента
это менеджер конкретного перечисления, посредством которого можно обращаться к
нужному значению перечисления. Причем обращение к значению идет по имени.

Посредством этого выражения мы можем обратиться к любому
значению перечисления, в зависимости от поставленной задачи.

Значения перечисления в 1С

Если по какой-то причине нам не нужно записывать определенное значение перечисления, то мы можем записать пустую ссылку на это перечисление, обратившись к методу менеджера перечисления ПустаяСсылка(). Тогда будет иметь место следующий код.

НовыйКонтр = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтр.Наименование = "Иванов и Партнеры";
НовыйКонтр.Статус = Перечисления.ЮридическийСтатусКонтрегента.ПустаяСсылка();
НовыйКонтр.Записать();

Перечисление в клиентском контексте (на тонком клиенте)

Если в серверном контексте мы обращались напрямую к значению перечисления, используя менеджер перечислений, то в клиентском контексте мы так сделать не можем (за исключением толстого клиента).

Приведу небольшой пример, на котором покажем, как работать с
перечислениями на клиенте, пример больше учебный, призванный показать, как
работать с перечислениями в клиентском контексте, и не несет какого-либо
прикладного смысла.

На управляемую форму поместим реквизит с типом ссылка на перечисления, и при выполнении команды формы будем записывать в этот реквизит конкретное значение перечисления.

Поскольку в предыдущей статье мы создали перечисление ЮридическийСтатусКонтрегента, то назовем реквизит формы СтатусИП, и будем при выполнении команды в него записывать соответствующее значение перечисления.

Создадим реквизит, поместим его на форму, и также я создам команду, которую помещу на форму.

Реквизит формы и команда формы

Для этой команды создадим клиентский обработчик.

Создание клиентского обработчика команды

В этом клиентском обработчике, нам нужно записать в реквизит формы значение перечисления. Мы можем получить значение перечисления так, как получали ранее в этой статье: используя менеджер перечислений.

&НаКлиенте
Процедура Установить(Команда)

    СтатусИП = Перечисления.ЮридическийСтатусКонтрегента.ИП;

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

Если мы сейчас сделаем синтаксис-проверку модуля на ошибки,
то в некоторых случаях может выдать ошибку, а в некоторых нет. Всё зависит от
того, настроена ли в параметрах проверка в режиме тонкого клиента.

Проверим это. Зайдем в параметры конфигурации по пути Главное меню – Сервис – Параметры

Путь к параметрам

В этой форме на закладке Модули
в подзакладке Проверка нас интересует
флаг Тонкий клиент.

Тонкий клиент

Если этот флаг установлен, то при синтаксической проверке модуля, на код, который мы написали ранее, выйдет ошибка.

Ошибка при проверке кода на тонком клиенте

Поэтому, если вы планируете, что ваше приложение будет работать в режиме тонкого клиента, то способ получения значения перечисления, используя менеджер перечислений, не применим.

Чтобы получить в режиме тонкого клиента значение
перечисления, нужно использовать метод глобального контекста ПредопределенноеЗначение.
В этом случае код будет следующим.

&НаКлиенте
Процедура Установить(Команда)

    СтатусИП = ПредопределенноеЗначение("Перечисление.ЮридическийСтатусКонтрегента.ИП");

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

В параметре этого метода в виде строки необходимо написать
путь к значению перечисления. Замечу, что 
в платформе 1С, после ввода круглой скобки и первой кавычки выпадают подсказки,
и по этим подсказками можно сгенерировать нужную строку.

Получение подсказки ПредопределенноеЗначение
Получение подсказки ПредопределенноеЗначение

Если мы сейчас запустим «1С: Предприятие» под тонким
клиентом, то значением в реквизит прекрасно запишется.

Значение перечисления на форме

Заметили, что обращались мы к имени значения перечисления, а
на форме отображается синоним значения.

Перечисление в языке запросов 1С

Рассмотрим, как работать с перечислениями в языке запросов
1С.

Более подробно, изучить языка запросов 1С Вы можете в моем курсе «Запросы в 1С для начинающих», промо-код на скидку для читателей блога — hrW0rl9Nnx

Ознакомится с видео-курсом «Запросы в 1С для начинающих».

Для того, чтобы понять как работать с перечислениями в запросе разберем простой и понятный пример. Из справочника Контрагенты отберем только тех, контрагентов, у которых статус ИП. Делать мы это будем сразу в «1С: Предприятии», в консоли запросов.

Скачать консоль запросов для платформы 1С 8.3 можно по этой ссылке.

В консоли запросов откроем конструктор запроса, выберем таблицу Контрагенты и поля этой таблицы Наименование и Статус.

Поля в конструкторе запросов

На закладке Условия установим, чтобы отбирались контрагенты
со статусом ИП.

Условие в конструкторе запросов

В этом случае мы используем функцию Значение языка запросов 1С, где в качестве параметра указываем путь
к нужному нам значению перечисления.

У нас должен получиться вот такой запрос:

ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Статус КАК Статус
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Статус = ЗНАЧЕНИЕ(Перечисление.ЮридическийСтатусКонтрегента.ИП)

Который будет возвращать контрагентов только с нужным
статусом.

Результат запроса 1С с отбором по перечислению

Функцию ЗНАЧЕНИЕ можно использовать не только в условиях, но
и в секции выбрать. Например, можно сделать такой запрос.

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Перечисление.ЮридическийСтатусКонтрегента.ИП) КАК Статус

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Перечисление.ЮридическийСтатусКонтрегента.ЮрЛицо)

Который будет возвращать два значения перечисления.

Результат запроса 1С значения перечислений

А что делать, если нужен отбор по нескольким значениями
перечислений? Для этого мы объединим два этих запроса: поместим во временную
таблицу значения двух перечислений, а потом при получении контрагентов,  в условии при помощи оператора множественного
выбора  отберем контрагентов только с
двумя значениями перечислений.

Код запроса будет в этом случае следующим:

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Перечисление.ЮридическийСтатусКонтрегента.ИП) КАК Статус
ПОМЕСТИТЬ втПеречисления

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Перечисление.ЮридическийСтатусКонтрегента.ЮрЛицо)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Статус КАК Статус
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Статус В
            (ВЫБРАТЬ
                вт.Статус
            ИЗ
                втПеречисления КАК вт)

И этот запрос будет выдавать нужный результат.

Результат выполнения запроса с оператором множественного выбора

Если же мы не знаем, по какому значению перечисления нужен отбор, то можем просто передать значение нужного перечисления в качестве параметра. В этом случае будет такой запрос.

ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Статус КАК Статус
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Статус = &Статус

Который будет выполняться следующим образом.

Результат выполнения запроса с отбором по значению перечисления

Если же мы хотим сделать отбор по нескольким сразу статусам
(которые мы не можем знать заранее), то нам нужно передать в запрос массив или
список значений, и применить к нему оператор множественного выбора. В этом
случае у нас будет следующий запрос.

ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Статус КАК Статус
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Статус в (&Статусы)

С таким результатом.

Результат выполнения запроса с оператором множественного выбора

Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Язык запросов в 1С для начинающих». Где эти и многие другие вопросы рассматриваются более подробно.

В чем особенность этого курса:
• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
• Учебный материал грамотно скомпонован и прост в освоении;
• Несколько десятков уроков;
• Полезные практические примеры;
• Все уроки изложены понятным и простым языком

Для моих читателей, купон на скидку 25%: hrW0rl9Nnx


Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

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

2017-12-18T22:49:29+00:00<<< Документы Константы Перечисления РегистрыБухгалтерии
<<< РегистрыНакопления РегистрыСведений Справочники

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

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

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

/// Как вывести все значения перечисления в 1с 8.3, 8.2
 
&НаСервере
Процедура КакВывестиВсеЗначенияПеречисленияНаСервере()
 
    ВременаГода = Перечисления.ВременаГода;
 
    // первый способ
    Для Каждого Время Из ВременаГода Цикл
        Сообщить(Время);
    КонецЦикла;
 
    // второй способ
    Для Индекс = 0 По ВременаГода.Количество() - 1 Цикл
        Сообщить(ВременаГода.Получить(Индекс));
    КонецЦикла;
 
КонецПроцедуры
 
/// Как открыть форму списка значений перечисления в 1с 8.3, 8.2
 
&НаКлиенте
Процедура КакОткрытьСписокЗначенийПеречисления(Команда)
 
    ОткрытьФорму("Перечисление.ВременаГода.ФормаСписка");
 
КонецПроцедуры
 
/// Как открыть форму выбора значений перечисления в 1с 8.3, 8.2
 
&НаКлиенте
Процедура КакОткрытьФормуВыбораЗначенияПеречисления(Команда)
 
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораПеречисления",
        ЭтотОбъект);
 
    ОткрытьФорму("Перечисление.ВременаГода.ФормаВыбора",,,,,,
        ОповещениеОЗакрытии);
 
КонецПроцедуры
 
&НаКлиенте
Процедура ПослеВыбораПеречисления(РезультатЗакрытия,
    ДополнительныеПараметры) Экспорт
 
    Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        Сообщить(РезультатЗакрытия);
    КонецЕсли;
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

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

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

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

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Понравилась статья? Поделить с друзьями:
  • Как найти мои устройства на гугл аккаунте
  • Как найди дискриминант квадратного уравнения
  • Как составить бюджетирование в компании
  • Как автору найти музыкантов
  • Личный перспективный план как составить