Имя: Пароль:
1C
1С v8
Получить периоды помесячно в запросе
0 extrim-style
 
06.03.14
11:31
Имеется таблица дат вида:

Период      Смещение
05.10.2013  11.01.2014

Необходимо получить таблицу периодов месяцами вида:

05.10.2013 31.10.2013
01.11.2013 30.11.2013
01.12.2014 31.12.2013
01.01.2014 11.01.2014

Можно это реализовать запросом?
1 Wobland
 
06.03.14
11:32
согласовано
2 Wobland
 
06.03.14
11:33
ух ты! а на входе таблица
3 Avganec
 
06.03.14
11:35
(0) разрешаем
4 extrim-style
 
06.03.14
11:36
(3) спасибо. продолжаем.
5 extrim-style
 
06.03.14
11:40
(2) это не суть. на входе структурированная таблица. например, такая:

05.10.2013  11.01.2014
11.01.2014  15.03.2014
15.03.2014  07.04.2014

или просто одна колонка - 05.10.2013, 11.01.2014, 15.03.2014, 07.04.2014
6 Wobland
 
06.03.14
11:43
05.10.13  11.01.14
08.09.12  15.10.14
10.01.18  10.01.18
11.11.11  11.11.10

как вот с этим жить?
7 extrim-style
 
06.03.14
11:48
(6) мне это не нужно. я же написал в (5), что исходная таблица структурирована - периоды последовательно. (получена из списка последовательных периодов: 11.01.2014 = 11.01.2014, 15.03.2014 = 15.03.2014)
8 extrim-style
 
06.03.14
11:49
(6) я вобще в (0) сузил задачу: исходная ТЗ с единственной строкой.
9 Wobland
 
06.03.14
11:51
пример ты сузил, а не задачу
10 Wobland
 
06.03.14
11:54
а из двух дат вполне себе можно собрать таблицу с месяцами прямо в цикле и не парить мозх
11 extrim-style
 
06.03.14
11:56
(9) я сузил задачу до единственной строки в исходной ТЗ
12 extrim-style
 
06.03.14
12:01
(10) да, понятно, что даты в ТЗ - не константы, и могут быть произвольными (только Смещение > Период).
13 extrim-style
 
06.03.14
12:01
кажется, что-то нашел - http://www.itland.ru/forum/index.php?showtopic=21110, буду смотреть
14 Wobland
 
06.03.14
12:04
лениво сюда граничные даты дописывать ;)

выбрать 0 как Цифра поместить Цифры объединить выбрать 1 объединить выбрать 2 объединить выбрать 3 объединить выбрать 4 объединить выбрать 5 объединить выбрать 6 объединить выбрать 7 объединить выбрать 8 объединить выбрать 9;
выбрать 1000*Тысячи.Цифра+100*Сотни.Цифра+10*Десятки.Цифра+Единицы.Цифра как Чиселко поместить Числа из Цифры как Единицы, Цифры как Десятки, Цифры как Сотни, Цифры как Тысячи;
выбрать НачалоПериода(ДобавитьКДате(&Дата1, Месяц, Чиселко), Месяц) как Даточка из Числа где НачалоПериода(ДобавитьКДате(&Дата1, Месяц, Чиселко), Месяц)<=&Дата2 и НачалоПериода(ДобавитьКДате(&Дата1, Месяц, Чиселко), Месяц)>&Дата1
упорядочить по Даточка
15 ИС-2
 
naïve
06.03.14
12:07
я бы делал через РегламентированныйПроизводственныйКалендарь
16 ИС-2
 
naïve
06.03.14
12:07
(0) что за ужас
17 ИС-2
 
naïve
06.03.14
12:07
не туда
18 Wobland
 
06.03.14
12:08
(16) арифметическая последовательность ;)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший