Имя: Пароль:
1C
 
КонецДня - не совсем конец?
0 mihco
 
17.06.11
12:12
Уже второй раз сталкиваюсь с проблемой - в запрос передаю параметром КонецДня(ДатаОкончания), при этом на конечное сальдо не влияют движения некоторых документов, сделанных на 23.59.59 этой конечной даты. Если параметром передавать Граница(КонецДня(ДатаОкончания), Включая), то все Ок. Это что за особенность платформы?
1 vicof
 
17.06.11
12:14
Граница (Boundary)
Граница (Boundary)
Свойства:

ВидГраницы (BoundaryType)
Значение (Value)

Конструкторы:

На основании значения и вида

Описание:

Предназначен для получения и хранения границы некоторого интервала значений. Содержит граничное значение интервала, а также признак включения или исключения граничного значения в интервал.
Используется в качестве значений свойств и параметров методов других объектов, имеющих данный тип.
Граница используется в тех случаях, когда важно указание включения или исключения граничного значения, например при получении остатков и оборотов регистров накопления, срезов и значений регистров сведений, для задания интервалов запросов.

Это фича.
2 zbv
 
17.06.11
12:15
(1) скорее ему надо это:

Тип: Дата; МоментВремени; Граница. Момент времени, на который необходимо получить остатки. Если параметр не указан или установлен в Неопределено, то будут получены текущие остатки (на максимальную дату движений регистра). Если в качестве параметра передана Дата, то остатки будут получены на начало дня, если МоментВремени - то в остатках не будут учтены движения регистра, произошедшие в тот же момент времени.
3 Жан Пердежон
 
17.06.11
12:15
Стаж 5 лет, 10 месяцев
4 John83
 
17.06.11
12:18
а в выборке точно так же работает?
5 mihco
 
17.06.11
12:18
Так в том и вопрос, что КонецДня должен работать аналогично Граница(Включая). А не работает.
6 mihco
 
17.06.11
12:19
И в типовых зачастую используется КонецДня.
7 Sammo
 
17.06.11
12:20
Самое смешное, если под конечным сальдо понимается виртуальная таблица остатков.
8 vicof
 
17.06.11
12:22
9 Ненавижу 1С
 
гуру
17.06.11
12:23
это гоны разработчиков платформы 1це ))
10 Fragster
 
гуру
17.06.11
12:23
Остатки - На, обороты - ПО
11 Fragster
 
гуру
17.06.11
12:24
(7) так и есть, иначе бы включало
12 simol
 
17.06.11
12:24
(0)Виртуальная таблица остатков возвращает данные на начало секунды переданной даты.
Оборотов - на конец секунды переданной даты
13 mdocs
 
17.06.11
12:24
Если впадлу юзать границу - добавь секунлу.
14 Skatal
 
17.06.11
12:25
Видео урок: Серия «13 ошибок, за которые увольняют программистов»
http://www.spec8.ru/free-materials

так кажется тоже про это было(12ошибка)
15 Ненавижу 1С
 
гуру
17.06.11
12:26
(13) и получи граблями по хребтине?
16 forforumandspam
 
17.06.11
12:26
(12) А ОстаткиИОбороты ?

Как юзать границу в консоли отчетов/запросов?
17 mihco
 
17.06.11
12:26
(12) - спасибо, буду знать.
18 stix2010
 
17.06.11
12:27
бери на 00:00:00 следующего дня, это фича
19 mdocs
 
17.06.11
12:28
(15) с чего бы, если речь только о таблице остатков?
(16) "по"
20 Sammo
 
17.06.11
12:28
(17) Если что, это еще с 7.7.

P.S. Хотя даже в типовых, емнип, бывало...
21 Armando
 
17.06.11
12:29
Кстати, а что говорит профайлер, когда в запрос суешь границу включая?
22 le_
 
17.06.11
12:31
А КонецПериода(&Д, День) в запросе включает границу?
23 Jstunner
 
17.06.11
12:33
(22) с каким сравнением?
24 Defender aka LINN
 
