![]() |
![]() |
![]() |
|
Как указать в запросе КонецДня() ? | ☑ | ||
---|---|---|---|---|
0
ПетяПетькин
07.05.09
✎
15:28
|
Если указываю параметр, например, 31.03.09 23:59:59
то результат выдает все-равно не самые последние остатки, как можно в запросе указать, чтобы бралось значение параметра соответствующее последнему моменту времени дня??? что-то вроде функции КонецДня(ДатаКон) |
|||
1
Просто Лёха
07.05.09
✎
15:29
|
А сразу в параметр КонецДня(ДатаКон)?
|
|||
2
Широкий
07.05.09
✎
15:30
|
смотри Момент времени
|
|||
3
ПетяПетькин
07.05.09
✎
15:31
|
я в консоли делаю запрос
мне не нужен отчет щас надо быстро сделать одну выборку а там в параметрах просто дату указываешь и время |
|||
4
Serg_1960
07.05.09
✎
15:31
|
Можно КОНЕЦПЕРИОДА(ДатаКон, ДЕНЬ) но лучше сразу в момент
|
|||
5
ПетяПетькин
07.05.09
✎
15:31
|
если бы все происходило в отчете - вопросов нет
но мне это надо именно в запросе, т.к. я в консоли делаю выборку |
|||
6
ПетяПетькин
07.05.09
✎
15:32
|
КОНЕЦПЕРИОДА(ДатаКон, ДЕНЬ)
тоже выдает не самые последние остатки |
|||
7
Salvador Limones
07.05.09
✎
15:32
|
(6) Новый Граница(...., ....Включая)
|
|||
8
Serg_1960
07.05.09
✎
15:33
|
граница включая
|
|||
9
ПетяПетькин
07.05.09
✎
15:33
|
(7) не, не то
|
|||
10
tsr
07.05.09
✎
15:33
|
(6) Это косяк 8-кин, хотя 1С не желает признавать данного факта. Выхода два. Перепроводить все доки на начало дня и на конец дня меняя им время, или использовать границу
|
|||
11
ПетяПетькин
07.05.09
✎
15:33
|
(8) это в теле запроса так можно написать?
|
|||
12
Salvador Limones
07.05.09
✎
15:34
|
(9) Почему?
|
|||
13
ПетяПетькин
07.05.09
✎
15:34
|
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1, ХозрасчетныйОстатки.Счет, 0 КАК ПервоначСтоимостьБУ, ХозрасчетныйОстатки.СуммаОстатокКт КАК Аморт ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(КонецПериода(&Кон, День), Счет = &Сч02, , Организация = &Орг) КАК ХозрасчетныйОстатки вот запрос |
|||
14
Serg_1960
07.05.09
✎
15:34
|
Имхо, все уже перечислили - а Вам все "не то". Теперь Вы нам скажите что у Вас там "не то" :(
|
|||
15
Salvador Limones
07.05.09
✎
15:34
|
(13) В параметр Кон передай Границу.
|
|||
16
ПетяПетькин
07.05.09
✎
15:35
|
(12) я могу эту строку включить в тело запроса, написанного выше?
|
|||
17
ПетяПетькин
07.05.09
✎
15:35
|
(15) как в параметр консоли запросов передать Границу?
|
|||
18
Salvador Limones
07.05.09
✎
15:35
|
(16) Нет.
Выкинь наркотики, открой СП. |
|||
19
ПетяПетькин
07.05.09
✎
15:36
|
(18) так и я про то же!
|
|||
20
Salvador Limones
07.05.09
✎
15:37
|
(17) Я дописал консоль.
|
|||
21
ПетяПетькин
07.05.09
✎
15:38
|
у меня маленькое срочное заданьице, я не могу щас дописывать консоль
вобщем, вариантов нету, кроме как сделать отчет и передать параметр |
|||
22
Serg_1960
07.05.09
✎
15:40
|
У автора есть документы "...23:59:59"? :( Если срочно надо - возьми началопериода следующего дня. Если есть документы "...00:00:00" - вешайся :))
|
|||
23
AHgpuXa
07.05.09
✎
15:40
|
С чего ты взял что выдаются не самые последние остатки?
Попробуй сравнить остатки при НачалоПериода(&Дата2,День) и КонецПериода(&Дата1,День) где Дата2 это Дата1 + 1день |
|||
24
artbear
07.05.09
✎
15:42
|
(0) C чего взял, что не самые последние остатки?
Чем проверяешь? |
|||
25
Широкий
07.05.09
✎
15:44
|
(22) если есть 00:00:00 - вешаться не надо.. остатки будут на начало момента
|
|||
26
ПетяПетькин
07.05.09
✎
15:45
|
(23, 24)с того взял, что сравниваю результат запроса с ОСВ
(22) конечно есть такие документы, сколько угодно например, Амортизация ОС |
|||
27
mikecool
07.05.09
✎
15:46
|
в семерке помнится в журнале не отображались документы со временем в течение первой секунды дня...
|
|||
28
artbear
07.05.09
✎
15:57
|
(26) А вот теперь подумай:
почему же ОСВ, построенное также на запросах, выдает результаты, отличные от твоего запроса? Как говорится, найди 10 различий между ОСВ и своим запросом. |
|||
29
ПетяПетькин
07.05.09
✎
15:59
|
(28) потому что в ОСВ задан параметр КонецДня(&Дата)
а я в консоли запросов не могу задать таким образом параметр я могу тока указать дату с часами вопрос закрыт, всем спасибо |
|||
30
AHgpuXa
07.05.09
✎
16:03
|
(29)Ты читать умеешь? Ясно ж написали КонецПериода(&Дата1,День).
|
|||
31
ПетяПетькин
07.05.09
✎
16:14
|
(30)
как выяснилось, это не дает самую последнюю границу времени, как ее дает например КонецДня(&ДатаКон) |
|||
32
ShoGUN
07.05.09
✎
16:20
|
(31) Нагло гонишь, по-моему.
(29) Можно в параметре задать выражение, галку там поставь во второй колонке. |
|||
33
ПетяПетькин
07.05.09
✎
16:26
|
(32) тогда пребывай в неведении и далее
|
|||
34
ShoGUN
07.05.09
✎
16:29
|
(33) Ты вторую строчку прочитал? Кто из нас в неведении пребывает?
|
|||
35
PR
07.05.09
✎
16:32
|
(9) То
|
|||
36
PR
07.05.09
✎
16:32
|
(10) Первое гон. Второе бред.
|
|||
37
hhhh
07.05.09
✎
16:40
|
(33) сам то пойми, что это бред. Ты хочешь чтобы остатки на время 23:59:59 и на 00:00:00 следующего дня совпадали.
|
|||
38
hhhh
07.05.09
✎
16:43
|
(29) используй ОстаткиИОбороты - ОСВ именно ее использует.
|
|||
39
ПетяПетькин
07.05.09
✎
16:45
|
Тема зажила своей жизнью??
Отчет я себе написал. Сам для себя выяснил, что КонецПериода(&ДатаКон, День) не дает последнюю границу времени дня, как это дает, например, КонецДня(&ДатаКон) Кто в этом сомневается - да пожалста, не буду переубеждать |
|||
40
PR
07.05.09
✎
16:52
|
(39) Ты не прав. Проблема в другом.
|
|||
41
Salvador Limones
07.05.09
✎
16:54
|
(35) Не спорь! Не то, всё тут!
|
|||
42
AHgpuXa
07.05.09
✎
17:55
|
(39)Неправильно выяснил, а я даже сомневаться начал. Поэтому полез в профайлер.
запрос простенький: ВЫБРАТЬ ОстаткиОстатки.Товар, ОстаткиОстатки.КвоОстаток ИЗ РегистрНакопления.Остатки.Остатки(&ДатаКон, Товар = &Товар) КАК ОстаткиОстатки Так вот при КонецПериода(&ДатаКон, День), как и при КонецДня(&ДатаКон) профайлер показал один и тот же запрос, в качестве параметров куда передаются даты: {ts '5999-11-01 00:00:00'} и {ts '4009-05-07 23:59:59'}. |
|||
43
mikecool
07.05.09
✎
18:03
|
(42) интересно, а куда деваются милисекунды с 4009-05-07 23:59:59 по 4009-05-08 00:00:00? там же их 10000...
|
|||
44
Aprobator
07.05.09
✎
18:06
|
Может дело в составе даты ДатаКон? (Дата, а не ДатаВремя).
|
|||
45
ShoGUN
07.05.09
✎
18:11
|
(44) Дата с совставом "Дата" - это дата с временем "00:00:00"
|
|||
46
Aprobator
07.05.09
✎
18:18
|
(45) о чем и речь. Потому конец дня и не виден.
|
|||
47
AHgpuXa
07.05.09
✎
18:19
|
Описание типа данных datetime:
Диапазон даты 1 января 1753 года — 31 декабря 9999 года Диапазон времени От 00:00:00 до 23:59:590,997 Откуда 10000 ? |
|||
48
AHgpuXa
07.05.09
✎
18:23
|
(47) к (43)
|
|||
49
ShoGUN
07.05.09
✎
18:26
|
(46) КонецДня() от такой даты будет все равно с каким положено временем, потому что состав можно указывать только у реквизита, но не у переменной. Переменная всегда будет со временем.
|
|||
50
Funny
07.05.09
✎
18:27
|
(0) Напугал реально. Померещелось КонецСвета()!
|
|||
51
ShoGUN
07.05.09
✎
18:29
|
(50) Глянь, что у 1С в календаре после 31.12.9999 :)))
|
|||
52
ПетяПетькин
08.05.09
✎
10:07
|
(42) да, дата и время возвращаемые этими двумя функциями могут быть одинаковыми.
Но на одну и ту же дату и время, например, 31.03.09 23:59:59 может быть записано 50 документов, один за другим. И в рамках последовательности, возможно, функция запроса КонецПериода(&ДатаКон), берет просто дату 31.03.09 23:59:59, а функция КонецДня(&датаКон) конец последовательности на эту дату. у кого есть УПП, и начисляется амортизация по бух. учету, по-пробуйте построить простой |
|||
53
ПетяПетькин
08.05.09
✎
10:08
|
.. запрос по остаткам 02.01 счета в консоли запросов и укажите там дату со временем , например, 31.01.09 23:59:59
и сравните полученные остатки с ОСВ по этому же счету |
|||
54
Serg_1960
08.05.09
✎
10:39
|
Блин, даже на ИТС есть статья, где упоминают особо время "23:59:59" как нежелательное... а вопросы остаются... v8: Почему у витуальных таблиц Остатки и ОстаткиИОбороты тип периода разный
|
|||
55
ПетяПетькин
08.05.09
✎
10:41
|
ну дык...
а народ-то спорил :) |
|||
56
hhhh
08.05.09
✎
10:44
|
(53) ну для примера возьми ОСВ, где дата начала и дата конца - одна и та же: с временем - 23:59:59. У тебя в ОСВ получатся разные остатки на начало и на конец.
|
|||
57
ПетяПетькин
08.05.09
✎
10:46
|
(56) да мне ниче уже объяснять не надо
я сам запарился объяснять в этой ветке народу, который спорил что КонецПериода(&ДатаКон) и КонецДня(&ДатаКон) по одинаковому возвращают остатки на конец дня |
|||
58
tsr
08.05.09
✎
10:46
|
(54) Про время 00:00:00 там не упоминается?
|
|||
59
AHgpuXa
08.05.09
✎
10:48
|
(52)при чем здесь результаты функций? Я в (42) привел цифры которые передаются в конечный запрос к SQL. И где последовательность? Или тебе может весь конечный запрос привести и рассказать как в сиквеле хранятся остатки и движения?
|
|||
60
Serg_1960
08.05.09
✎
10:49
|
(55) Можно и дальше плодить документы со временем "23:59:59". Лично я считаю что документы _должны_ оформляться в рабочее время по рабочим дням! Исключение - для регламентных(служебных) документов.
|
|||
61
ПетяПетькин
08.05.09
✎
10:51
|
(55) так речь именно о регламентных документах и идет!
АмортизацияОС пишет сама себя на последнее время после последнего документа, хотя время в документе может быть 12:00 |
|||
62
ПетяПетькин
08.05.09
✎
10:53
|
это к относилось (60)
(59) при том, что разговор я лично в этой ветке веду о разном результате по выборке остатков с использованием этих двух функций а ты о чем - не знаю |
|||
63
hhhh
08.05.09
✎
11:00
|
(62) просто всё правильно сделано. По другому не может быть. Другое дело, что неудобно, но с этим ничего не поделаешь.
Просто ты хочешь чтобы 1С читала твои мысли, как ты хочешь получить остатки. Если задаешь время 23:59:59, то ты хочешь чтобы остатки были на конец этой секунды, а если ты напишешь время 00:00:00, то тебе уже нужны остатки на начало секунды. Фирма 1С в такие игрушки не играет. |
|||
64
tsr
08.05.09
✎
11:04
|
(63) Он о другом грезит. Чтобы КонецПериода был концом периода, а не чем-то около конца, или приблизительно конца. А Начало было именно началом и ничем более. Вроде нормальная и вполне трезвая хотелка.
|
|||
65
AHgpuXa
08.05.09
✎
11:04
|
(62)А я о том, что при использовании этих функция мы получаем в результате один и тот-же запрос к СКЛ.
Что делает запрос. 1. Он получает конечные остатки WHERE _AccumRegTotals6976._Period = @P1 AND _AccumRegTotals6976._Fld6969RRef = @P2 Где @P2 это товар, а @P1 это {ts '5999-11-01 00:00:00'} 2. Объеденияется с +- движениями, при условии WHERE _AccumReg6966._Period >= @P4 AND _AccumReg6966._Period < @P1 AND _AccumReg6966._Active = @P5 AND _AccumReg6966._Fld6969RRef = @P2 Где @P4 это {ts '4009-05-07 23:59:59'}, причем при использовании 2-ух функций, параметры ничем не отличаются. |
|||
66
Sammo
08.05.09
✎
11:08
|
(64) Позиция 1с, насколько я помню, следующая - когда получаешь остатки из виртуальной таблицы остатки, то ты по умолчанию получаешь остатки на, а не по. И для примера приводили ситуацию, когда хочешь получить остатки НА 01.01
|
|||
67
Serg_1960
08.05.09
✎
11:10
|
Блин, ситуация типа "Минздрав предупреждает" :)) - 1С предупреждает, что для вычисления остатков по умолчанию задан момент времени исключительно.
Источник: статья ИТС "Особенности использования периодов и моментов времени". PS: И хватит опять Америку открывать :(( |
|||
68
Sammo
08.05.09
✎
11:12
|
(67) причем это так еще с 8.0
Так что это скорее из серии "Минздрав устал предпреждать" |
|||
69
Serg_1960
08.05.09
✎
11:20
|
(68) Ага... Я - вышел из темы, пошел курить :))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |