Имя: Пароль:
1C
 
Получить запросом выборку дней из года.
, ,
0 Wirtuozzz
 
26.09.16
16:56
Всем привет.
Вопрос вроде простой, но чет загрузился им, как можно запросом получить список дат выбранного года в виде:
01.01.2016
02.01.2016
03.01.2016
..
31.12.2016
Кто что посоветует?
1 В тылу врага
 
26.09.16
16:57
Регламентированный производственный календарь
2 Wirtuozzz
 
26.09.16
16:58
(1) Можно подробнее?
3 Wirtuozzz
 
26.09.16
16:58
(1) как к нему в запросе обратиться?
4 В тылу врага
 
26.09.16
16:58
(2) в типовых есть такой регистр сведений, там содержатся ВСЕ даты года
5 Wirtuozzz
 
26.09.16
17:00
Это в зупе чтоли? или во всех его добавили?
6 kumena
 
26.09.16
17:04
> Регламентированный производственный календарь

Как назло на острове нет календаря,
Ребятня и взрослые пропадают зря.
Ребятня и взрослые пропадают зря,
На проклятом острове нет календаря
7 В тылу врага
 
26.09.16
17:04
(5) не могу сказать про все, но в ЗУП, УТ, УПП оно есть
8 Генератор
 
26.09.16
17:06
да в самописку несложно скопипастить, мож пригодится еще
9 GedKo
 
26.09.16
17:12
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КАК Период
ИЗ
   (ВЫБРАТЬ 0 КАК a
   ОБЪЕДИНИТЬ  
   ВЫБРАТЬ 1
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 2
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 3
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 6
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 7
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 8
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 9) КАК aa
      ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b
      ОБЪЕДИНИТЬ
   ВЫБРАТЬ 1
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 2
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 3
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 6
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 7
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 8
   ОБЪЕДИНИТЬ    
    ВЫБРАТЬ 9) КАК bb
      ПО (ИСТИНА)
      ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c
      ОБЪЕДИНИТЬ
    ВЫБРАТЬ 1
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 2
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 3
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 6
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 7
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 8
   ОБЪЕДИНИТЬ    
    ВЫБРАТЬ 9) КАК cc
      ПО (ИСТИНА)
      ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
         0 КАК d
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ 1
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 2
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 3
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 6
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 7
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ 8
   ОБЪЕДИНИТЬ    
    ВЫБРАТЬ 9) КАК dd
      ПО (ИСТИНА)
ГДЕ
   aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
10 anatoly
 
26.09.16
17:26
а в БГУ например это РС "ДанныеПроизводственногоКалендаря"
11 anatoly
 
26.09.16
17:27
(9) в известном примере применяются ВТ ))
12 f_vadim
 
26.09.16
17:30
ВЫБРАТЬ 0 КАК Х ПОМЕСТИТЬ Регистр1 ОБЪЕДИНИТЬ ВЫБРАТЬ 1;
ВЫБРАТЬ Младшие.Х + 2 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр2 ИЗ Регистр1 КАК Младшие, Регистр1 КАК Старшие;
ВЫБРАТЬ Младшие.Х + 4 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр4 ИЗ Регистр2 КАК Младшие, Регистр2 КАК Старшие;
ВЫБРАТЬ Младшие.Х + 16 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр8 ИЗ Регистр4 КАК Младшие, Регистр4 КАК Старшие;
ВЫБРАТЬ Младшие.Х + 256 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр16 ИЗ Регистр8 КАК Младшие, Регистр4 КАК Старшие;
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНачала, День, Х) КАК Период ПОМЕСТИТЬ Периоды ИЗ Регистр16;


отсюдова http://catalog.mista.ru/public/90367/
13 f_vadim
 
26.09.16
17:32
к (12) я ошибся маленько, но по ссылке всё есть
14 f_vadim
 
26.09.16
17:35
производственный календарь - хорошо. но нужно следить, чтоб был заполнен.
без него не обойтись если нужно работать с рабочими/нерабочими днями. в остальных случаях - лишний груз.
15 kosstikk
 
26.09.16
17:43
(0)

ВЫБРАТЬ
    0 КАК Число
ПОМЕСТИТЬ Числа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Числа.Число + Числа1.Число * 10 + Числа2.Число * 100 КАК Число
ПОМЕСТИТЬ ВТ_999
ИЗ
    Числа КАК Числа,
    Числа КАК Числа1,
    Числа КАК Числа2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, ВТ_999.Число) КАК Дата
ИЗ
    ВТ_999 КАК ВТ_999
ГДЕ
    ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, ВТ_999.Число) <= КОНЕЦПЕРИОДА(&Дата, ГОД)

УПОРЯДОЧИТЬ ПО
    Дата
16 Wirtuozzz
 
26.09.16
21:16
Спасибо! Очень классные и необычные примеры!
17 Garykom
 
гуру
26.09.16
21:31
А считать запросом високосный/нет еще не предлагали?
18 f_vadim
 
26.09.16
21:38
(17) а с этим есть какие-то сложности?
19 GedKo
 
26.09.16
21:50
(17) а зачем запросом? Проще

день(конецгода(текущаядата()));
20 Wirtuozzz
 
26.09.16
22:17
(17) Хороший вопрос. Нет, не предлагали.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший