Меню Закрыть

1С выбрать значение перечисления

Содержание

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

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

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

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

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

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

Читайте также:  Что происходит со скайпом сегодня 2018

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

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

Перечисления

Описание:

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

Например, в конфигурации можно задать перечисление "ВидыКонтрагентов", определяющее допустимые виды контрагентов, со значениями "Организация" и "ФизЛицо".

Набор значений перечисления задается при конфигурировании.

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

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

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Читайте также:  Ulmb режим что это

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

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

Guesto notes

У документа Рассылка электронной почты пользователю необходимо ограничить выбор статуса до Подготоваливается и Подготовлена. Статусы Выполняется и Завершена будут устанавливаться регламентным заданием в момент выполнения рассылки и ее завершения. Разбираемся с ограниченим выбора значений перечисления.

Задача

Имеется документ Рассылка электронной почты, при создании документа автоматически устанавливаетс статус Подготавливается, после подготовки рассылки пользователь устанавливает статус Подготовлена. Рассылка выполняется регламентным заданием с момента указанным как дата документа, в моент рассылки устанавливается статус Выполняется, по заверешении — Заверешена. Пользователю необходимо ограничить выбор статуса до Подготоваливается и Подготовлена.

Решение

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

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

Для органичения необходимо в процедуре ОбработкаПолученияДанныхВыбора() модуля менеджера перечисления указать доступные данные выбора в переменной ДанныеВыбора. Для этого в переменную ДанныеВыбора поместим список допустимых значений.

Так же не забываем переменной СтандартнаяОбработка присвоить значение Ложь, иначе в списке выбора будут доступны все элементы + указанные в переменной ДанныеВыбора. Проверяем результат:

Теперь даже если будет указан не доступный для пользователя статус, он будет корректно отображаться:

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.