|
Динамический список и произвольный запрос | ☑ | ||
---|---|---|---|---|
0
новичок12345
19.01.15
✎
14:12
|
День добрый!
Столкнулся с проблемой, не знаю как решить, поэтому обращаюсь сюда. Есть форма списка (управляемые формы). Платформа 8.2.19.90. На форме динамический список с произвольным запросом. В запросе указана основная таблица и стоит в истине динамическое считывание данных. Запрос выбирает все поля из справочника (полей очень много, порядка 100) и есть одно вычисляемое поле, которое считает количество недель между двумя датами. Собственно сам запрос ( в запросе представлены только несколько полей, так как методом тестирование было вычислено что проблема как раз в этом вычисляемом поле): ВЫБРАТЬ СправочникИТ_ПланированиеРабот.Ссылка, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ВЫБОР КОГДА СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА ВЫБОР КОГДА РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ) = 0 ТОГДА 0 ИНАЧЕ РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ)/7 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК Неделя, ИЗ Справочник.ИТ_ПланированиеРабот КАК СправочникИТ_ПланированиеРабот Проблема: после некоторой строки (у каждой роли она своя) вниз список не листается, как будто там ничего нет. Если нажать END?, то список пролистывается до конца , но теперь обрезается вверху. Строка по которой обрезается может быть разной. Если убрать деление на 7 , то все выводит. Вопрос: Можно ли как то переписать запрос по вычислению этого поля или есть другие идеи как выполнить эту задачу, но другим способом? и вообще интересно, что за ерунда происходит? |
|||
1
Maxus43
19.01.15
✎
14:15
|
КОГДА РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ) = 0
ТОГДА 0 ИНАЧЕ РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ)/7 нафиг когда тогда? просто РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ)/7 ибо результат один. 0/7 = 0. Ваш Кэп |
|||
2
новичок12345
19.01.15
✎
14:17
|
(1) Ну по поводу запроса - это уже не знаю какой вариант написания одного и того же
РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ) далеко не всегда дает 0 . Если убрать деление на 7, то все замечательно считается |
|||
3
Rie
19.01.15
✎
14:18
|
А то, что при делении дробная часть возникает, это ничего?
|
|||
4
новичок12345
19.01.15
✎
14:19
|
(3) Ничего. Некую порцию данных то выводит, и тоже замечательно считает.
|
|||
5
Maxus43
19.01.15
✎
14:20
|
(2) я про то что ты делаешь проверку на ноль, а она не нужна.
Пробуй так ВЫБОР КОГДА СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств <> ДАТАВРЕМЯ(1, 1, 1) Тогда Выразить(РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ)/7 КАК ЧИСЛО(15,2) вместо 15,2 - сколько там тебе надо ставь |
|||
6
Vadimugatu
19.01.15
✎
14:22
|
А если в делать РазностьДат(Дата1, Дата2, НЕДЕЛЯ)?
|
|||
7
новичок12345
19.01.15
✎
14:24
|
(5) сейчас попробую. через выразить.
Самое интересное что если написать РАЗНОСТЬДАТ(&ТекДата, СправочникИТ_ПланированиеРабот.ДатаИсполненияОбязательств, ДЕНЬ)*7 , то тоже все работает. |
|||
8
новичок12345
19.01.15
✎
14:25
|
(6) а разве НЕДЕЛЯ есть такой тип?
|
|||
9
AaNnDdRrEeYy
19.01.15
✎
14:25
|
как в (6) сделай, деление зло.
|
|||
10
ДенисЧ
19.01.15
✎
14:26
|
(8) а не продать ли тебе СП с двойной скидкой?
|
|||
11
AaNnDdRrEeYy
19.01.15
✎
14:28
|
а ведь НЕДЕЛЯ то нет, проверил говорит "Неверные параметры"
|
|||
12
ДенисЧ
19.01.15
✎
14:29
|
Хм... И действительно, в разностьДат() недели нет.... Пойду посуплю что-нибудь чем-нибудь....
|
|||
13
новичок12345
19.01.15
✎
14:29
|
(10) а думаешь я такой не глядя начал спрашивать. Наверно сначала проверил все.
|
|||
14
Maxus43
19.01.15
✎
14:30
|
(10) Третий параметр – тип разности, одно из: СЕКУНДА, МИНУТа, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД.
(с) СП Обнови СП, нефиг старьё продавать с опечатками |
|||
15
ДенисЧ
19.01.15
✎
14:31
|
(14) Предлагаю прекратить похмеляться тормозной жидкостью. См (12)
|
|||
16
Vadimugatu
19.01.15
✎
14:32
|
Извиняюсь за (6), всегда думал, что есть, но никогда не пользовался.
|
|||
17
новичок12345
19.01.15
✎
14:32
|
(5) Спасибо через Выразить заработало! Всем спасибо кто поучаствовал! Теперь только непонятно почему до этого дин список не хавал что это число. Хотя вроде в списке реквизитов написано что в этом поле число хранится
|
|||
18
AaNnDdRrEeYy
19.01.15
✎
14:33
|
(17) там NULL иногда наверно проскакивает.
|
|||
19
Maxus43
19.01.15
✎
14:34
|
(17) например 5/7 = 0,7142857142857143
у тебя тип не такой, иль ещё что, тупить может на таких числах |
|||
20
vde69
19.01.15
✎
14:35
|
кстати РАЗНОСТЬДАТ - очень медлено работает....
|
|||
21
новичок12345
19.01.15
✎
14:36
|
(19) ясно, буду знать. Очень выручили. Спасибо!
|
|||
22
новичок12345
19.01.15
✎
14:36
|
(20) чем заменить предлагаете?
|
|||
23
vde69
19.01.15
✎
14:38
|
(22)я менял на соеденение с произдодственным календарем...
хотя конечно на маленьких таблицах пофигу... |
|||
24
DrZombi
гуру
19.01.15
✎
15:10
|
(23) Как медленно, по "Разность"? О_о...
Это же катастрофа :( |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |