Имя: Пароль:
1C
1С v8
Как лучше обход по датам сделать в промежутке ДатаНач - ДатаКон?
, ,
0 meegor
 
25.06.13
14:28
Есть промежуток дан, надо перебрать все дни
1 mikecool
 
25.06.13
14:31
ДЛя каждого ТекДата = ДатаНач По ДатаКон Цикл
2 ДенисЧ
 
25.06.13
14:32
(1) Жесть :-)
3 Волшебник
 
25.06.13
14:33
подсказываю: 1 сутки = 86400 секунд
4 salvator
 
25.06.13
14:33
(0) Ну давай, по традиции, показывай как пытался делать.
5 mikecool
 
25.06.13
14:34
(2) не попал? )))
6 dk
 
25.06.13
14:34
(1) в 8-ке посекундная
7 Nenaviwu1c20
 
25.06.13
14:35
ВЫБРАТЬ
   0 КАК Цифра
ПОМЕСТИТЬ ТабЦифр

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ДОБАВИТЬКДАТЕ(&ДатаНач, МЕСЯЦ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК Месяц
ПОМЕСТИТЬ ТабДней
ИЗ
   ТабЦифр КАК ТабЦифр1,
   ТабЦифр КАК ТабЦифр2,
   ТабЦифр КАК ТабЦифр3,
   ТабЦифр КАК ТабЦифр4
ГДЕ
   ДОБАВИТЬКДАТЕ(&ДатаНач, МЕСЯЦ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= &ДатаКон

ИНДЕКСИРОВАТЬ ПО
   Месяц
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   КОНЕЦПЕРИОДА(ТабДней.Месяц, МЕСЯЦ) КАК Месяц
{ВЫБРАТЬ
   Месяц}
ИЗ
   ТабДней КАК ТабДней
{ГДЕ
   (КОНЕЦПЕРИОДА(ТабДней.Месяц, МЕСЯЦ)) КАК Месяц}
8 mikecool
 
25.06.13
14:35
(6) а, ну ладно, исправлюсь
Делать через Пока
9 Nenaviwu1c20
 
25.06.13
14:35
Только месяца на дни поменяешь
10 Nenaviwu1c20
 
25.06.13
14:35
(8) Вот Тебе и пока)
11 Nenaviwu1c20
 
25.06.13
14:36
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    0 КАК Цифра
       |ПОМЕСТИТЬ ТабЦифр
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    1
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    2
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    3
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    4
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    5
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    6
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    7
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    8
       |
       |ОБЪЕДИНИТЬ
       |
       |ВЫБРАТЬ
       |    9
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК День
       |ПОМЕСТИТЬ ТабДней
       |ИЗ
       |    ТабЦифр КАК ТабЦифр1,
       |    ТабЦифр КАК ТабЦифр2,
       |    ТабЦифр КАК ТабЦифр3,
       |    ТабЦифр КАК ТабЦифр4
       |ГДЕ
       |    ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= &ДатаКон
       |
       |ИНДЕКСИРОВАТЬ ПО
       |    День
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    КОНЕЦПЕРИОДА(ТабДней.День, ДЕНЬ) КАК День
       |ИЗ
       |    ТабДней КАК ТабДней";
На тебе по дням
12 mikecool
 
25.06.13
14:37
(10) а вот не надо мне говорить, что делать...
13 meegor
 
25.06.13
14:39
Спасибо