Содержание:
1. Что такое перечисление в запросе 1С?
2. Основные параметры перечисления
3. Использование перечисления в блоке запроса ВЫБРАТЬ
4. Использование перечисления в условиях запроса
1. Что такое перечисление в запросе 1С?
Для начала освежим в памяти, что такое перечисление в запросе.
Перечисление представляет собой служебный тип данных, который не используется самостоятельно, а применяется в основном в совокупности с другими типами данных. Определить перечисление можно еще как список возможных значений реквизита.
Перечисления используются при вводе значений реквизитов документов, справочников, при вводе значений констант, в тех случаях, когда необходимо исключить неоднозначный ввод информации.
Можно добавить, что перечисления – это предопределенные данные. То есть к значению перечисления можно обращаться через точку. В то же время конкретное значение перечисления не имеет ссылки. Все это определяет особенности использования перечислений в запросах 1С.
2. Основные параметры перечисления
· Имя – имя значения, созданное по правилам формирования имен 1С, которое используется при обращении к конкретному значению через точку в тексте программы;
· Синоним – произвольное название значения, которое несет смысловую нагрузку и отображается как результат обращения к перечислению, является представлением ссылки;
· Порядок – порядковый номер значения в списке (начиная с 0). Весьма полезный параметр.
Использование перечисления в запросе 1С рассмотрим на самом простом примере: Пол Физического Лица. В России насчитывается 2 значения: Мужской и Женский. При локализации 1С в некоторых странах мира возможно увеличение количества значений до 7. Количество значений в перечислении не принципиально – принцип один и тот же для любого количества значений.
3. Использование перечисления в блоке запроса ВЫБРАТЬ
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
В результате выполнения этого запроса в поле «Пол» будет находиться объект метаданных «Перечисление» с тем значением, которое присвоено данному Физическому лицу.
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ПРЕДСТАВЛЕНИЕ(ФизическиеЛица.Пол) КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
Использование в запросе ключевого слова ПРЕДСТАВЛЕНИЕ позволит получить в поле «Пол» строку, содержащую Синоним данного значения перечисления в 1С. Нужно иметь ввиду, что визуализация значения Перечисления всегда идет через Синоним. Сделаем прямой запрос к объекту Перечисление:
ВЫБРАТЬ
ПолФизическогоЛица.Ссылка КАК Ссылка,
ПолФизическогоЛица.Порядок КАК Порядок
ИЗ
Перечисление.ПолФизическогоЛица КАК ПолФизическогоЛица
Мы увидим только Синонимы в поле «Ссылка» и порядковый номер в поле «Порядок».
4. Использование перечисления в условиях запроса
В условиях запроса «впрямую» (не через параметр запроса) можно использовать ТОЛЬКО конкретное значение перечисления в 1С, обозначая его с ключевым словом «ЗНАЧЕНИЕ» или «Порядок значения». Любой другой способ использования даст ошибку при исполнении запроса.
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
ФизическиеЛица.Пол = ЗНАЧЕНИЕ (Перечисление.ПолФизическогоЛица.Женский)
Результатом выполнения этого запроса будет таблица со ссылками физ. лиц женского пола.
ВНИМАНИЕ! В тексте запроса после «ЗНАЧЕНИЕ» слово «Перечисление» используется в единственном числе, в отличие от использования в тексте программ. Это частая ошибка начинающих пользователей, которые копируют текст, сформированный конструктором, из программы в запрос.
Аналогичный результат получится, если известен Порядок нужного Значения и лень писать длинные тексты:
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
ФизическиеЛица.Пол.Порядок = 1
Также в условиях запроса может быть использован список значений Перечисления:
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
ФизическиеЛица.Пол В (ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Женский), ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Мужской))
Или
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
ФизическиеЛица.Пол.Порядок В (1,2)
Если учитывать особенности, то использование перечислений в запросе – это несложный и понятный процесс.
Специалист компании ООО «Кодерлайн»
Владимир Бабушкин.