Имя: Пароль:
 
1C
1С v8
Отображение а-ля лога в 1С в режиме реального времени
0 Stepinrn
 
20.08.18
11:34
Доброго времени суток, коллеги. Помогите, пожалуйста, решить одну проблему.

Есть УТ11 на управляемых формах, необходимо в форме списка справочника реализовать отображение "лога" действий системы. Суть примерно такая: в фоновом режиме с сайта грузятся определенные данные и нужно отображать эти данные в виде что-то типа лога в форме списка, например "Пришли данные 1", перенос строки, "Пришли данные 2".

Я пытаюсь реализовать это через объект Форматированный документ

ЧатЗаявок.Добавить("", Тип("ПереводСтрокиФорматированногоДокумента"));
    ЧатЗаявок.Добавить("Запись " + Формат(ТекущаяДата(), "ДЛФ=DDT"), Тип("ТекстФорматированногоДокумента"));

Все это работает через обработчик ожидания и обновляется.

Собственно сама проблема: при обновлении данных мне необходимо, чтобы фокус всегда был на последней записи, а он все время сбрасывается на начало. Можно ли как-то обойти эту проблему? Или может вообще как-то по-другому можно реализовать такую задачу?
1 Fedor-1971
 
20.08.18
11:58
(0) У тебя хранятся полученные данные? Например, в РС
Вытащи их через ДС или таблицу значений (и то и другое позволяет сделать активной последнюю строку, как в принципе и заполнить оные в обратной последовательности)

К стати, заполнение по убыванию даты решит твою проблему: последняя добавленная строка всегда будет первой
2 Stepinrn
 
20.08.18
12:40
Да, данные хранятся и через таблицу значений самый очевидный вариант, но хотелось сделать красиво, чтобы как реалтайм лог ))

Через объект Форматированный документ не получилось сделать заполнение по дате убывания, а вот через текстовый документ получилось. Наверное этого будет достаточно ))
3 Cyberhawk
 
20.08.18
13:37
Покажи на картинке
4 Вафель
 
20.08.18
13:37
делай на html
5 Адинэснег
 
20.08.18
13:45
(0) обратную сортировку сделай, чтоб вверху были последние события
6 Адинэснег
 
20.08.18
13:45
старый лог будет "вниз" уходить
7 Vladal
 
20.08.18
14:03
(0) "Собственно сама проблема: при обновлении данных мне необходимо, чтобы фокус всегда был на последней записи, а он все время сбрасывается на начало. Можно ли как-то обойти эту проблему? Или может вообще как-то по-другому можно реализовать такую задачу?"

Сделать как в новомодных блогах, каментах и фейсбуках - сверху последние записи. То есть сортировка по времени в обратном порядке.
8 Stepinrn
 
20.08.18
15:58
(4) Не нашел как добавить поле HTML на управляемой форме
9 Stepinrn
 
20.08.18
15:59
(7) да, собственно так и сделал, с сортировкой в обратном порядке. Всем спасибо
10 Сияющий в темноте
 
20.08.18
22:00
В web программировании для этого есть insertAdjacentHTML,позволяющая вставлять содержимое в тело документа,а также можно использовать scrollIntoView,а вот в 1с придется извращаться с таблицей значений,хотя,если ее всегда позиционировать на последнюю строку,если она до этого стояла на последней строке,то все будет хорошо
вопрос только,как сделать,чтобы не гонять всю таблицу с клиента на сервер и обратно.
11 palsergeich
 
20.08.18
22:23
Не надо так делать, что то мне говорит что это реализовано на ОбработчикеОжидания, не так давно в одной конфе 70% от общей нагрузки было от похожего механизма (200 юзеров раз в минуту дружно висели в лаге, когда шел запрос по РС), а самое главное, что он никому после показа был не нужен.
Уж если хочется чего то модного - сделайте через сервер взаимодействия, там вроде можно 1свским воспользоваться.
12 palsergeich
 
20.08.18
22:24
(8) Реквизит формы - строка.
Тап элемента формы - связанного с этим реквизитом - Поле HTML Документа
13 Cyberhawk
 
20.08.18
23:08
(11) Лаг из-за одновременного и конечно же неблокирующего чтения из БД? Что-то странно как-то
14 Сияющий в темноте
 
21.08.18
08:32
Если файловая опубликована на внбсервере,то будет просто жуть.А так,трудности будут у того,кто пишет в регистр.
но,можно же читать только измененные,то есть индекс по дате,и все,что больше и равно читать,тогда будет быстрее.
в 1с нет блочного чтения файлов,так что на файлах не получится.
15 Мыш
 
21.08.18
08:47
(14) > в 1с нет блочного чтения файлов,так что на файлах не получится

В последних релизах есть же.
16 Stepinrn
 
22.08.18
11:45
(14) Чтение идет "только измененных", с индексом по дате.

Да, реализовано на обработчике ожидания, но раз в минуту считывается от 1 до максимум 5 записей, соответственно о тормозах тут речи нет.