1с запрос сравнение с перечислением

В запросе значение перечисления задается через функцию Значение().

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

Пустое (не выбранное) значение:

Системное перечисление получается аналогично, но без указания «Перечисление»:

А не в запросе?

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

Второй более универсальный, т.к. выполняется и &НаКлиенте . Первоначальный вызов значение выполняется медленнее, далее — кэшируется системой.

В 8.1 доступен только первый вариант.

Поведение Максимум() в запросе с перечислением

Если взять Минимум или Максимум от значения перечисления, запрос показывает стабильный, но не понятный результат:

  • не по порядку
  • не по наименованию
  • не по длине имени
  • скорее всего по внутреннему уид значения, которое нам недоступно простыми средствами, тем более в запросе

Задача

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

Необходимо в запросе получать максимальное или минимальное значение согласно его порядка

Решение

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

Результат

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

Привет. У меня в запросе 1С есть поле, оно всегда должно принимать значение перечисления ВидыДвиженийДенежныхСредств — НалогНаПрибыль. Не хочется использовать параметр, можно без него обойтись? Видел где то в коде когда то, вспомнить никак не могу

Для этого этого нужно использовать функцию языка запросов 1С 8 — Значение( ). Вот простой пример:

Функция ЗНАЧЕНИЕ — Позволяет использовать прямо в текстах запроса предопределенные в конфигураторе данные. (т.е. позволяет избавиться от необходимости передавать их параметрами к запросу). Использование предопределенных данных конфигурации

Например:
можно было бы написать в запросе:
Код 1C v 8.х
а потом передать в запрос параметр:
Код 1C v 8.х

А при помощи ЗНАЧЕНИЕ будет так:
Код 1C v 8.х

Оцените статью