Недокументированный синтаксис оператора "ВЫБОР" в запросе

Версия для печатиPDF-версия
Недавно возникла необходимость в запросе сопоставить наименование месяца периоду регистра накопления.
Следуя справке по языку запросов 1С данную задачу можно решить следующим образом:
 
ВЫБРАТЬ
  ВЫБОР
    КОГДА МЕСЯЦ(Продажи.Период) = 1
      ТОГДА "Январь"
    КОГДА МЕСЯЦ(Продажи.Период) = 2
      ТОГДА "Февраль"
    КОГДА МЕСЯЦ(Продажи.Период) = 3
      ТОГДА "Март"
    КОГДА МЕСЯЦ(Продажи.Период) = 4
      ТОГДА "Апрель"
    КОГДА МЕСЯЦ(Продажи.Период) = 5
      ТОГДА "Май"
    КОГДА МЕСЯЦ(Продажи.Период) = 6
      ТОГДА "Июнь"
    КОГДА МЕСЯЦ(Продажи.Период) = 7
      ТОГДА "Июль"
    КОГДА МЕСЯЦ(Продажи.Период) = 8
      ТОГДА "Август"
    КОГДА МЕСЯЦ(Продажи.Период) = 9
      ТОГДА "Сентябрь"
    КОГДА МЕСЯЦ(Продажи.Период) = 10
      ТОГДА "Октябрь"
    КОГДА МЕСЯЦ(Продажи.Период) = 11
      ТОГДА "Ноябрь"
    КОГДА МЕСЯЦ(Продажи.Период) = 12
      ТОГДА "Декабрь"
    ИНАЧЕ "неопределено"
  КОНЕЦ КАК Месяц
ИЗ
  РегистрНакопления.Продажи КАК Продажи.
 
Однако существует более компактный способ записи данного запроса, не описанный в документации:
 
ВЫБРАТЬ
  ВЫБОР МЕСЯЦ(Продажи.Период)
    КОГДА 1
      ТОГДА "Январь"
    КОГДА 2
      ТОГДА "Февраль"
    КОГДА 3
      ТОГДА "Март"
    КОГДА 4
      ТОГДА "Апрель"
    КОГДА 5
      ТОГДА "Май"
    КОГДА 6
      ТОГДА "Июнь"
    КОГДА 7
      ТОГДА "Июль"
    КОГДА 8
      ТОГДА "Август"
    КОГДА 9
      ТОГДА "Сентябрь"
    КОГДА 10
      ТОГДА "Октябрь"
    КОГДА 11
      ТОГДА "Ноябрь"
    КОГДА 12
      ТОГДА "Декабрь"
    ИНАЧЕ "неопределено"
  КОНЕЦ КАК Месяц
ИЗ
  РегистрНакопления.Продажи КАК Продажи.
 
Как можно заметить данный синтаксис напоминает синтаксис операторов выбора case в Pascal и switch в C, PHP, Java и др.

 

Полезность материала: 
5
Ваша оценка: Нет Средняя: 5 (3 оценок)
Оцените полезность материала
© При копировании материалов сайта ссылка на оригинал обязательна.