Имя: Пароль:
1C
1С v8
интерфейс для УФ с помощью HTML и JS
0 kAndrat
 
22.05.19
10:54
Всем привет.
Есть задача нарисовать красивое меню с помощью HTML и JS.
Что-то наподобии как вот тут http://catalog.mista.ru/public/398366/

Плаформа 8.3.12
ИЕ 11

Возникает вопрос как правильно вызвать метод JS из 1с.
например как вот эту функцию передать для HTML документа?
function createButtons(buttonsArray)
{
    var buttonsCount = buttonsArray.Количество();
    for(var i = 0; i < buttonsCount; i++)
    {
        var ПараметрыКнопки = buttonsArray.Получить(i);
        var btn = document.createElement('div');
        btn.id             = ПараметрыКнопки.ИмяКоманды;
        btn.innerText         = ПараметрыКнопки.Заголовок;    
        btn.style.fontSize     = ПараметрыКнопки.РазмерТекста;            
        btn.style.color     = ПараметрыКнопки.ЦветТекста;                          
        container.appendChild(btn);                        
   }  
}

Чтобы потом ее вот так вызвать Документ.createButtons(МассивКнопок)?

Много где смотрел, так ясности по этому вопросу нет.
1 shuhard
 
22.05.19
10:56
(0) в статье всё разжёвано, что конкретно не получается ?
2 kAndrat
 
22.05.19
11:00
(1) Не понятно как именно передать свой скрипт в Поле HTML документа, чтобы потом к нему из 1с обратиться вот так: Документ.createButtons(МассивКнопок)
3 fisher
 
22.05.19
11:36
(2) Самый простой путь - запихать его в html внутрь тэга <script>
4 Вафель
 
22.05.19
11:37
можно добавить скрипт, который бы добвалял скрипты
5 kAndrat
 
22.05.19
11:47
(3) Ну я так и сделал по итогу
Текст = "
    |<HTML>
    |<head>
    |<meta http-equiv=""X-UA-Compatible"" content=""IE=9"" />
    |</head>
    |<BODY style='background-color:#FCFAEB' scroll = 'no'>
    |
    |<div id='container'></div>
    |
    |<script type=""text/javascript"">
    |function createButtons(buttonsArray)
    |{
    |var buttonsCount = buttonsArray.Количество();// Доступны методы и свойства массива 1С

    |for(var i = 0; i < buttonsCount; i++)
    |    {
    |    var ПараметрыКнопки = buttonsArray.Получить(i);
    |
    |    var btn = document.createElement('div');
    |    btn.id             = ПараметрыКнопки.ИмяКоманды;
    |    btn.innerText         = ПараметрыКнопки.Заголовок;    
    |    btn.style.fontSize     = ПараметрыКнопки.РазмерТекста;            
    |    btn.style.color     = ПараметрыКнопки.ЦветТекста;  
    |    btn.style.background = '#eee';
    |    btn.style.color = '#088';
    |    btn.style.textDecoration  = 'none';
      |    btn.style.display = 'block';
      |    btn.style.width = '90px';
      |    btn.style.margin = '20px auto';
      |    btn.style.padding = '10px 10px';
      |    btn.style.transition = 'all 0.3s';
    |                    
    |    container.appendChild(btn);                        
    |    }  
    |};
    |</script>
    |</BODY>
    |</HTML>
    |";
В обычных формах было свойство у поля HTML документа УстановитьТекст() и через него как раз и происходил нужный эфект.
А как это же самое сделать в УФ и не понятно.
6 Вафель
 
22.05.19
11:48
в уф нужно реквизиту установить значение
7 Вафель
 
22.05.19
11:49
ну и лучше сразу через json делать, на будущее
8 kAndrat
 
22.05.19
11:59
(6) А можно поподробнее про реквизит? Реквизиту к которому привязано поле HTML документа? Может какой то пример есть для наглядности?
Никогда не сталкивался просто с подобными задачами.