|
Как размножить по дням значение? | ☑ | ||
---|---|---|---|---|
0
nlira
28.03.12
✎
15:31
|
Например есть ДатаНач= 01.03.2012и ДатаКон = 31.03.2012
Есть выборка из регистра сведений на 01.03.2012 Количество = 100 на 15.03.2012 количество = 300 допустим Как размножить по дням? В итоге должна получиться таблица следующего вида: 01.03.2012 - 100 02.03.2012 - 100 ... 15.03.2012 - 300 16.03.2012 - 300 ... 31.03.2012 - 300 Как это сделать? Мозг сломала |
|||
1
nlira
28.03.12
✎
15:33
|
нельзя это сразу в одном запросе как нить сделать?
|
|||
2
Kashemir
28.03.12
✎
15:36
|
сформировать таблицу всех дать и соединить. Таблицу проще всего сформировать по заполненному календарю
|
|||
3
nlira
28.03.12
✎
15:37
|
сформировала таблицу дат, без значения количества.А как соединить?
|
|||
4
nlira
28.03.12
✎
15:37
|
Пока текД <= КонецДня(ДатаКон) цикл
ОбработкаПрерыванияПользователя(); НовСтрока = ТабВыгруженнаяКв.Добавить(); НовСтрока.Период = НачалоДня(текД); текД = текД + 60*60*24; КонецЦикла; |
|||
5
Kashemir
28.03.12
✎
15:38
|
Соедини по измерением Где дататаблицы >= дата регистра. результат сгруппируй по ДатаТаблица с агрегированием ДатаРегистра через Максимум
|
|||
6
nlira
28.03.12
✎
15:38
|
это таблица с датами. результат запроса - 2 строки 01.03.2012 - 100 и 15.03.2012 - 300
|
|||
7
Kashemir
28.03.12
✎
15:38
|
К полученой таблице ДатаТаблица - ДатаРегистра повторно присоедни таблицу регистра по дате регистра и выведи значения ресурсов
|
|||
8
nlira
28.03.12
✎
15:39
|
(5) то есть это можно в запросе сделать?
|
|||
9
Kashemir
28.03.12
✎
15:40
|
(8) Запросто
|
|||
10
Жан Пердежон
28.03.12
✎
15:40
|
(8) да
|
|||
11
nlira
28.03.12
✎
15:40
|
Запросом получила из регистра сведений 2 значения. Как мне сразу размножить имея датунач и датуКон?
|
|||
12
nlira
28.03.12
✎
15:41
|
по дням?
|
|||
13
Рэйв
28.03.12
✎
15:41
|
(0)Сделай регистр периодическим и не изобретай черте что.
|
|||
14
Рэйв
28.03.12
✎
15:42
|
тогда с 1 по 15 у тебя будет 100.
а после 15 - 300 |
|||
15
Rebelx
28.03.12
✎
15:42
|
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ КурсыВалют.Период КАК Период ПОМЕСТИТЬ #ТаблицаПериодов ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ НАЧАЛОПЕРИОДА(&ПериодРасчета, МЕСЯЦ) И КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ПериодРасчета, МЕСЯЦ), КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ), ДЕНЬ) + 1 <> КОЛИЧЕСТВО(ТаблицаПериодов.Период) ТОГДА 1 / 0 ИНАЧЕ 0 КОНЕЦ КАК Тест ИЗ #ТаблицаПериодов КАК ТаблицаПериодов ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Остатки.Номенклатура КАК Номенклатура, Остатки.Характеристика КАК Характеристика, ТаблицаПериодов.Период КАК Период, Остатки.ВНаличииНачальныйОстаток, ВЫБОР КОГДА Остатки.ВНаличииНачальныйОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК НаличиеТовара, Остатки.Склад КАК Склад ПОМЕСТИТЬ #НаличиеТоваровНаСкладахПоДням ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ КурсыВалют.Период КАК Период ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &ПериодРасчета И КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ)) КАК ТаблицаПериодов ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Период КАК НачалоИнтервала, МИНИМУМ(ВЫБОР КОГДА Товары.Период ЕСТЬ NULL ТОГДА КОНЕЦПЕРИОДА(КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ), ДЕНЬ) ИНАЧЕ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Товары.Период, ДЕНЬ, -1), ДЕНЬ) КОНЕЦ) КАК КонецИнтервала, ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот КАК ВНаличииОборот, ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ПериодРасчета, КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ), День, , ) КАК ТоварыНаСкладахОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ПериодРасчета, КОНЕЦПЕРИОДА(&ПериодРасчета, МЕСЯЦ), День, , ) КАК Товары ПО ТоварыНаСкладахОстаткиИОбороты.Период < Товары.Период И ТоварыНаСкладахОстаткиИОбороты.Склад = Товары.Склад И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Товары.Номенклатура И ТоварыНаСкладахОстаткиИОбороты.Характеристика = Товары.Характеристика СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстаткиИОбороты.Период, ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот, ТоварыНаСкладахОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Характеристика) КАК Остатки ПО (Остатки.НачалоИнтервала <= ТаблицаПериодов.Период) И (Остатки.КонецИнтервала >= ТаблицаПериодов.Период) СГРУППИРОВАТЬ ПО Остатки.Номенклатура, ТаблицаПериодов.Период, Остатки.ВНаличииНачальныйОстаток, Остатки.Склад, Остатки.Характеристика ; |
|||
16
Kashemir
28.03.12
✎
15:42
|
(13) Задачу то дочитай
|
|||
17
nlira
28.03.12
✎
15:43
|
у меня рег свед периодический, и независимый
|
|||
18
Kashemir
28.03.12
✎
15:43
|
(11) Примерно так
ВЫБРАТЬ ТаблицаВсехДатПериода.ДатаПериода ПОМЕСТИТЬ ВсеДатыПериода ИЗ ТаблицаВсехДатПериода КАК ТаблицаВсехДатПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВидыРасчетовВзносовВФондыСрезПоследних.Период, ВидыРасчетовВзносовВФондыСрезПоследних.Налог, ВидыРасчетовВзносовВФондыСрезПоследних.ВидРасчета ПОМЕСТИТЬ ТаблицаРегистраСДатами ИЗ РегистрСведений.ВидыРасчетовВзносовВФонды.СрезПоследних КАК ВидыРасчетовВзносовВФондыСрезПоследних ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.ДатаПериода, ВложенныйЗапрос.ВидРасчета, ТаблицаРегистраСДатами.Налог ИЗ (ВЫБРАТЬ ВсеДатыПериода.ДатаПериода КАК ДатаПериода, ТаблицаРегистраСДатами.ВидРасчета КАК ВидРасчета, МАКСИМУМ(ТаблицаРегистраСДатами.Период) КАК Период ИЗ ВсеДатыПериода КАК ВсеДатыПериода ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРегистраСДатами КАК ТаблицаРегистраСДатами ПО ВсеДатыПериода.ДатаПериода >= ТаблицаРегистраСДатами.Период СГРУППИРОВАТЬ ПО ВсеДатыПериода.ДатаПериода, ТаблицаРегистраСДатами.ВидРасчета) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРегистраСДатами КАК ТаблицаРегистраСДатами ПО ВложенныйЗапрос.ВидРасчета = ТаблицаРегистраСДатами.ВидРасчета И ВложенныйЗапрос.Период = ТаблицаРегистраСДатами.Период |
|||
19
Рэйв
28.03.12
✎
15:43
|
(16)Ну и? Срез последних на любую дату даст то что надо
|
|||
20
Рэйв
28.03.12
✎
15:44
|
+(19) в (0) - это просто попытка забубенить функционал периодического регистра в непериодическом..т.е изврат имхо:-)
|
|||
21
Kashemir
28.03.12
✎
15:45
|
(20) ТС нужно получить значения на каждую дату интервала, при некоторых датах изменения значения в периоде
|
|||
22
nlira
28.03.12
✎
15:45
|
Задача такая: Делаю настройки в регистрах сведений. Допустим резерв хранения ставлю 01.02.2012 - 100 шт
с 15.03.2012 стало 300 шт. Необходимо рассчитать хранение с 01.03. по 31.03 |
|||
23
Kashemir
28.03.12
✎
15:46
|
(22) В смысл получить итог ? Или все же получить значение на каждую дату с 01.03 по 31.03 ?
|
|||
24
Рэйв
28.03.12
✎
15:46
|
(21)Делаем регистр периодическим и на 01 пишем значение 100, а на 15 - 300. Все.
Дальше срез последних в любой дате даст то что хочет ТС |
|||
25
nlira
28.03.12
✎
15:46
|
то есть беру на 01.03 - денежки за 100 штук - каждый день
как только стало 15.03 беру уже 300 штук |
|||
26
Kashemir
28.03.12
✎
15:47
|
(25) Ну так пример решения в (18)
|
|||
27
nlira
28.03.12
✎
15:48
|
получить надо значение на каждый день
|
|||
28
Рэйв
28.03.12
✎
15:48
|
(25)Ты их складывать собралась? 0_о
|
|||
29
Kashemir
28.03.12
✎
15:48
|
(24) В регистре записи на 2 даты, автор хочет на каждую дату из 31 дня в интервале.
|
|||
30
Рэйв
28.03.12
✎
15:48
|
(29)Да ради бога. На 02,03 и до 15 значение будет тоже 100
|
|||
31
nlira
28.03.12
✎
15:49
|
(29) да, да именно так
|
|||
32
Kashemir
28.03.12
✎
15:49
|
(25) Нарисуй точную структуру своего регистра в разрезе измерение / ресурс
|
|||
33
Kashemir
28.03.12
✎
15:49
|
(30) 30 срезов делать - прикольный путь
|
|||
34
nlira
28.03.12
✎
15:49
|
без временной таблицы сразу когда выбираю 2 значения нельзя размножить по дням
|
|||
35
Рэйв
28.03.12
✎
15:50
|
(33)Достаточно знать даты изменений.А между ними все равно предыдущему значению.Нахрена их все хранить?
|
|||
36
nlira
28.03.12
✎
15:51
|
(35) я их всех не храню
|
|||
37
Рэйв
28.03.12
✎
15:51
|
(36)Ну вот и считай что все даты между 1 и 15 равны последней, то есть 1
|
|||
38
Рэйв
28.03.12
✎
15:51
|
*100 то есть
|
|||
39
nlira
28.03.12
✎
15:52
|
РегСвед Резервы
Измерения: Склад Контрагент УслугаХранения Ресурс: Количество |
|||
40
nlira
28.03.12
✎
15:52
|
Период еще забыла
|
|||
41
Kashemir
28.03.12
✎
15:52
|
(36) Ау - дай структуру регистра - наваяю готовый запрос.
|
|||
42
Рэйв
28.03.12
✎
15:53
|
(39)А вобще объясни мне плиз сермяжный смысл складывания резервов по дням?
|
|||
43
nlira
28.03.12
✎
15:53
|
(42) так надо.Приказ
|
|||
44
Рэйв
28.03.12
✎
15:54
|
(43)Имхо какойто идиотский приказ:-) Ты всегда готова каждую глупость реализовывать?:-)
|
|||
45
nlira
28.03.12
✎
15:54
|
(42) если превышает резерв то считается по повышенной цене, если не превышает, то считается по нормальной цене
|
|||
46
nlira
28.03.12
✎
15:55
|
в (39) измерения и ресурс
|
|||
47
Рэйв
28.03.12
✎
15:55
|
(45)А если ты сложешь резервы всех дней - вот у тебя циферка то получится!:-) Только вот что с ней делать то?:-)
|
|||
48
nlira
28.03.12
✎
15:56
|
(47)на счет этого не беспокойся. Не могу по дням разложить количество резерва.
|
|||
49
nlira
28.03.12
✎
15:56
|
Мне самое главное разложить по дням
|
|||
50
nlira
28.03.12
✎
15:56
|
остальное дело техники
|
|||
51
Рэйв
28.03.12
✎
15:56
|
(48)Ну дело твое:-) Изобретай.
|
|||
52
nlira
28.03.12
✎
15:57
|
ну как же разложить то?
|
|||
53
Kashemir
28.03.12
✎
16:00
|
ВЫБРАТЬ
ВсеДатыИнтервала.ДатаИнтервала ПОМЕСТИТЬ ВсеДатыИнтервала ИЗ ВсеДатыИнтервала КАК ВсеДатыИнтервала ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Период, ВложенныйЗапрос.Склад, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.УслугаХранения, ВложенныйЗапрос.ДатаИнтервала, Резервы.Количество ИЗ (ВЫБРАТЬ МАКСИМУМ(Резервы.Период) КАК Период, Резервы.Склад КАК Склад, Резервы.Контрагент КАК Контрагент, Резервы.УслугаХранения КАК УслугаХранения, ВсеДатыИнтервала.ДатаИнтервала КАК ДатаИнтервала ИЗ ВсеДатыИнтервала КАК ВсеДатыИнтервала ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Резервы КАК Резервы ПО ВсеДатыИнтервала.ДатаИнтервала >= Резервы.Период СГРУППИРОВАТЬ ПО Резервы.Склад, Резервы.Контрагент, Резервы.УслугаХранения, ВсеДатыИнтервала.ДатаИнтервала) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Резервы КАК Резервы ПО ВложенныйЗапрос.Период = Резервы.Период И ВложенныйЗапрос.Склад = Резервы.Склад И ВложенныйЗапрос.Контрагент = Резервы.Контрагент И ВложенныйЗапрос.УслугаХранения = Резервы.УслугаХранения |
|||
54
nlira
28.03.12
✎
16:08
|
(53) Спасибо! Попробую
|
|||
55
Kashemir
28.03.12
✎
16:12
|
(54) Да не за что. Если календаря нет под рукой можно так:
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, 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) <= &КонецПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Период, ВложенныйЗапрос.Склад, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.УслугаХранения, ВложенныйЗапрос.ДатаИнтервала, Резервы.Количество ИЗ (ВЫБРАТЬ МАКСИМУМ(Резервы.Период) КАК Период, Резервы.Склад КАК Склад, Резервы.Контрагент КАК Контрагент, Резервы.УслугаХранения КАК УслугаХранения, ВсеДатыИнтервала.ДатаИнтервала КАК ДатаИнтервала ИЗ ВсеДатыИнтервала КАК ВсеДатыИнтервала ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Резервы КАК Резервы ПО ВсеДатыИнтервала.ДатаИнтервала >= Резервы.Период ГДЕ Резервы.Период <= &КонецПериода СГРУППИРОВАТЬ ПО Резервы.Склад, Резервы.Контрагент, Резервы.УслугаХранения, ВсеДатыИнтервала.ДатаИнтервала) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Резервы КАК Резервы ПО ВложенныйЗапрос.Период = Резервы.Период И ВложенныйЗапрос.Склад = Резервы.Склад И ВложенныйЗапрос.Контрагент = Резервы.Контрагент И ВложенныйЗапрос.УслугаХранения = Резервы.УслугаХранения ГДЕ Резервы.Период <= &КонецПериода |
|||
56
vmv
28.03.12
✎
16:30
|
(0)
1. получить результат запроса дат в периоде 2. соеденить с запросм к регистру 3. заполнить прямо в соединенном запросе или по обходу выборки Функция ПолучитьДатыДнейВПериодеКакРезультатЗапроса(ДатаНачала, ДатаОкончания) Экспорт Если ДатаНачала < Дата(2000,1,1) Тогда ДатаНачалаВЗапросе = Дата(2000,1,1); Иначе ДатаНачалаВЗапросе = ДатаНачала; КонецЕсли; Если ДатаОкончания > Дата(2050,1,1) Тогда ДатаОкончанияВЗапросе = Дата(2050,1,1); Иначе ДатаОкончанияВЗапросе = ДатаОкончания; КонецЕсли; ЗапросТекст = "ВЫБРАТЬ | ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 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 <= РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ДЕНЬ)"; // Инициализируем переменную запроса, параметры запроса и установим текст запроса Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачала" , ДатаНачалаВЗапросе); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончанияВЗапросе); Запрос.Текст = ЗапросТекст; // Собственно выполнение запроса и возврат результата его выполнения Возврат Запрос.Выполнить(); КонецФункции |
|||
57
vmv
28.03.12
✎
16:36
|
(55) а по числам на произвольный интервал есть запросец, да еще и с поиском дырок. идею получения интервалов дат и чисел подал lamort. потом я, возможно кто-то еще, ее развили до произвольных интервалов - поиск рулет, выкладывали не раз.
не первый раз тут вопрос о поиске заполнении произвольных интервалов дат/чисел в связке с данными БД |
|||
58
Fram
28.03.12
✎
16:45
|
(25) а так?
1. запрос по регистру с упорядочиванием по дате 2. вычисление кол-в дней между изменениями 3. умножение кол-в дней на соответствующие цены 4. все просуммировать |
|||
59
spu79
28.03.12
✎
16:48
|
а разве это не стандартная задача "получение курсов валют на каждый день периода"?
|
|||
60
Fram
28.03.12
✎
16:50
|
+(58) в принципе, если есть таблица цен, можно все 4 пункта одним запросом выполнить
|
|||
61
vmv
28.03.12
✎
16:51
|
(59) если записи по курсу есть на каждый день, то да - стандартная, но ведь у автора дырки)
|
|||
62
vmv
28.03.12
✎
16:55
|
(58) от лукавого
в таких задачах нужно четко сказать себе в мозгах 1. есть данные состава - это интервал заполнения, в авторском случае месяц 2. есть данные учета - это это значения показателей на даты в интервале, которые могут и не существать для всех дат интервала 3. есть задача скрестить данные состава с данными учета, размножая последнее значение в данных состава по ключу "Дата", до следующего значения в данных "учета" по ключу "дата" как говорят физики - правильно сформулированная задача делает решение очевидным) |
|||
63
Kashemir
28.03.12
✎
17:10
|
(57) Запросец по получению произвольного интервала чисел впервые года 4 назад увидел - на авторство и не претендовал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |