1С 8. Обращение к перечислению на клиенте в управляемых формах
Также эту функцию можно использовать для того, чтобы получить предопределенный элемент из предопределенных данных и точек маршрута бизнес-процессов, в том числе предопределенных значений Справочников:
Обратите внимание: Перечисление, Справочник (а не Перечисления, Справочники)
Получение Имени метаданных Перечисления по значению и поиск значения по Имени
В моей практике периодически возникает потребность в поиске значения Перечисления по его Имени. Например, это нужно, когда требуется перенос данных между базами, который производится не типовым обменом, а внешней обработкой, создаваемой под тип файла данных заказчика. Как часто встречающийся вариант — Excel файл произвольной конфигурации.
Получить Имя элемента Перечисления по Ссылке можно следующим образом:
Имя метаданных самого Перечисления мы тоже получаем в первой строке кода функции, если оно нужно, его можно использовать.
Получить Ссылку на элемент Перечисления по Имени можно так:
Собственно, таким простым способом можно реализовать подобную манипуляцию. Публикация не претендует на решение высокой сложности, скорее — это шпаргалка для простой, но не так часто встречающейся задачи, чтобы сэкономить время.
Специальные предложения
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Так ведь я же не целиком код функции привел. 🙂 Моя претензия заключалась в необходимости использования метода «Выполнить». Альтернативу ей я и представил. «Обвязка» здесь подразумевалась любая, по желанию разработчика.
Что же касается таки попытки, то все зависит от задачи же. На мой вкус ситуация, когда нужно вернуть пустую ссылку встречается заметно реже, нежели когда должно быть выброшено исключение. Поэтому про попытку вообще ничего не пишу.
- Скопировать ссылку
- Перейти
За использование попытки вместо нормального поиска по коллекции метаданных надо организовывать персональный ад.
Простой алгоритм — не равно — правильный алгоритм.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Просмотры 5384
Загрузки 0
Рейтинг 0
Создание 12.10.20 07:00
Обновление 12.10.20 07:00
№ Публикации 1306663
Тип файла Нет файла
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
См. также
Использование классов .Net в 1С для новичков Промо
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 89701 Serginio 116
О цикле обратном замолвите слово.
Однажды, написав статью, расписывающую достоинства 1С, я упомянул среди недостатков — мне не хватает "обратного цикла". При этом, столкнулся с непониманием — "а зачем тебе обратный цикл". Сегодня я отвечу на этот вопрос.
08.09.2022 2689 DrAku1a 65
1С и Unicode
Разбираемся, как 1С работает с текстом и отдельными символами в контексте Unicode.
05.09.2022 1806 Irwin 30
Почему нельзя использовать ТекущаяДата()
ИТС и ИС не ответили исчерпывающе, поэтому написал данную заметку.
23.08.2022 6303 Патриот 56
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 42324 unichkin 74
Шпаргалка по функциям АСИНХ
При знакомстве с новой механикой работы с асинхронностью (обещание, ждать и асинх) делал пометки, которыми и хочу поделиться. Ничего сверхъестественного в них нет, просто небольшие примеры и некоторые всплывшие нюансы использования.
29.07.2022 5238 zeltyr 15
Экспертный кейс. История расследования одного небыстрого закрытия месяца в 1C:ERP. Пример неочевидных путей расследования в виде детективной истории
В данной статье хотим рассказать об одном нашем непростом расследовании, в котором удалось собрать сразу несколько проблем на разных уровнях инфраструктуры заказчика и изначальной методологии ведения учета. Само расследование в какой-то момент стало напоминать детективную историю, с роялями в кустах, ошибками платформы, странным поведением пользователей и магическим поведением хорошо знакомых механизмов. Но мы реалисты, поэтому все проблемы были выявлены и устранены 😉
11.07.2022 4341 it-expertise 27
Состав индексов с дополнительным упорядочиванием на уровне СУБД (MS SQL) при индексации реквизитов
В момент обсуждения с коллегами работы индексов в 1С был затронут один из вопросов, который касался темы — каким образом происходит построение индексов при индексации реквизитов у объектов 1С (конкретнее, когда свойство реквизита "Индексировать" устанавливается в "Индексировать с доп. упорядочиванием"). Ранее я всегда опирался на знания, полученные в процессе чтения официальной документации от компании 1С, опубликованной на ITS. Наши мнения в этом вопросе разошлись и, как оказалось позже, мои знания не были актуальными, в итоге было проведено некоторое исследование по данному вопросу, чтобы выяснить истину.
15.06.2022 1692 sinichenko_alex 9
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 38886 tormozit 107
Динамическое обновление — это зло?
Копнем глубже в тему "Что же такое динамическое обновление" и почему оно может привести к проблемам. И может ли?
09.05.2022 12524 Infostart 77
Об одной неочевидной проблеме перехода на версию платформы 8.3.20
При переходе на платформу 8.3.20 мы столкнулись с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка" в ряде типовых конфигураций. Причём, эта проблема оказались неизвестна ни Яндексу, ни Гуглу. Путём мучительных экспериментов нам удалось найти решение. Пока я ещё не уверен, действительно это решение или обходной костыль, а настоящая проблема — в чём-то другом, но это решение работает в ситуации, когда всё сломалось, а проблему надо решать срочно. Предположительная причина: платформа 8.3.20 более строго относится к типизации данных в запросах, чем предыдущие версии, вываливая в случае несоблюдения новшеств малопонятные ошибки.
08.04.2022 4800 Kernelbug 25
Отборы динамического списка
Динамический список предоставляет несколько объектов "Отбор". В статье разбирается, какой для чего нужен и как их использовать на форме. Рассматриваются только возможности платформы (без БСП).
28.03.2022 9814 Gladkov_Anton 4
Как прикрутить ГУИД к регистру сведений Промо
. и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.
16.04.2019 24411 m-rv 18
Фишки платформы 1С 8.3 для начинающего разработчика
В данной заметке рассмотрены вспомогательные инструменты платформы, которыми часто пренебрегают начинающие программисты 1С.
11.03.2022 8838 Dimbayyyy 96
Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)
В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста. Согласно данным подсистемы БСП “Оценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.
02.03.2022 3392 it-expertise 47
Модульная архитектура или пара слов о расширениях. Часть I (мысли, рассуждения)
Статья-размышление о том, какое может быть применение технологии расширений 1С и зачем нам, разработчикам/программистам на 1С, знать общепринятые паттерны проектирования приложений. Итак, а что если я вам скажу, что технология расширений 1С — это одно из прекрасных новшеств компании 1С? Пусть эта статья будет хвалебной одой расширениям 1С.
14.02.2022 5318 amon_ra 67
Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо
Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем — чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").
05.12.2017 31637 itriot11 34
Синхронный и асинхронный вызов в новых версиях платформы
Начиная с платформы 8.3.18.1128 переработана технология работы с асинхронными вызовами. В данной статье хочу описать новые асинхронные вызовы и сравнить их с предыдущими на примере функции — Вопрос на клиенте.
31.01.2022 4677 Shining_ninja 17
Несколько простых приемов для удобной работы в конфигураторе
Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С — в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.
12.11.2021 10367 acces969 95
Как спроектировать структуру регистра сведений
«Что может быть проще?» — это первое, что приходит в голову. Но что, если это не так? В этой статье мы попробуем затронуть некоторые вопросы, которые могут возникнуть при проектировании больших регистров.
08.11.2021 7474 Neti 60
Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо
По роду своей деятельности, мне часто приходится обсуждать с программистами детали реализации той или иной функциональности. Очень часто, разговаривая даже с квалифицированными специалистами я сталкиваюсь с незнанием сути платформенной функциональности Повторного использования возвращаемых значений общих модулей. В данной статье я постараюсь дать краткий обзор и основные особенности этой функциональности.
04.09.2017 62283 m-rv 63
О вложенных попытках, исключениях и о представлении ошибок
В данной статье, на небольшом примере, мне бы хотелось показать, как себя ведут вложенные "Попытка-Исключение". А также о том, чем отличаются методы ОписаниеОшибки() и ИнформацияОбОшибке().
07.11.2021 6832 Nicholas 17
Обработчик ожидания. Нюансы
ПодключитьОбработчикОжидания: некоторые подробности и особенности работы
24.08.2021 17024 Yashazz 25
Прогресс-бар в поле динамического списка
Изображаем прогресс-бары в колонке динамического списка
23.08.2021 3861 Yashazz 13
Регулярные выражения без внешних компонент? Легко! Промо
Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) — не зависит.
04.03.2016 77056 starik-2005 111
ПриПолученииДанныхНаСервере + Контекст формы. Лайфхак
Передать свои произвольные данные в событие, которое "без контекста"? Легко!
13.08.2021 5633 Yashazz 16
Новичок новичку: как добавить программно кнопку на форму путем расширения
Рассказываю очень простым языком, как добавить программно кнопку в типовую конфигурацию. Сам новичок в этом деле и рассказываю на "новичковом" языке.
13.05.2021 26417 user1312100 25
Программное создание расширения
Создание нового расширения "на лету", только штатными средствами 1С.
06.04.2021 5826 Yashazz 15
Методика переопределения и вызова обработчиков событий обычной формы Промо
Каждый из нас хотя бы раз задумывался над тем, как было бы удобно, если бы мы могли переопределять обработчики событий формы, сохраняя возможность вызова старого обработчика независимо от его имени. В этой статье изложен метод, который позволяет реализовать эту возможность.
24.06.2007 91136 tormozit 31
Неочевидные нюансы записи управляемой формы
Разберем несколько нюансов записи управляемой формы.
02.04.2021 22559 SeiOkami 56
Советы из Желтой тетради 📒 #1
В этой публикации я собрал в одном месте часть советов и лайфхаков, которые открыл для себя в последнее время. Регулярно я публикую их в своём телеграм-блоге "Жёлтая тетрадь 📒 Блог программиста 1С", здесь же — дайджест этих публикаций.
15.03.2021 5856 builin 120
Флаг "Использовать ПОЧТИ всегда", или Нюанс динамических списков
Небольшая пятничная история по программной работе со строкой динамического списка.
11.02.2021 7839 SeiOkami 36
Отладка подключаемых обработок Промо
На самом деле для этого не нужно ни изменять конфигурацию, ни пользоваться вспомогательной обработкой-отладчиком.. Все просто 🙂
04.01.2017 85140 unichkin 119
Расширенный автоподбор при вводе по строке в поле ввода в управляемых формах
Началось все с того, что штатный автоподбор при вводе по строке в поле ввода для некоторых больших справочников устраивать перестал. Вообще, для способа поиска строки "Любая часть" он работает на первый взгляд очень хорошо: работает как полнотекстовый (т.е. по нескольким словам) даже без активации полнотекстового поиска, красиво подсвечивает слова поиска в результатах. Казалось бы, все отлично. Но есть неприятное ограничение — всего лишь 10 значений в результирующем списке (у вас может быть несколько больше, так как платформа неявно добавляет результаты поиска по истории ввода). Для небольших справочников или справочников с разнородным ассортиментом все хорошо. Но не в моей ситуации. А простых путей увеличить количество выдаваемых строк на момент написания статьи мне обнаружить не удалось. Пришлось полностью переопределять автоподбор. Ниже речь пойдет именно об этом. И, к слову, в типовых конфигурациях для некоторых справочников используются похожие приемы для увеличения количества строк результата автоподбора.
21.01.2021 7332 herfis 7
О формах 1С замолвите слово. Необычное использование знакомого всем объекта
Неочевидно, но форму 1С можно использовать как универсальный объект, который доступен на клиенте и имеет уникальный набор свойств, методов, событий и конструктор, принимающий параметры. При этом у формы может не быть интерфейса, и ее можно даже не открывать. О реальных примерах применения такого подхода пойдет рассказ.
13.01.2021 9509 CyberCerber 46
Наследование свойств элементов, или Как пользователь может сломать вашу форму
В 1С можно установить свойства ТолькоПросмотр, Доступность и Видимость не только на элементы формы, но и на группы элементов. Но стоит ли так делать? Оказывается, пользователь может обойти запреты, которые установлены на папку. Об этом подробнее в видео.
12.01.2021 5439 SeiOkami 27
Программные перечисления, ч.2: приемы кэширования при разработке Промо
Все знают, что такое кэш, и зачем он нужен. Но в 1С разработчик обычно использует кэширование только на уровне конфигурации, а в какой-нибудь обработке скорее ломает голову над запросом — как получить все данные за один заход. Хочется рассказать о том, как можно добиться хороших результатов с стратегией "разделяй и властвуй".
30.10.2017 29228 unichkin 18
Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя
Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске — все это решим в публикации с открытым кодом.
Как получить значение перечисления
- Главная
- 1С Предприятие
- Программирование 1С
- 1C. Как получить значение перечисления "На клиенте"
1C. Как получить значение перечисления "На клиенте"
Значение перечисления можно получить не обращаясь к серверу.
Для этого можно воспользоваться функцией ПредопределенноеЗначение().
Функция ПредопределенноеЗначение() позволяет получить ссылку на элемент из предопределенных данных, прикладных перечислений и точек бизнес-процессов.
Работа с перечислениями
Перечисление — это средство работы с элементами данных, список возможных значений которых жёстко задан в конфигурации и при выполнении задачи не может быть изменён. Так, например, для перечисления «Виды контрагентов» может быть задан следующий список значений:
- Физическое лицо ;
- Дочернее общество ;
- Зависимое общество ;
- Прочая организация .
В отличие от справочника, списки значений в перечислении задаются исключительно в процессе их создания в Конфигураторе и при выполнении задачи не могут быть изменены.
Создание и редактирование перечислений в Конфигураторе
Для создания нового перечисления в Конфигураторе необходимо щёлкнуть правой кнопкой мыши по значку «Перечисления» или значку любого конкретного перечисления и в выпадающем контекстовом меню выбрать пункт « Новое Перечисление » (см. рис. ниже). Тоже самое можно сделать и через главное меню Конфигуратора, последовательно выбрав пункты « Действия −> Новый элемент ».
Открыть же для редактирования уже созданное в конфигурации перечисление можно выбрав в контекстовом меню пункт « Редактировать » (см. рис. выше) или в главном меню — пункты « Действия −> Редактировать элемент ». При этом на экран будет выведено окно редактирования объекта типа » Перечисление » (см. рис. ниже).
В окне свойств объекта типа » Перечисление » необходимо указать идентификатор перечисления, по которому к перечислению можно будет обращаться в программном коде. В поле «Синоним» можно указать необязательный синоним идентификатора перечисления, который в дальнейшем будет использоваться при создании надписей к полям ввода типа » Перечисление » в различных формах. В поле «Комментарий» можно указать необязательный комментарий, текст которого в дальнейшем может использоваться для вывода всплывающих подсказок.
Для добавления нового значения в перечисление необходимо щёлкнуть по кнопке «Новый» под полем «Значения» (см. рис. выше). При этом на экран будет выведено окошко редактирования свойств нового значения (см. рис. ниже), в котором можно задать идентификатор значения (по идентификатору можно будет обращаться к значению в программном коде), строку-комментарий и экранное представление значения (как оно будет выводиться в полях форм и в списках для выбора).
Обращение к перечислениям из программного кода
Средства языка 1С предоставляют возможность непосредственного доступа к заданным в конфигурации значениям перечислений в любом программном модуле (перечисления принадлежат глобальному контексту задачи). В терминах языка перечисления аналогичны системным константам, то есть идентификаторы перечислений могут размещаться только в правой части оператора присваивания, в выражениях, быть параметрами процедур, функций или методов в любом программном модуле. При этом идентификатор и значение перечисления записываются через точку после ключевого слова «Перечисление» (англоязычный синоним — «Enum»), то есть полное имя значения перечисления записывается следующим образом:
- < ИмяПереч > — идентификатор вида перечисления, как он записан в Конфигураторе;
- < ЗначениеПереч > — идентификатор значения перечисления, как он записан в Конфигураторе.
Пример обращения к значению перечисления в программном коде:
Методы перечислений
Объект типа » Перечисление » является частью глобального контекста системы «1С:Предприятие» и обладает целым рядом методов.
Получить доступ к перечислению конкретного вида по его идентификатору (т.е. получить ссылку на конкретный объект типа » Перечисление » ) позволяет метод ПолучитьАтрибут() . Англоязычный синоним имени метода — GetAttrib() .
где < ИмяПеречисления > — строковое выражение, содержащее идентификатор вида перечисления, как он задан в Конфигураторе.
Определить общее количество значений в данном виде перечисления позволяет метод КоличествоЗначений() (англоязычный синоним — Count() ). Параметры у метода отсутствуют.
Получить значение перечисления, соответствующее указанному номеру позиции в списке , позволяет метод ЗначениеПоНомеру() (англоязычный синоним — ValueByIndex() ). Возвращаемым значением метода является строковое представление значения перечисления.
где < Номер > — числовое выражение, содержащее номер позиции значения перечисления, заданный в Конфигураторе. Нумерация позиций значений начинается с 1.
Пример использования метода приведён выше.
Получить строковое представление значения перечисления по идентификатору позволяет метод ЗначениеПоИдентификатору() (англоязычный синоним — ValueByIdentifier() ). Если указанный идентификатор в перечислении не найден, возвращается пустое значение.
где < Идентификатор > — строковое выражение, содержащее идентификатор значения перечисления, как он задан в Конфигураторе.
Пример использования метода:
Методы значений перечислений
Значения перечислений также обладают целым рядом методов. Данные методы используются преимущественно при работе с реквизитами справочников, документов и элементами диалогов, имеющими тип » Перечисление » .
Определить, выбрано ли значение реквизита типа » Перечисление » , позволяет метод Выбран() (англоязычный синоним — Selected() ). Он не имеет параметров и возвращает число 1, если значение реквизита выбрано, или 0, если значение реквизита не выбрано.
Получить порядковый номер значения в перечислении позволяет метод ПорядковыйНомер() (англоязычный синоним — Number() ). Параметры у метода отсутствуют.
Получить идентификатор значения перечисления позволяет метод Идентификатор() (англоязычный синоним — Identifier() ). Метод не имеет параметров, а его возвращаемым значением является строка, содержащая идентификатор значения, как он задан в Конфигураторе.
Получить название (идентификатор) вида перечисления , используемого в реквизите диалогового окна, позволяет метод Вид() (англоязычный синоним — Kind() ). Параметры у метода отсутствуют, а возвращаемым значением является строка, содержащая идентификатор вида перечисления.
Получить представление вида (синоним) перечисления , используемого в реквизите диалогового окна, позволяет метод ПредставлениеВида() (англоязычный синоним — KindPresent() ). Параметры у метода отсутствуют, а возвращаемым значением является строка, содержащая синоним вида (если синоним не указан, возвращается идентификатор).