Цифровые часы для формы 1С 8.2 с использованием java-script - 29 Декабря 2013 - Профессиональные решения для 1С 8.2
      Профессиональные решения для 1С 8.2 Среда, 29.03.2017, 06:15
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поделиться ссылкой


Главная » 2013 » Декабрь » 29 » Цифровые часы для формы 1С 8.2 с использованием java-script
13:49
Цифровые часы для формы 1С 8.2 с использованием java-script
Часы на форме создать довольно просто при помощи обработчика ожидания. Если каждую секунду вызывать процедуру, которая будет менять текущее время и выводить его в поле или в элемент типа надпись, то часы будут отображаться и задача как бы решена. Однако есть не совсем однозначный момент, когда пользователю нужно работать с формой, в том числе с использованием обработок внешнего события или при различного рода задержках, связанных с обработкой информации, могут возникать конфликтные ситуации при вызове процедуры из обработки ожидания и выполнением других процедур. В моей практике такие конфликты приводили к вылету пользователя из 1С с системной ошибкой. Предлагаю вашему вниманию часы, которые не используют обработчик ожидания 1С. На форме размещается поле html документа и выводим несложный java-скрипт для часов. Часть кода помещается в  java-класс, так как без использования класса обычный скрипт страницу не обновляет по таймеру, и часы отображаются, но не идут (возможно, это особенность браузера 1С).
Обработка выглядит как на картинке:
 
Код имеет следующий вид:

Процедура ПриОткрытии()
    ТД=Новый ТекстовыйДокумент;
    Т="<html>
    |<body scroll=no bgcolor=""#FFFBF0"">
    |<script src=""clock.js""></script>
    |<div id=""clock"" align=""center"">
    |<script language=""javascript"">
    |<!--
    | clock();
    | //-->
    |</script>
    |</div>
    |</body>
    |</html>";
    КВФ=КаталогВременныхФайлов();
    ДД=ЭтотОбъект.ПолучитьМакет("clock");
    ДД.Записать(КВФ+"clock.js");
    ТД.УстановитьТекст(Т);
    ТД.Записать(КВФ+"сlock.html");
    ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Перейти(КВФ+"сlock.html");
КонецПроцедуры
 
Java-класс записан в макет типа двоичные данные. Код представлен ниже:
 
 
function checklength(i){
    if (i<10)
        {i="0"+i;}
    return i;
}

function clock(){
    var now = new Date();
    var hours = checklength(now.getHours());
    var minutes = checklength(now.getMinutes());
    var seconds = checklength(now.getSeconds());
    var format = 0;  //0=24 hour format, 1=12 hour format
    var time;
    if (format == 1){
        if (hours >= 12){
            if (hours ==12){
                hours = 12;
            }else {
                hours = hours-12;
            }
            time=hours+':'+minutes+':'+seconds+' PM';
        }else if(hours < 12){
            if (hours ==0){
                hours=12;
            }
            time=hours+':'+minutes+':'+seconds+' AM';
        }
    }
    if (format == 0){
        time='<span style="font-size: 60pt;">'+ hours+':'+minutes+':'+seconds+'</span>';
    }
     document.getElementById("clock").innerHTML=time;
    setTimeout("clock();", 500);
}
  
Код 1С добавлен на сайт при помощи оригинальной обработки
 
Скачать обработку можно здесь Часы.epf
 
Просмотров: 2202 | Добавил: Programmer1C | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Декабрь 2013  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Друзья сайта
  • Создать сайт
  • Современная Ароматерапия
  • Биодобавки из США
  • Заработок для web-мастера

  • Рейтинг@Mail.ru
    www.professional-1c.ru © 2017
    Бесплатный хостинг uCoz