Меню Рубрики

Перечисление найти по синониму

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

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

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

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

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

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

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

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

Источник статьи: http://e-1c.ru/node/110

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

Передаю через COM из 7.7 в 8.2 элемент справочника, и тут оказывается, что перечисление у меня одинаковое.
Сложной конструкцией вытащил из СОМ-объекта синоним.

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

(7) почитал. там повсеместно используется параметр ЗначениеПеречисленияВ8
а мне он нужен как результат.

давайте с другой стороны!

у меня есть неважно откуда строка «Обязательное медицинское страхование», которую нужно подставить в этот реквизит. визуально я вижу, что эта строка равна синонимому значения «Перечисление.СтатистическиеГруппы.ОбязательнаяМедицина»

как получить «Перечисление.СтатистическиеГруппы.ОбязательнаяМедицина» по значению «Обязательное медицинское страхование»??

(12) да. теперь мой вопрос. я в нескольких темах видел пользователя Живой Ископаемый, там пользователь не советует, не дает примеров кода, а только говорит типо «нет.. вообще ничего не ясно. «, «переливаем из пустого»и пр.
эта тема, про Перечисления через Метаданные, она какая-то для тебя особенная?
(13) наверное у меня просто нелюбовь к «Конвертации данных» при переносе данных

всем спасибо за наводящие вопросы, тема закрыта. постараюсь функцию передать в книгу знаний

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

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

2(15) он получает имя из в77 по КОМ, и там имя другое чем у такого же перечисления в в8.

Источник статьи: http://forum.mista.ru/topic.php?id=584275

Получить имя значения перечисления

Программирование системы 07.06.2016 16:43 3233

Перечисление — это объект метаданных. Значения определяются только через конфигуратор. Имя значения перечисления не доступно «через точку». Получить имя объекта ПеречислениеСсылка можно через метаданные. Во многих типовых конфигурациях можно найти подобные функции в общих модулях. Обычно такие процедуры и функции расположены в общем модуле с наименованием «ОбщегоНазначения».

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

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

Получить синоним значения перечисления

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник статьи: http://1clenta.ru/pattern/43

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

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

Пар = Новый Структура(«Отбор,СтрокаПоиска»);
Пар.СтрокаПоиска = «Обычная»;
Стр = Перечисления.ВариантыВажностиЗадачи.ПолучитьДанныеВыбора(Пар);
Для Каждого Строка Из Стр Цикл
Сообщить(Строка);
КонецЦикла;
Стр — пустой список. Не могу понять какие параметры задаю не правильно?

(1) alw-1, может конечно не в тему, но к значениям перечисления можно обращаться по имени заданному в строковом виде.

Т.е. например у нас есть значнеие перечисления «Перечисления.ВариантыВажностиЗадачи.Обычная», мы можем ее получить и так:

ИмяЗначения = «Обычная»;
СсылкаНаПеречисление = Перечисления.ВариантыВажностиЗадачи[ИмяЗначения];

или не об этом вопрос был?

ЗЫ. Кстати, для меня вобоще загадка для чего в перечислениях может понадобится ПолучитьДанныеВыбора с отбором параметров? Может кто прояснит что там отбирать то?

Источник статьи: http://forum.infostart.ru/forum9/topic63755/

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

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

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

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

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

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

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

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

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

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

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

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

Источник статьи: http://master1c8.ru/platforma-1s-predpriyatie-8/rukovodstvo-razrabottchika/glava5-obaekt-kogfiguratsii/rabota-s-peretchisleniyami/

Как работать с перечислениями в 1с 8.2 – 8.3

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

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

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

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

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

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

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

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

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

Источник статьи: http://kuharbogdan.com/programmiruem-v-1s/kak-rabotat-s-perechisleniyami-v-1s-8-2-8-3/


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии