Имя: Пароль:
1C
 
Часы в динамическом списке
0 SashaNox
 
15.05.15
14:43
Добрый день! Необходимо выводить в колонке динамического списка документов отсчет времени (часы) даты изменения статуса документа от текущей даты. Сделал через обработчик ожидания и установку параметра дин. списка ТекущаяДата, но работает крайне медленно, все стало тормозить, подскажите, как лучше реализовать?
1 Cyberhawk
 
15.05.15
14:47
Что сделать-то нужно?
2 vde69
 
15.05.15
14:48
делал раскраску в зависимости от времени просрочки...

делал через произвольный запрос, обновление раз в 10 минут, полет нормальный
3 SashaNox
 
15.05.15
14:50
(2) раз в 10 минут нормально, никак не повлияет, а если чтоб как часы шли?
4 vde69
 
15.05.15
14:52
как часы - не сделаешь, тормозить будет...
5 Бубка Гоп
 
15.05.15
14:53
(3) через дин список вряд ли получится
6 Basilio
 
15.05.15
14:54
Если статическую таблицу использовать то можно сделать. а в дин списке полюбому тормоза будут.
7 vde69
 
15.05.15
15:01
придумал как сделать :)

делаем константу "ТекущееВремя" в динамическом списке делаем джойн с константой и с полем константа-дата (поле просрочка), константу указываем как основной источник.

все....

кто проверит?
8 Бубка Гоп
 
15.05.15
15:04
(7) не совсем понял, а константу кто все время обновлять будет?
9 Basilio
 
15.05.15
15:05
(7) если ему нужно "чтобы как часы шли" у него полюбому список раз в секунду должен обновляться. а тормоза как я понимаю как раз из-за этого
10 Basilio
 
15.05.15
15:06
(0) сделай статичную таблицу - в нее документы выгрузи и одно поле этой таблицы в форме обновляй (рассчитывай разницу). а саму таблицу перезаполняй раз в минуту..))
11 Бубка Гоп
 
15.05.15
15:06
(0) а раз в минуту если? неужели нужна точность до секунды?
12 vde69
 
15.05.15
15:10
(9)рег задание...

фишка в том, что событие будет ловится на клиентах
13 Бубка Гоп
 
15.05.15
15:12
(12) т.е. рег задание каждую секунду будет запускаться и переписывать константу в базе? при условии что оно запускается само по себе минимум 2 секунды)
14 Drac0
 
15.05.15
15:13
(12) Запрос все равно будет к серверу :)

Есть другой вариант: условное оформление. Отвести отдельную колонку и менять программно условное оформление по таймеру ,где в текст писать время строкой. Должно быть точно на клиенте :)
15 Бубка Гоп
 
15.05.15
15:13
(13) либо оно будет все время работать? на постоянке?
16 Drac0
 
15.05.15
15:14
+(14) туплю. Данные же таблицы нужны
17 Basilio
 
15.05.15
15:24
+(9) уточняю, т.к. не поняли. Создает на форме реквизит таблица значений с нужными полями (реквизиты документа и проч из дин списка + поле "часы") - это вместо динамического списка. Заполняем ее при открытии формы и по таймеру (обработчик событий).  Саму таблицу перезаполняем раз в минуту, а колонку с часами - раз в секунду...
как-то так
18 Basilio
 
15.05.15
15:27
(17) это к (10)
19 Бубка Гоп
 
15.05.15
15:27
(17) это просто, весь интерес это на ДС замутить
20 SashaNox
 
15.05.15
15:27
По поводу константы не понял.
Если обновлять раз в минуту то нормально.
Если перезаполнять раз в секунду тем же запросом таблицу значений не уверен, что тормозить не будет
21 Basilio
 
15.05.15
15:28
(20) не тем же запросом. Отдельно просчитывать одну колонку. без обращения к базе.
22 Basilio
 
15.05.15
15:29
(19) Извращенцы ))
23 SashaNox
 
15.05.15
15:32
(21) считать ведь надо от даты документлв, или как переменную таблицу в запросе предлагаешь использовать для расчета колонки времени, не совсем понял. Или циклом вообще обходить?
24 Basilio
 
15.05.15
15:35
(23) да хоть циклом, хоть отдельным запросом к уже сформированной ТЧ.
смысл в том что в ТЧ у тебя лежат данные из базы, в т.ч. дата смены статуса. эти данные ты заполняешь раз в минуту.
дата разницы у тебя в этой же ТЧ в отдельной колонке - ее ты рассчитываешь раз в секунду.
25 К_Дач
 
15.05.15
16:02
На ДС не получится, имхо. ДС - он на то и ДС, чтобы данные из базы получать динамически (раз в сколько-то секунд, во время скроллинга, порциями и т.д.). То есть данные в ДС обновляются, идет новое выполнение запроса. самый норм вариант в (17)
2 + 2 = 3.9999999999999999999999999999999...