|
v8: Сравнить текущую дату с Периодом из регистра | ☑ | ||
---|---|---|---|---|
0
AllJoke
22.12.11
✎
13:21
|
Всем день добрый. Вот такая делема у меня сложилась. Есть РегистрСведений, в нем Период = 22.12.2011, а функция ТекущаяДата() возвращает допустим 22.12.2011 13:20:00. Тобишь со временем. Понятно, что они не равны, но как же тогда их сравнить. Задача в том, что при нажатии на галочку мне в динамическом списке показывались записи введенные сегодня. Отбором использую:
ЭлементОтбораПериод.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Период"); ЭлементОтбораПериод.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораПериод.Использование = Истина; ЭлементОтбораПериод.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбораПериод.ПравоеЗначение = НачалоДня(ТекущаяДата());//Дата(Формат(НачалоДня(ТекущаяДата()), "ДЛФ = Д")); |
|||
1
Maxus43
22.12.11
✎
13:25
|
сравнивай МЕЖДУ ДатаНачалаСегодня и ДатаКонцаСегодня, а не "равно"
|
|||
2
Defender aka LINN
22.12.11
✎
13:26
|
> и <
|
|||
3
Defender aka LINN
22.12.11
✎
13:27
|
(1) Найдешь в компоновке такой отбор - я тебе лично у Асмодея медальку выпрошу.
|
|||
4
Defender aka LINN
22.12.11
✎
13:28
|
(0) Дык в чем проблема-то, не пойму, кстати? НачалоДня() даст тебе дату вез времени, все довольны и смеются.
|
|||
5
AllJoke
22.12.11
✎
13:35
|
(4) Дает со временем.
|
|||
6
AllJoke
22.12.11
✎
13:36
|
НачалоДня(ТекущаяДата()) 22.12.2011 0:00:00 Дата
|
|||
7
Ненавижу 1С
гуру
22.12.11
✎
13:36
|
(6) то что надо! бери и ничего не спрашивай!
|
|||
8
AllJoke
22.12.11
✎
13:38
|
(7)Так не срабатывает же. В списке регистра Период = 21,12,2011
|
|||
9
AllJoke
22.12.11
✎
13:38
|
Без времеени.
|
|||
10
Ненавижу 1С
гуру
22.12.11
✎
13:39
|
(8) ты пробовал?
|
|||
11
Defender aka LINN
22.12.11
✎
13:41
|
(9) Даты без времени не бывает
|
|||
12
Maxus43
22.12.11
✎
13:42
|
(11) я про смысл а не синтаксис, как в (2) тоже самое
|
|||
13
Maxus43
22.12.11
✎
13:42
|
(12) > (3)
|
|||
14
AllJoke
22.12.11
✎
13:45
|
(10) Да.
|
|||
15
AllJoke
22.12.11
✎
13:46
|
В регистре 3 записи с периодом = 22.12.2011.
Код: ЭлементОтбораПериод.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Период"); ЭлементОтбораПериод.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораПериод.Использование = Истина; ЭлементОтбораПериод.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбораПериод.ПравоеЗначение = НачалоДня(ТекущаяДата());//Дата(Формат(НачалоДня(ТекущаяДата()), "ДЛФ = Д")); показывает все, а не только определенные. |
|||
16
Defender aka LINN
22.12.11
✎
13:49
|
(15) Паяльник брать, или признаешься, кто такой "ЭлементОтбораПериод" и где это все происходит?
|
|||
17
AllJoke
22.12.11
✎
13:51
|
ЭлементОтбораПериод = СписокОхотников.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
|||
18
AllJoke
22.12.11
✎
13:51
|
УФ, НаКлиенте.
|
|||
19
Ненавижу 1С
гуру
22.12.11
✎
13:53
|
СписокОхотников внушает
|
|||
20
AllJoke
22.12.11
✎
13:53
|
(19) Динамический список.
|
|||
21
FoXSkr
22.12.11
✎
13:59
|
Посмотри а периодичность у регистра сведений точно в пределах дня? Может только на форме отображается Дата без времени а на самом деле там с временем. Потому что тоже самое сделал у себя и все работает.
|
|||
22
AllJoke
22.12.11
✎
14:04
|
(21) Да. В пределах дня.
|
|||
23
AllJoke
22.12.11
✎
14:06
|
Странно, в настройках ДинСписка в Отборе поставил сегодняшнюю дату все равно всех выводит.
|
|||
24
FoXSkr
22.12.11
✎
14:07
|
Тогда убери закомментируй строку
ЭлементОтбораПериод.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; И посмотри в настройках у тебя отбор живой. |
|||
25
AllJoke
22.12.11
✎
14:10
|
Так я вообще при запуске системы говорю. Там же никакие отборы не появляются, они только при галочке. Настраиваю список с отбором по Периоду сегодняшней даты. Всех выводит.
|
|||
26
FoXSkr
22.12.11
✎
14:22
|
Так ты уже в форме посмотри "Все действия - Настроить список" там твой созданный отбор есть? Может гдето есть строка:
Список.Отбор.Элементы.Очистить(); |
|||
27
AllJoke
22.12.11
✎
14:27
|
Даже через настройку списка никак не хочет отбирать.
|
|||
28
AllJoke
22.12.11
✎
14:28
|
Плять. А 20 вывел.
|
|||
29
AllJoke
22.12.11
✎
14:31
|
Не понимаю! Настроить Список - Отбор - Период меньше или равно 21.12.2011 00:00:00. Он мне и за 20.12.2011 выдает записи.
|
|||
30
FoXSkr
22.12.11
✎
14:32
|
Ну дак ты же сравнение сделал меньше или равно
|
|||
31
AllJoke
22.12.11
✎
14:39
|
(30) Так если даже Больше или равно делаю - все равно 20 и 21 выдает.
|
|||
32
AllJoke
22.12.11
✎
14:40
|
Больше или равно 22, выдает и 20 и 21.
|
|||
33
AllJoke
22.12.11
✎
14:40
|
Правда дата стала со временем.
|
|||
34
AllJoke
22.12.11
✎
14:43
|
http://screencast.com/t/K71eZ3hjkJRR - ссылка на видео.
|
|||
35
AllJoke
22.12.11
✎
14:46
|
И что интересно, с булевными значениями работает на ура. Со строковыми тоже.
|
|||
36
FoXSkr
22.12.11
✎
15:00
|
(34) Прикольно. А конфига большая? Можешь скинуть что бы воочию все глянуть.
|
|||
37
AllJoke
22.12.11
✎
15:02
|
Это в обработке. Кину как внешнюю.
|
|||
38
AllJoke
22.12.11
✎
15:03
|
||||
39
FIXXXL
22.12.11
✎
15:03
|
про запрос говорили?
|
|||
40
AllJoke
22.12.11
✎
15:04
|
(39) Внимательно...
|
|||
41
FIXXXL
22.12.11
✎
15:05
|
сорри, про запрос погарячился
здесь кнапырка и Отбор |
|||
42
alexandrius
22.12.11
✎
15:19
|
не качается, сервер занят на яндексе
|
|||
43
FoXSkr
22.12.11
✎
15:35
|
Есть мнение что проблема в том что ты в запросе динамического списка используешь виртуальную таблицу среза последних регистра сведений и при установки отбора программа ставит отбор на урове параметра виртуальной таблицы, вот у тебя все и попадают все равно а если ставишь на 20-е число тогда все кто больше отрезается, попробуй использовать в запросе физическую таблицу.
|
|||
44
AllJoke
22.12.11
✎
15:43
|
Так там основная таблица же Справочник.Физические Лица.
|
|||
45
FoXSkr
22.12.11
✎
15:47
|
У тебя период же выбирается из "СведенияОхотникаСрезПоследних"
Или в конце запроса добавить {ГДЕ СведенияОхотникаСрезПоследних.Период} |
|||
46
AllJoke
22.12.11
✎
15:50
|
(45) Для чего это добавлять? Ты предлагаешь таблицу СведенияОхотника. Не СрезПоследних?
|
|||
47
alexandrius
22.12.11
✎
15:52
|
(43) да по ходу правильно, предлагаю колонку период в запросе переименовать, тогда все работает
|
|||
48
alexandrius
22.12.11
✎
15:53
|
Т.е вот таким образом потом все работает:
ВЫБРАТЬ ФизическиеЛица.Наименование, ФизическиеЛица.ДатаРождения, ОхотничьийБилетСрезПоследних.Серия, ОхотничьийБилетСрезПоследних.Номер, ОхотничьийБилетСрезПоследних.ДатаВыдачи, ОхотничьийБилетСрезПоследних.Аннулирован, ФизическиеЛица.Активна, СведенияОхотникаСрезПоследних.Период как Денек, СведенияОхотникаСрезПоследних.Автор |
|||
49
FoXSkr
22.12.11
✎
15:53
|
(46) 2 варианта на выбор
1) Либо в конце запроса добавь {ГДЕ СведенияОхотникаСрезПоследних.Период} 2) Либо используй таблицу используй не срез последних. 1 вариант предпочтительнее. |
|||
50
FoXSkr
22.12.11
✎
15:55
|
(47), (48) Тоже вариант.
|
|||
51
AllJoke
22.12.11
✎
15:58
|
Можете обработку кинуть, в которой работает?
|
|||
52
AllJoke
22.12.11
✎
16:00
|
Работает!!!
|
|||
53
AllJoke
22.12.11
✎
16:00
|
Спасибо.
|
|||
54
AllJoke
22.12.11
✎
16:00
|
А теперь же сюда вопрос. Как второй отбор программно добавить. Мне нужно еще и автора проверять.
|
|||
55
alexandrius
22.12.11
✎
16:05
|
А что мешает такой же блок добавить по Автору?
|
|||
56
alexandrius
22.12.11
✎
16:07
|
Тем более такой вроде код уже есть, только закоменченный...
|
|||
57
FIXXXL
22.12.11
✎
16:12
|
суки-п....дарасыы
заново учить |
|||
58
alexandrius
22.12.11
✎
16:15
|
(57) Ты чего такой злобный? еще вроде четверг...рано
|
|||
59
AllJoke
22.12.11
✎
16:29
|
Да сделал я уже. Не надо печалиться. Всем огромное спасибо.
|
|||
60
FIXXXL
22.12.11
✎
16:44
|
||||
61
FIXXXL
22.12.11
✎
16:47
|
а злой наверное на себя, изучаемые формы пока не освоил
злой за то что просто не интересно не смотрел |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |