В запросе значение перечисления задается через функцию Значение().
Обратите внимание, что в запросе наименование объекта метаданных используется в единственном числе: «Перечислен ие «
Пустое (не выбранное) значение:
Системное перечисление получается аналогично, но без указания «Перечисление»:
А не в запросе?
В коде модулей получить значение можно двумя способами:
Второй более универсальный, т.к. выполняется и &НаКлиенте . Первоначальный вызов значение выполняется медленнее, далее — кэшируется системой.
В 8.1 доступен только первый вариант.
Поведение Максимум() в запросе с перечислением
Если взять Минимум или Максимум от значения перечисления, запрос показывает стабильный, но не понятный результат:
- не по порядку
- не по наименованию
- не по длине имени
- скорее всего по внутреннему уид значения, которое нам недоступно простыми средствами, тем более в запросе
Задача
Есть перечисление со значениями
Необходимо в запросе получать максимальное или минимальное значение согласно его порядка
Решение
В данном случае решение усложнено, отсутствием для вас реальных данных, ведь не надо было делать вложенные соединения — порядок можно получить из значения непосредственно
Результат
Вы обязательно истратите слишком много, если захотите сэкономить на хорошей рекламе. Это подобно покупке билета на три четверти пути в Европу: вы потратили деньги, но туда не доехали.
Привет. У меня в запросе 1С есть поле, оно всегда должно принимать значение перечисления ВидыДвиженийДенежныхСредств — НалогНаПрибыль. Не хочется использовать параметр, можно без него обойтись? Видел где то в коде когда то, вспомнить никак не могу
Для этого этого нужно использовать функцию языка запросов 1С 8 — Значение( ). Вот простой пример:
Функция ЗНАЧЕНИЕ — Позволяет использовать прямо в текстах запроса предопределенные в конфигураторе данные. (т.е. позволяет избавиться от необходимости передавать их параметрами к запросу). Использование предопределенных данных конфигурации
Например:
можно было бы написать в запросе:
Код 1C v 8.х
а потом передать в запрос параметр:
Код 1C v 8.х
А при помощи ЗНАЧЕНИЕ будет так:
Код 1C v 8.х