17.06.11
12:35
(22) Границу (остатки на по последюю секунду) могут включать или не включать таблицы. А "КонецПериода(&Д, День)" - это дата. НЕМНОЖКО другая вещь.
25 le_
 
17.06.11
12:38
Выходит, запрос:
ВЫБРАТЬ
   ВзСКОстатки.Контрагент,
   ВзСКОстатки.СуммаВзаиморасчетовОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(КОНЕЦПЕРИОДА(&Д, ДЕНЬ), Контрагент = &К) КАК ВзСКОстатки

даст неверный результат, если есть документы введенные последней секундой дня?
26 Defender aka LINN
 
17.06.11
12:39
(25) Он даст верный результат. Неверный он даст, если у тебя итоги полетят.
27 le_
 
17.06.11
13:00
(26) Тогда не оч. понятно, от чего возникла проблема в (0).
Итоги полетели? Или КонецДня() и КОНЕЦПЕРИОДА() по-разному работают?
28 Офелия
 
17.06.11
13:06
(27) Он использовал КонецДня в запросе. Вместо Границы.
29 Defender aka LINN
 
17.06.11
13:09
(27) Да читать он не умеет.
30 MMF
 
17.06.11
13:17
Разработчики языка 1С - не вполне вменяемые. Маразм с Границей еще нужно было постараться придумать.
31 qeos
 
17.06.11
13:23
(30) это не маразм, а попытка выйти из ситуации когда в одну секунду существует несколько документов.
32 Ненавижу 1С
 
гуру
17.06.11
13:24
(31) время надо было делать более дискретным (с точностью double)
33 qeos
 
17.06.11
13:26
(32) все равно возникли бы такие ситуации..
34 Ахиллес
 
17.06.11
13:28
(27) Если в запрос передавать дату, а не границу, то платформа будет понимать это как:
НачалоСекунды(КонецДня(ДатаОкончания))
А поскольку в пределах секунды порядок документов не определён, может оказаться, что существуют документы в этой секунде записанные позднее, чем на начало секунды. Вот они и не войдут в запрос.
35 MMF
 
17.06.11
13:55
Ай-яй-яй, какие умные разработчики 1С, интересно, почему весь прочий мир обходится без этого бреда.
36 Defender aka LINN
 
17.06.11
13:57
(35) У всего прочего мира нет виртуальных таблиц? :)
37 Ненавижу 1С
 
гуру
17.06.11
14:07
(36) виртуальные таблицы всего лишь макросы, у многих есть stored procedure как вариант
38 Ненавижу 1С
 
гуру
17.06.11
14:08
+(35) многие обходятся только одним NULL без всяких пустых ссылок
39 Defender aka LINN
 
17.06.11
14:26
(37) Да. И этот макрос возвращает определенный, описанный в документации, результат.
41 Тарантул
 
17.06.11
16:36
а как действительно с "ОстаткиИОбороты", кто нибудь припомнит:)? На всякий случай включить границу?:)
43 vmv
 
17.06.11
19:27
Время - понятие связанное с дискретностью
Граница - понятие связанное с непрерывностью.

Иначе говоря, в физическом смысле, все точки процесса во времени можно сосчитать, а границах нет.

Для времени крайняя точка - это крайний вариант дикретности.

Для границы крайней точки нет, но сосстояние процесса в указанной границе будет более адекватным, чем к дикретной точке приблеженной к ней.
44 vmv
 
17.06.11
19:30
Эйнштейн негодует, что такие элементарные вещи непонятны, а весь остальной мир просто ленив - 1С-ники нет)
45 Defender aka LINN
 
17.06.11
20:21
(41) Учу читать документацию. Дорого. Больно. Страшно.
Обороты/ОстаткиИИобороты - включает.
Остатки - не включает.
46 Snovy
 
17.06.11
20:52
(13)(15) Во времена одного из релизов платформы 8.0 <граница-включая> давала неверный результат. После этого к КонцуДня стали прибавлять секунду - результат полностью прогнозируемый, граблей не наблюдали по сей день - 8.0, 8.1, 8.2... Какие грабли могут быть в принципе?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс