|
v8: дата и время из разных дат в запросе | ☑ | ||
---|---|---|---|---|
0
Botanik
21.10.11
✎
10:55
|
Всем доброго дня.
Подскажите пожалуйста, можно ли в запросе из одной даты взять дату а из другой время? объединить ДАТАВРЕМЯ() Пример запроса: |ВЫБРАТЬ | ДанныеПриложения.Ключ, | ДанныеПриложения.ДатаДоставки, | ДанныеПриложения.ЕстьЗапись, | СтрокаРасписание.ТоварПривоз КАК Номенклатура, | СтрокаРасписание.ТоварУвоз, | СтрокаРасписание.ДеньНедели КАК ДеньНедели, | СтрокаРасписание.ВидЗамены КАК Направление, | СтрокаРасписание.ВремяЗаменыС, | СтрокаРасписание.ВремяЗаменыПо, | СтрокаРасписание.Количество, | СтрокаРасписание.Ссылка КАК Приложение, | СтрокаРасписание.Ссылка.Контрагент КАК Контрагент, | ИСТИНА КАК Работа, | ДАТАВРЕМЯ(Год(ДанныеПриложения.ДатаДоставки),Месяц(ДанныеПриложения.ДатаДоставки),День(ДанныеПриложения.ДатаДоставки),Час(СтрокаРасписание.ВремяЗаменыС),Минута(СтрокаРасписание.ВремяЗаменыС),Секунда(СтрокаРасписание.ВремяЗаменыС)) КАК ДатаОбщ |ИЗ | ДанныеПриложения КАК ДанныеПриложения | ЛЕВОЕ СОЕДИНЕНИЕ СтрокаРасписание КАК СтрокаРасписание | ПО ДанныеПриложения.Ключ = СтрокаРасписание.Ключ, | КлючиПриложения КАК КлючиПриложения"); |
|||
1
Wobland
21.10.11
✎
10:57
|
а почему бы и нет, Ватсон
|
|||
2
luckyluke
21.10.11
✎
10:57
|
ДАТАВРЕМЯ(Год(дата1),Месяц(Дата1), День(дата1),Час(Дат2),Минута(дата2),секунда(дата2))
|
|||
3
luckyluke
21.10.11
✎
10:58
|
(2) а ну у тебя уже есть ДАТАВРЕМЯ(Год(ДанныеПриложения.ДатаДоставки),Месяц(ДанныеПриложения.ДатаДоставки),День(ДанныеПриложения.ДатаДоставки),Час(СтрокаРасписание.ВремяЗаменыС),Минута(СтрокаРасписание.ВремяЗаменыС),Секунда(СтрокаРасписание.ВремяЗаменыС)) КАК ДатаОбщ
Что не так то? |
|||
4
Wobland
21.10.11
✎
10:58
|
(3) разрешения спрашивает
|
|||
5
Botanik
21.10.11
✎
11:01
|
Так 1С даже не дает возможности составить такую вот штуку как
ДАТАВРЕМЯ(Год(ДанныеПриложения.ДатаДоставки),Месяц(ДанныеПриложения.ДатаДоставки),День(ДанныеПриложения.ДатаДоставки),Час(СтрокаРасписание.ВремяЗаменыС),Минута(СтрокаРасписание.ВремяЗаменыС),Секунда(СтрокаРасписание.ВремяЗаменыС)) Ошибка при написании Не верные параметры ДАТАВРЕМЯ ДАТАВРЕМЯ(<<?>>Год(ДанныеПриложения.ДатаДоставки)... |
|||
6
Wobland
21.10.11
✎
11:02
|
ДанныеПриложения.ДатаДоставки какого типа?
|
|||
7
Botanik
21.10.11
✎
11:04
|
Дата, с типами все нормально
|
|||
8
НЕА123
21.10.11
✎
11:08
|
....
ЕСТЬNULL(СтрокаРасписание.ВремяЗаменыС, 0) ? |
|||
9
Wobland
21.10.11
✎
11:09
|
(8) ДанныеПриложения находится слева. какой NULL?
|
|||
10
Botanik
21.10.11
✎
11:10
|
Не, тут дело в том, что даже не дает составить такую запись в конструкторе запроса.
|
|||
11
Botanik
21.10.11
✎
11:11
|
При сохранении выражения:
ДАТАВРЕМЯ(Год(Приложение_Дионикс.Дата),Месяц(Приложение_Дионикс.Дата),День(Приложение_Дионикс.Дата),Час(Приложение_Дионикс.ДатаНачалаПриложения),Минута(Приложение_Дионикс.ДатаНачалаПриложения),Секунда(Приложение_Дионикс.ДатаНачалаПриложения)) Выдает ошибку: Не верные параметры ДАТАВРЕМЯ ДАТАВРЕМЯ(<<?>>Год(ДанныеПриложения.ДатаДоставки)... |
|||
12
Wobland
21.10.11
✎
11:12
|
(11) другую оно тебе ошибку даёт. неверные слитно пишется
|
|||
13
НЕА123
21.10.11
✎
11:13
|
(0)
что-то концовка запроса как-то не так... |
|||
14
hhhh
21.10.11
✎
11:13
|
(7) наверно ДанныеПриложения левые какие-то. Это что, справочник или регистр какой?
|
|||
15
Wobland
21.10.11
✎
11:14
|
(13) пропущено Запрос=Новый Запрос("
|
|||
16
НЕА123
21.10.11
✎
11:15
|
> | КлючиПриложения КАК КлючиПриложения
|
|||
17
Wobland
21.10.11
✎
11:17
|
(16) точно
|
|||
18
Botanik
21.10.11
✎
11:18
|
)))))
Весь запрос: Запрос = Новый Запрос; Запрос.Текст = ("ВЫБРАТЬ | Приложение_ДиониксАдресаДоставки.Ключ, | ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияПо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ТОГДА ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт >= Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | ТОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт | ИНАЧЕ Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА &ТекДата < Приложение_ДиониксАдресаДоставки.ДатаПриложенияПо | ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ИНАЧЕ ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт >= Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | ТОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт | ИНАЧЕ Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | КОНЕЦ | КОНЕЦ | КОНЕЦ КАК ДатаПриложенияОт, | новаДниНедели.Ссылка КАК ДеньНедели, | Приложение_ДиониксАдресаДоставки.Ссылка |ПОМЕСТИТЬ КлючиПриложения |ИЗ | Документ.Приложение_Дионикс.АдресаДоставки КАК Приложение_ДиониксАдресаДоставки, | Перечисление.новаДниНедели КАК новаДниНедели |ГДЕ | Приложение_ДиониксАдресаДоставки.Ссылка = &Ссылка | И Приложение_ДиониксАдресаДоставки.ВРаботе = ИСТИНА | И новаДниНедели.Порядок = ДЕНЬНЕДЕЛИ(ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияПо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ТОГДА ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт >= Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | ТОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт | ИНАЧЕ Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА &ТекДата < Приложение_ДиониксАдресаДоставки.ДатаПриложенияПо | ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ИНАЧЕ ВЫБОР | КОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт >= Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | ТОГДА Приложение_ДиониксАдресаДоставки.ДатаПриложенияОт | ИНАЧЕ Приложение_ДиониксАдресаДоставки.ДатаНачалаВозки | КОНЕЦ | КОНЕЦ | КОНЕЦ) - 1 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗавозВывоз_Дионикс.Ключ, | ЗавозВывоз_Дионикс.ДатаДоставки, | 0 КАК ДеньНедели |ПОМЕСТИТЬ РегистрЗавозВывоз |ИЗ | РегистрСведений.ЗавозВывоз_Дионикс КАК ЗавозВывоз_Дионикс |ГДЕ | ЗавозВывоз_Дионикс.Ключ В | (ВЫБРАТЬ | КлючиПриложения.Ключ | ИЗ | КлючиПриложения КАК КлючиПриложения) | И ЗавозВывоз_Дионикс.ДатаДоставки В | (ВЫБРАТЬ | КлючиПриложения.ДатаПриложенияОт | ИЗ | КлючиПриложения КАК КлючиПриложения) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ ПЕРВЫЕ 1 | Приложение_ДиониксРасписание.ТоварПривоз, | Приложение_ДиониксРасписание.ТоварУвоз, | Приложение_ДиониксРасписание.ДеньНедели, | Приложение_ДиониксРасписание.ВидЗамены, | Приложение_ДиониксРасписание.ВремяЗаменыС КАК ВремяЗаменыС, | Приложение_ДиониксРасписание.ВремяЗаменыПо, | Приложение_ДиониксРасписание.Ключ, | Приложение_ДиониксРасписание.Количество, | Приложение_ДиониксРасписание.Ссылка |ПОМЕСТИТЬ СтрокаРасписание |ИЗ | Документ.Приложение_Дионикс.Расписание КАК Приложение_ДиониксРасписание |ГДЕ | Приложение_ДиониксРасписание.Ключ В | (ВЫБРАТЬ | КлючиПриложения.Ключ | ИЗ | КлючиПриложения КАК КлючиПриложения) | И Приложение_ДиониксРасписание.ДеньНедели В | (ВЫБРАТЬ | КлючиПриложения.ДеньНедели | ИЗ | КлючиПриложения КАК КлючиПриложения) | |УПОРЯДОЧИТЬ ПО | ВремяЗаменыС |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КлючиПриложения.Ключ КАК Ключ, | КлючиПриложения.ДатаПриложенияОт КАК ДатаДоставки, | 0 КАК ЕстьЗапись, | КлючиПриложения.ДеньНедели |ПОМЕСТИТЬ ДанныеПриложения |ИЗ | КлючиПриложения КАК КлючиПриложения |ГДЕ | КлючиПриложения.ДатаПриложенияОт <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РегистрЗавозВывоз.Ключ, | РегистрЗавозВывоз.ДатаДоставки, | ВЫБОР | КОГДА РегистрЗавозВывоз.Ключ = """" | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ, | РегистрЗавозВывоз.ДеньНедели |ИЗ | РегистрЗавозВывоз КАК РегистрЗавозВывоз |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеПриложения.Ключ, | ДанныеПриложения.ДатаДоставки, | ДанныеПриложения.ЕстьЗапись, | СтрокаРасписание.ТоварПривоз КАК Номенклатура, | СтрокаРасписание.ТоварУвоз, | СтрокаРасписание.ДеньНедели КАК ДеньНедели, | СтрокаРасписание.ВидЗамены КАК Направление, | СтрокаРасписание.ВремяЗаменыС, | СтрокаРасписание.ВремяЗаменыПо, | СтрокаРасписание.Количество, | СтрокаРасписание.Ссылка КАК Приложение, | СтрокаРасписание.Ссылка.Контрагент КАК Контрагент, | ИСТИНА КАК Работа |//Тут надо ещё|ДАТАВРЕМЯ(Год(Приложение_Дионикс.Дата),Месяц(Приложение_Дионикс.Дата),День(Приложение_Дионикс.Дата),Час(Приложение_Дионикс.ДатаНачалаПриложения),Минута(Приложение_Дионикс.ДатаНачалаПриложения),Секунда(Приложение_Дионикс.ДатаНачалаПриложения)) КАК ДатаОбщ //Но в конструкторе не строится... |ИЗ | ДанныеПриложения КАК ДанныеПриложения | ЛЕВОЕ СОЕДИНЕНИЕ СтрокаРасписание КАК СтрокаРасписание | ПО ДанныеПриложения.Ключ = СтрокаРасписание.Ключ, | КлючиПриложения КАК КлючиПриложения"); Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("ТекДата",ТекущаяДата()); ТЗ = Запрос.Выполнить().Выгрузить(); |
|||
19
Wobland
21.10.11
✎
11:19
|
(18) всё равно конец странный
|
|||
20
hhhh
21.10.11
✎
11:24
|
(19) да вот это надо обязательно выбросить
КлючиПриложения КАК КлючиПриложения так как бред. |
|||
21
Botanik
21.10.11
✎
11:25
|
Да пофиг на конец, код работает...
а вот ДАТАВРЕМЯ(Год(Приложение_Дионикс.Дата),Месяц(Приложение_Дионикс.Дата),День(Приложение_Дионикс.Дата),Час(Приложение_Дионикс.ДатаНачалаПриложения),Минута(Приложение_Дионикс.ДатаНачалаПриложения),Секунда(Приложение_Дионикс.ДатаНачалаПриложения)) Никак не добавляется(( |
|||
22
НЕА123
21.10.11
✎
11:31
|
для теста.
добавь отдельные поля ГОД(), МЕСЯЦ()... |
|||
23
Botanik
21.10.11
✎
11:39
|
Делал...похоже так незя делать...ДАТАВРЕМЯ(Год(Приложение_Дионикс.Дата)....
никак не хочет... Простой пример консоль запросов УТ 10.3: ВЫБРАТЬ ЗаказПокупателя.ДатаОплаты, ЗаказПокупателя.ДатаОтгрузки //ДАТАВРЕМЯ(Год(ЗаказПокупателя.ДатаОплаты),Месяц(ЗаказПокупателя.ДатаОплаты),День(ЗаказПокупателя.ДатаОплаты),Час(ЗаказПокупателя.ДатаОтгрузки),Минута(ЗаказПокупателя.ДатаОтгрузки),Секунда(ЗаказПокупателя.ДатаОтгрузки)) КАК ДатаДат ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя |
|||
24
luckyluke
21.10.11
✎
11:51
|
(23) да, у меня тоже не получилось, хотя мне всегда казалось, что так можно.
Ну зато можно так: ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2011, 10, 21), ДЕНЬ), ЧАС, ЧАС(ДАТАВРЕМЯ(1, 1, 1, 23, 59, 59))) |
|||
25
Botanik
21.10.11
✎
12:02
|
Так мне не надо..Спасибо всем за участие походу так нельзя...сделаю тупо, вне запроса. Тема закрыта.
|
|||
26
luckyluke
21.10.11
✎
12:03
|
(25) в смысле не надо? А какая разница, добавить время через ДобавитьКДате или через ДАТАВРЕМЯ?
|
|||
27
НЕА123
21.10.11
✎
12:11
|
биля... ДАТАВРЕМЯ - это литерал....
вон оно как вышло-то... |
|||
28
Botanik
21.10.11
✎
12:13
|
(25) Спасибо!!!
Вот так работает: ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДанныеПриложения.ДатаДоставки, ДЕНЬ), ЧАС, ЧАС(СтрокаРасписание.ВремяЗаменыС)), ЧАС), МИНУТА, МИНУТА(СтрокаРасписание.ВремяЗаменыС)) КАК БездатаяДата |
|||
29
Botanik
21.10.11
✎
12:13
|
БездатаДата=)
|
|||
30
luckyluke
21.10.11
✎
12:16
|
(28) Что-то много у тебя НАЧАЛОПЕРИОДА много, её только в первом прибалении даты нужно, а потом можно без неё и секунды ты еще не прибавил.
ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДанныеПриложения.ДатаДоставки, ДЕНЬ), ЧАС, ЧАС(СтрокаРасписание.ВремяЗаменыС)), ЧАС), МИНУТА, МИНУТА(СтрокаРасписание.ВремяЗаменыС)) |
|||
31
Botanik
21.10.11
✎
12:21
|
(30)Спасибо luckyluke, большое!!!
Ты мне помог очень! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |