Недокументированная функция ВЫБОР

Иногда в запросах необходимо получить не сами данные, а в зависимости от результата вывести другие данные. Для этих целей в языке запросов 1С есть конструкция ВЫБОР КОГДА.

Самая простая конструкция выглядит так:

ВЫБОР КОГДА <Условие с результатом типа Булево>
  ТОГДА <Результат в случае если Истина>
КОНЕЦ


Пример:

ВЫБОР

         КОГДА МЕСЯЦ(ПоступлениеТоваров.Дата)= 1

                   ТОГДА  "Январь"

КОНЕЦ

 

В данном случае используется только один вариант получения записей, когда результат является истиной при заданном условии.

Если необходимо учитывать результат при переходе условия в значение ЛОЖЬ, используется следующая конструкция:

ВЫБОР КОГДА <Условие с результатом типа Булево>
  ТОГДА <Результат в случае если Истина>
  ИНАЧЕ <Результат в случае если Ложь>
КОНЕЦ


Пример:

ВЫБОР

         КОГДА Контрагенты.Город <> ""

                   ТОГДА  Контрагенты.Город

         ИНАЧЕ "Не задан"

КОНЕЦ

 

Если в поставленной задачи возможно более двух исходов в зависимости от значения выбранного параметра, необходимо разделить условие на несколько ветвей. При операторе ВЫБОР высчитывается значение выбранного параметра. Далее в операторе КОГДА задается один из возможных результатов параметра. Происходит сравнение полученного в операторе ВЫБОР значения параметра с выставленным в операторе КОГДА. При совпадении значений программа переходит к оператору ТОГДА и выводит занесенной в него результат. В противном случае программа переходит к считыванию следующего оператора КОГДА.

Если программа последовательно прошла все операторы КОГДА и ни одно значение результата не совпало, т.е не ИСТИНА, тогда выводятся данные, заданные в операторе ИНАЧЕ.

В таких случаях используется следующая конструкция:

ВЫБОР <Параметр, по которому ставится условие>

КОГДА <результат 1>
  ТОГДА <Результат в случае если Истина>

КОГДА <результат 2>
  ТОГДА <Результат в случае если Истина>

…….
  ИНАЧЕ <Результат в случае если остальные условия в значении Ложь>
КОНЕЦ


Пример:

ВЫБОР  МЕСЯЦ(ПоступлениеТоваров.Дата)

         КОГДА 1 ТОГДА "Январь"

         КОГДА 2   ТОГДА "Февраль"

         КОГДА 3   ТОГДА "Март"

         КОГДА 4   ТОГДА "Апрель"

         КОГДА 5   ТОГДА "Май"

         КОГДА 6   ТОГДА "Июнь"

         КОГДА 7   ТОГДА "Июль"

         КОГДА 8   ТОГДА "Август"

         КОГДА 9   ТОГДА "Сентябрь"

         КОГДА 10 ТОГДА "Октябрь"

         КОГДА 11 ТОГДА "Ноябрь"

         КОГДА 12 ТОГДА "Декабрь"

         ИНАЧЕ ""

КОНЕЦ

 

 


Возврат к списку


СВЯЖИТЕСЬ С НАМИ

Tel: +7 (495) 135-06-12
Email: info@sholdy.ru

ПОДЕЛИТЬСЯ ССЫЛКОЙ


ОБРАТНЫЙ ЗВОНОК

Заинтересовали наши услуги? Вы можете заказать обратный звонок. Мы ответим на все Ваши вопросы.