|
ДАТАВРЕМЯ() Понимает только литералы? | ☑ | ||
---|---|---|---|---|
0
YouAreEmpty
17.10.13
✎
16:59
|
Вечер добрый! Понадобилось мне в запросе получить поле, где дата время берутся из разных полей. Соответственно написал ДАТАВРЕМЯ(Т1.ДатаГода), Т1(ДатаМесяц),...) и т.д. На что получил сообщение об ошибке, что у меня в функции неверные параметры и указывает на год. Ставлю вместо года 2013, ругается что не правильный параметр месяц, ну и так далее. Собственно непонятно как в запросе-то дату и время соединить теперь?
|
|||
1
Мимохожий Однако
17.10.13
✎
17:00
|
Не стесняйся, код покажи.
|
|||
2
Rovan
гуру
17.10.13
✎
17:00
|
а так
ДАТАВРЕМЯ(Т1.ДатаГода, Т1.ДатаМесяц,...) |
|||
3
ptiz
17.10.13
✎
17:01
|
пробуй ДобавитьКДате(...)
|
|||
4
YouAreEmpty
17.10.13
✎
17:02
|
(2) Именно так и делал, разложил дату на составляющие и попробовал собрать дату по новому, нифига. Пропускает только литералы.
|
|||
5
YouAreEmpty
17.10.13
✎
17:03
|
(1) Пожалуйста:
ДатаНачала = Период; ТаблицаПериодов = ПолучитьТаблицуПериодов(Период, Период); Запрос = Новый Запрос("ВЫБРАТЬ | ТаблицаПериодов.Период КАК Дата, | ТаблицаПериодов.НомерДняНедели, | ТаблицаПериодов.ДеньНедели |ПОМЕСТИТЬ ВТ_ТаблицаПериодов |ИЗ | &ТаблицаПериодов КАК ТаблицаПериодов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | склГрафикРаботыЖивойОчереди.Склад, | склГрафикРаботыЖивойОчереди.УчастокСклада, | склГрафикРаботыЖивойОчереди.Пост, | склГрафикРаботыЖивойОчереди.ШаблонГрафика |ПОМЕСТИТЬ ВТ_ШаблоныГрафика |ИЗ | РегистрСведений.склГрафикРаботыЖивойОчереди КАК склГрафикРаботыЖивойОчереди |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ШаблоныГрафика.Склад, | ВТ_ШаблоныГрафика.УчастокСклада, | ВТ_ШаблоныГрафика.Пост, | ВТ_ШаблоныГрафика.ШаблонГрафика, | склШаблоныГрафикаДниНедели.НомерДняНедели, | склШаблоныГрафикаДниНедели.ВремяС, | склШаблоныГрафикаДниНедели.ВремяПо |ПОМЕСТИТЬ ВТ_НедельноеРасписание |ИЗ | ВТ_ШаблоныГрафика КАК ВТ_ШаблоныГрафика | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.склШаблоныГрафика.ДниНедели КАК склШаблоныГрафикаДниНедели | ПО ВТ_ШаблоныГрафика.ШаблонГрафика = склШаблоныГрафикаДниНедели.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ТаблицаПериодов.Дата, | ВТ_ТаблицаПериодов.НомерДняНедели, | ВТ_ТаблицаПериодов.ДеньНедели, | ВТ_НедельноеРасписание.Склад, | ВТ_НедельноеРасписание.УчастокСклада, | ВТ_НедельноеРасписание.Пост, | ВТ_НедельноеРасписание.ВремяС, | ВТ_НедельноеРасписание.ВремяПо |ИЗ | ВТ_ТаблицаПериодов КАК ВТ_ТаблицаПериодов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_НедельноеРасписание КАК ВТ_НедельноеРасписание | ПО ВТ_ТаблицаПериодов.ДеньНедели = ВТ_НедельноеРасписание.НомерДняНедели"); Запрос.УстановитьПараметр("ТаблицаПериодов", ТаблицаПериодов); Табл = Запрос.Выполнить().Выгрузить(); Табл.ВыбратьСтроку(); КонецПроцедуры |
|||
6
Enders
17.10.13
✎
17:03
|
Т1.ДатаГода тип строка ?
|
|||
7
YouAreEmpty
17.10.13
✎
17:05
|
(6) Число
|
|||
8
YouAreEmpty
17.10.13
✎
17:07
|
(3) Каким образом?
|
|||
9
Мимохожий Однако
17.10.13
✎
17:20
|
У ДАТАВРЕМЯ() нет аргументов. Полагаю, поэтому и не получается
|
|||
10
Ненавижу 1С
гуру
17.10.13
✎
17:21
|
в запросе ДАТАВРЕМЯ это не функция, читайте описание
|
|||
11
RomanYS
17.10.13
✎
17:22
|
(5) а где там ДАТАВРЕМЯ?
|
|||
12
YouAreEmpty
17.10.13
✎
17:22
|
(9) Вы шутите, милейший?
|
|||
13
1C_OOLer
17.10.13
✎
17:23
|
(8)
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, Т1.ДатаГода) а что из (5) получить нужно? |
|||
14
YouAreEmpty
17.10.13
✎
17:23
|
(11) А каким макаром я ее туда запихаю, если запрос ругается на ошибку?
|
|||
15
YouAreEmpty
17.10.13
✎
17:24
|
(10) Допустим, но что ей мешает принять значение, возвращенное другой функцией?
|
|||
16
fisher
17.10.13
✎
17:24
|
Странно. Неоднократно юзал ДАТАВРЕМЯ с данными из полей и без проблем.
|
|||
17
YouAreEmpty
17.10.13
✎
17:25
|
(13) ДатаНачала = Период(Дата) + ВремяС(Время)
ДатаОкончания = Период(Дата) + ВремяПо(Время) |
|||
18
YouAreEmpty
17.10.13
✎
17:25
|
(16) Мне тоже странно
|
|||
19
fisher
17.10.13
✎
17:27
|
Какой тип данных полей "ДатаГода" и "ДатаМесяц"?
|
|||
20
Мимохожий Однако
17.10.13
✎
17:28
|
(12)Я серьёзен как никогда.
(16)Пример кода покажи. |
|||
21
YouAreEmpty
17.10.13
✎
17:29
|
(20) Дык выше привел же!
|
|||
22
1C_OOLer
17.10.13
✎
17:29
|
(17) ВремяС/ВремяПо - типы?
|
|||
23
YouAreEmpty
17.10.13
✎
17:30
|
(22) Дата естесно
|
|||
24
hhhh
17.10.13
✎
17:31
|
вроде же недавно обсуждали, Что ДАТАВРЕМЯ() - это литерал
|
|||
25
YouAreEmpty
17.10.13
✎
17:33
|
Пробывал и так, чтобы отвязаться от кода, результат тот же самый.
ВЫБРАТЬ ПЕРВЫЕ 1 РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Дата КАК Дата, ГОД(РеализацияТоваровУслуг.Дата) КАК ДатаГод, РеализацияТоваровУслуг.ДатаОплаты ПОМЕСТИТЬ ВТ_Т ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг УПОРЯДОЧИТЬ ПО Дата УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Т.Ссылка, ВТ_Т.Дата, ВТ_Т.ДатаГод, ДАТАВРЕМЯ(ВТ_Т.ДатаГод,2,2) КАК ПолеДата ИЗ ВТ_Т КАК ВТ_Т |
|||
26
YouAreEmpty
17.10.13
✎
17:33
|
(24) И что мне это дает? Как мне даты соединить-то?
|
|||
27
RomanYS
17.10.13
✎
17:35
|
(26) используй добавить к дате
|
|||
28
fisher
17.10.13
✎
17:38
|
Кажись я прогнал. Видать спутал с чем-то.
В рабочей базе примера не нашел. На тестовом примере - ругается... Странно. Ща покручу :) |
|||
29
YouAreEmpty
17.10.13
✎
17:40
|
(28) УТ10, УПП БП должно работать, сам запускал на УПП 1.3
|
|||
30
YouAreEmpty
17.10.13
✎
17:41
|
(27) Можешь расписать как, конец раб. дня - невкурю что-то
|
|||
31
fisher
17.10.13
✎
17:42
|
Да у меня даже на такое ругается:
ВЫБРАТЬ ДАТАВРЕМЯ(ГОД(&ТекущаяДата), Месяц(&ТекущаяДата), ДЕНЬ(&ТекущаяДата)) |
|||
32
YouAreEmpty
17.10.13
✎
17:42
|
(31) Вот и я о ТОМ ЖЕ!
|
|||
33
1C_OOLer
17.10.13
✎
17:43
|
ДОБАВИТЬКДАТЕ(&Дата1, СЕКУНДА, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&Дата2, ДЕНЬ), &Дата2, СЕКУНДА))
|
|||
34
fisher
17.10.13
✎
17:47
|
Хм... Может это в СКД работало? В языке выражений СКД есть аналогичная функция.
|
|||
35
fisher
17.10.13
✎
17:48
|
Ща проверю.
|
|||
36
1C_OOLer
17.10.13
✎
17:48
|
+ (33) от даты1 тоже надо НачалоПериода взять
|
|||
37
YouAreEmpty
17.10.13
✎
17:50
|
(36) Вроде понял как, щас попробую
|
|||
38
fisher
17.10.13
✎
17:52
|
Не. Нифига. В СКД тоже литералы требует.
|
|||
39
fisher
17.10.13
✎
17:53
|
Значит, пригрезилось :)
|
|||
40
YouAreEmpty
17.10.13
✎
17:55
|
ВСЕ господа, решил! Конструкция ахтунг конечно, но работает:
ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ВТ_ТаблицаПериодов.Дата, ЧАС, ЧАС(ВТ_НедельноеРасписание.ВремяС)), МИНУТА, МИНУТА(ВТ_НедельноеРасписание.ВремяС)), СЕКУНДА, СЕКУНДА(ВТ_НедельноеРасписание.ВремяС)) КАК ДатаНачала |
|||
41
YouAreEmpty
17.10.13
✎
17:56
|
to 1C: И неужели работу с датами в запросе нельзя было проще и функциональней сделать...
|
|||
42
fisher
17.10.13
✎
17:57
|
(40) Проще было одними секундами, как показывали.
|
|||
43
YouAreEmpty
17.10.13
✎
17:58
|
(42) С секундами не совсем понял, можно пример?
|
|||
44
WildSery
17.10.13
✎
17:59
|
(41) дадада. И со строками. И с числами.
|
|||
45
YouAreEmpty
17.10.13
✎
18:00
|
А, то естт к дате просто прибавляется количество секунд между датами, но мне не подходит, поля ВремяС и ВремяПо, хранят только ВРЕМЯ, т.е в виде '0001-01-01:12-00-00'. Если разность посчитать охрененно получиться
|
|||
46
fisher
17.10.13
✎
18:00
|
Дык выше пример был.
ДОБАВИТЬКДАТЕ(ВТ_ТаблицаПериодов.Дата, СЕКУНДА, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВТ_НедельноеРасписание.ВремяС, ДЕНЬ),ВТ_НедельноеРасписание.ВремяС, СЕКУНДА)) |
|||
47
YouAreEmpty
17.10.13
✎
18:01
|
(46) Да уже догнал, подтормаживаю, сорри)
|
|||
48
fisher
17.10.13
✎
18:04
|
Чорд, а такая уверенность откуда-то была, что ДАТАВРЕМЯ не только литералы хавает...
|
|||
49
YouAreEmpty
17.10.13
✎
18:05
|
(48) А какая у меня была, когда я сказал что задача пару часов займет всего))) Не ожидал подставы такой...
|
|||
50
Maggie
17.10.13
✎
18:23
|
ВЫБРАТЬ ПЕРВЫЕ 1
РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Дата КАК Дата, ГОД(РеализацияТоваровУслуг.Дата) КАК ДатаГод ПОМЕСТИТЬ ВТ_Т ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг УПОРЯДОЧИТЬ ПО Дата УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Т.Ссылка, ВТ_Т.Дата, ВТ_Т.ДатаГод, ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 2, 2, 0, 0, 0), ГОД, ВТ_Т.ДатаГод - 1) КАК ПолеДата ИЗ ВТ_Т КАК ВТ_Т |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |