0. rpgshnik 1684 26.08.19 11:00 Сейчас в теме

[Механизм интерфейса] Часы

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. greenLiss 130 26.08.19 13:13 Сейчас в теме
Я наверное глупость скажу, но...

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПодключитьОбработчикОжидания("УстановитьВремя",1);
КонецПроцедуры

&НаКлиенте
Процедура УстановитьВремя()  
	ЭтаФорма.Заголовок = "Заголовок "+Строка(Формат(ТекущаяДата(),"ДЛФ=T")); //Заголовок формы
	Элементы.Часы.Заголовок = "Заголовок "+Строка(Формат(ТекущаяДата(),"ДЛФ=T")); //Декорация-надпись
КонецПроцедуры
Показать
Прикрепленные файлы:
Часы.epf
IcyRider; FesenkoA; skv_79; 🅵🅾️🆇; +4 2 Ответить
2. 🅵🅾️🆇 431 26.08.19 13:16 Сейчас в теме
(1) Сам собрался написать про обработчик ожидания)

Алсо, с таймаутами и подписками жабьегоскрипта надо быть поаккуратнее, зачастую они не умирают вместе со смертью пользовательского сеанса и висят на сервере мертвым грузом, постепенно накапливая свое число.
3. greenLiss 130 26.08.19 13:19 Сейчас в теме
(2) ну там вроде проблема была, что при срабатывании обработчика ожидания введенный текст сбрасывался... Но если изменять не реквизит формы, а элемент формы или заголовок, то всё норм.
IcyRider; WellMaster; BigB; +3 Ответить
4. Tria 14 26.08.19 13:21 Сейчас в теме
(1) Вообще-то в начале статьи автор как раз и описал решение с обработчиком ожидания и проблемы такого решения.
WellMaster; CyberCerber; rpgshnik; +3 Ответить
5. greenLiss 130 26.08.19 13:22 Сейчас в теме
(4) Так в том-то и проблема, что нет проблемы...
IcyRider; Akavi; +2 1 Ответить
6. spacecraft 26.08.19 13:27 Сейчас в теме
(1) И? Как я понял статью, там упор делался решение проблемы: сброс вводимого текста в поле ввода при подключаемом обработчике ожидания.
Ваш код так же сбрасывает вводимый текст при установке "времени". Форма обновляется и вводимый текст сбрасывается.
CyberCerber; rpgshnik; +2 Ответить
7. greenLiss 130 26.08.19 13:31 Сейчас в теме
(6) Я проверил, не сбрасывается, обработка прикреплена к первому комментарию, можете скачать и тоже проверить.
8. spacecraft 26.08.19 13:32 Сейчас в теме
(7) так я ее и проверил. Сбрасывается. 1С:Предприятие 8.3 (8.3.13.1690)
philya; CyberCerber; rpgshnik; +3 Ответить
9. greenLiss 130 26.08.19 13:36 Сейчас в теме
(8) Я делал на 1С:Предприятие 8.3 (8.3.15.1489), может позже гляну на 13, даже интересно.
11. greenLiss 130 26.08.19 13:40 Сейчас в теме
(8) Нашел установленную 13 версию, и правда, сбрасывается...
Ну что можно сказать, тут только словами Фирмы 1С, "Попробуйте обновить платформу до актуального релиза" XD
A_Max; the1; guzel001; FesenkoA; CyberCerber; RomanCrow13; +6 Ответить
12. rpgshnik 1684 26.08.19 14:49 Сейчас в теме
(8) всё верно, именно на этой платформе и веду разработку
Прикрепленные файлы:
13. rpgshnik 1684 26.08.19 15:06 Сейчас в теме
В публикации демонстрируется функционал цифровых часов на платформе 8.3.13.1690. Функционал аналоговых на платформе 8.3.15.1534 (причина новый движок для HTML).

Проверил вариант комментария (1), на нескольких боевых платформах и тестовой (15-й). Поведение странное. Назовём мой первоначальный вариант - "Реквизит", а предложенный "Декорация".

Результат:

8.3.13.1690
Реквизит - Обнуляет поле ввода
Декорация - Обнуляет поле ввода

8.3.14.1694
Реквизит - Обнуляет поле ввода
Декорация - Обнуляет поле ввода

8.3.15.1534
Реквизит - Обнуляет поле ввода
Декорация - Работает

Забавно, ну ок. Пока нет боевой платформы 8.3.15.

Файл обработки прилагаю
Прикрепленные файлы:
ПроверкаОбработчикаИПоляВвода.epf
triviumfan; FesenkoA; CyberCerber; +3 Ответить
16. BigB 178 26.08.19 15:23 Сейчас в теме
(13) Проверил на платформе 8.3.15.1565 - обнуляется в обоих случаях!
rpgshnik; +1 Ответить
10. ltfriend 407 26.08.19 13:38 Сейчас в теме
Нужно просто вместо реквизита для времени использовать декорацию «Надпись» (что и показано в комментарии выше) и не нужны ни какие html.
14. CSiER 27 26.08.19 15:10 Сейчас в теме
Дело в фокусе - чтобы решить проблему, нужно в обработчик добавить Элементы.Текст1.ВыделенныйТекст = "";
Прикрепленные файлы:
Часы.epf
Lexx100; BigB; +2 Ответить
15. rpgshnik 1684 26.08.19 15:15 Сейчас в теме
(14)
Элементы.Текст1.ВыделенныйТекст = "";

Вариант, для декорации. При использование реквизита для времени, поведение поля ввода остается не менее странным.
Прикрепленные файлы:
ПроверкаОбработчикаИПоляВвода.epf
19. BigB 178 26.08.19 15:28 Сейчас в теме
(15) На платформе 8.3.15.1565 в режиме "Реквизит" вводил последовательно числа 1234567890. В результате получил хрень какую-то 8907564231.
В режиме "Декорация" работает правильно!
17. BigB 178 26.08.19 15:24 Сейчас в теме
(14) На платформе 8.3.15.1565 работает правильно.
20. shard 251 26.08.19 15:35 Сейчас в теме
(14) главное - не выделять текст вручную
18. qwinter 605 26.08.19 15:27 Сейчас в теме
Опять велосипеды в центре внимания... Ну когда уже 1Сники будут элементарные вещи знать?
Прикрепленные файлы:
teploukhov; WellMaster; triviumfan; A_Max; philya; Anchoret; manlak; suepifanov; fancy; kuzyara; ifal; SlavaKron; CyberCerber; greenLiss; CSiER; shard; BigB; +17 Ответить
21. rpgshnik 1684 26.08.19 16:35 Сейчас в теме
22. rpgshnik 1684 27.08.19 04:08 Сейчас в теме
(18) проверил - не работает, текст удаляет при его выделение
25. spacecraft 27.08.19 08:17 Сейчас в теме
(22) все работает правильно. Может не убран код из (15)?
rpgshnik; +1 Ответить
26. rpgshnik 1684 27.08.19 09:30 Сейчас в теме
23. rpgshnik 1684 27.08.19 05:19 Сейчас в теме
(18) комментарий жалко нельзя редактировать :) по этому гифка поведения прилагается отдельно, что ещё можно включить?
Прикрепленные файлы:
user906933; +1 Ответить
27. Anchoret 35 28.08.19 10:59 Сейчас в теме
(18) Который раз убеждаюсь, что практически на каждый велосипед, можно найти "галку" в свойствах
28. rpgshnik 1684 28.08.19 11:26 Сейчас в теме
(27) ещё немного прокачался в HTML :) и аналоговые часы выводить намного приятнее именно в HTML. Так же всегда думал, что обработчик ожидания это не асинхронный вызов.
24. Неопределено 55 27.08.19 05:58 Сейчас в теме
Практически готовый алгоритм html-страницы можно взять на
А можно взять полностью готовый на чистом 1С в моей публикации.
29. oafan 23 04.09.19 15:00 Сейчас в теме
Некорректно выводит в поле часы. Есть варианты?
Прикрепленные файлы:
31. rpgshnik 1684 05.09.19 05:57 Сейчас в теме
(29) можно высоту увеличить поля на форме... я думаю, что тут нужно с css стилями поиграть, но сам не силён, как под самый "потолок" вывести время.
30. oafan 23 04.09.19 15:17 Сейчас в теме
Почему -то данный код не заработал для цифровых часов использовал
<html>
<script type="text/javascript">
setInterval(function () {
date = new Date(),
h = date.getHours(),
m = date.getMinutes(),
s = date.getSeconds(),
h = (h < 10) ? '0' + h : h,
m = (m < 10) ? '0' + m : m,
s = (s < 10) ? '0' + s : s,
document.getElementById('time').innerHTML = h + ':' + m + ':' + s;
}, 1000);
</script>
<span id="time">00:00:00</span>
</span>
32. rpgshnik 1684 05.09.19 06:15 Сейчас в теме
(30) что-то я намудрил... позже гляну код в конфиге где это применяю... Пока можете вот это использовать:
&НаКлиенте
Процедура УстановитьВремяХТМЛ()	
	ВремяХТМЛ = "<ht ml>
	|<head>
	|<st yle>
	|p {
	|font-family: Arial; 
	|font-size: 20pt; /* Размер шрифта в пунктах */ 
	|color: #009646; /* Цвет шрифта */
	|}
	|html { overflow:  hidden; } /* Скрываем вертикальную полосу прокрутки*/
	|</style>		
	|<sc ript type=""text/javascript"">
	|function startTime()
	|{
	|var tm=new Date();
	|var h=tm.getHours();
	|var m=tm.getMinutes();
	|var s=tm.getSeconds();
	|m=checkTime(m);
	|s=checkTime(s);
	|document.getElementById('txt').innerHTML=h+"":""+m+"":""+s;
	|t=setTimeout('startTime()',500);
	|}
	|function checkTime(i)
	|{
	|if (i<10)
	|{
	|i=""0"" + i;
	|}
	|return i;
	|}
	|</sc ript>
	|</head>
	|<body on load=""startTime()"">
	|<p id=""txt""></p> 
	|</body>
	|</html>";
КонецПроцедуры
Показать


Ещё возможно что код как-то криво копирует и транслируется... заметил что местами появляются пробелы, возьмите код из обработки ниже
Прикрепленные файлы:
ПроверкаВремениХТМЛ.epf
33. rpgshnik 1684 05.09.19 06:18 Сейчас в теме
(30) так же если интересно обработка с кодом аналоговых часов
Прикрепленные файлы:
АналоговыеЧасы.epf
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1C
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 120 000 руб.
Полный день