Имя: Пароль:
1C
1С v8
Фоновое обновление данных на клиенте, без любого зависания формы
0 Max Braun
 
25.12.17
20:53
Есть сервис-биржа, предоставляет котировки. С помощью предоставленного API данные в 1С (запись в регистр сведений в фоновом задании) поступают каждые 2 секунды. Необходимо отображать таблицу на форме и отражать изменения в таблице на форме, без каких либо прогрузок и подвисаний.

Текущий вариант это через ПодключитьОбработчикОжидания() + фоновое задание для записи данных с сервиса + обновление дин списка где
данные из того регистра. Но тоже самое обновление дин списка на короткое время вешает форму. Проблема обострилась после того как помимо котировок таким же образом было добавлено онлайн обновление сделок на бирже.

Вопрос:
Есть ли какие то варианты обновления данных таблицы(дин списка), таблицы(ТЗ) на форме без каких либо подвисаний, что то типа ajax на web страницах?
Какие могут быть варианты реализации? Есть ли что-то вроде обновления клиентской формы в другом сеансе\потоке?
1 nordbox
 
25.12.17
20:58
(0) ИМХО, спрыгнуть с 1с, она для биржи и вообще такого не предназначена.
2 Max Braun
 
25.12.17
21:01
(1) Так и не прийдя к нормальному решению, я начинаю склоняться к этому. Просто задача относительно примитивная. Хотел вести учёт данных и тп. а нормальный клиентский вариант средстваи 1С сделать не получается.
3 nordbox
 
25.12.17
21:13
(2) просто 1с не для таких фокусов )
ну выпендриться можно конечно ))
писать для этого отдельную конфу, которая бы пасла биржу, а из нее, данные поступали бы например по Com в другую базу
4 Юрий Лазаренко
 
25.12.17
21:15
Выводи в поле html документа. Можно тем же Аяксом.
5 Сияющий в темноте
 
25.12.17
21:24
Если вместо динамического списка сделать таблицу значений,то ее можно обновлять построчно,исключая подвисания,но они будут в момент первоначального заполнения таблицы
кроме того,в таблице на форме не работают индексы
6 Max Braun
 
25.12.17
21:24
(4) Хотелось ещё со строками таблицы котировок сделать некоторое взаимодействие, типа установки ордеров. А через поле HTML это будет устроить сложнее. Как сказано выше
>> ну выпендриться можно конечно ))
, но это не тот путь. (
7 Max Braun
 
25.12.17
21:27
(5) Я так понимаю обновляться таблица будет так же через ПодключитьОбработчикОжидания. При первоначальном заполнении - да. В таблице ~ 46 валютных пар и для того же обновления уже имеющихся строк потребуется время... что скорее всего так же будет вызывать подвисание клиентской формы.
8 Max Braun
 
25.12.17
21:30
Идеально обновление данных это без ПодключитьОбработчикОжидания - ИМХО. Но такое кажется невозможно, при этом что б не было зависаний.
9 H A D G E H O G s
 
25.12.17
21:32
(8) Ну вы хотя бы посмотрите, попадает ли запрос в индекс.
10 H A D G E H O G s
 
25.12.17
21:33
Или в РС всего 46 записей всегда?
11 Max Braun
 
25.12.17
21:34
(10) Если биржа введет новые валюты, то количество изменится.
12 DmitrO
 
25.12.17
21:49
Боже мой. 46 записей, что там может подвисать.
И зачем там дин. список. ТЗ надо делать.
13 Max Braun
 
25.12.17
22:03
(12) Помимо котировок, теперь там ещё последнии 100(записей - другой дин список) сделок и ещё ордера где то по 50(записей - 2 других списка). Я разнёс всё по вкладкам(что б списки обновлялись только если вкладка определенная открыта) - это снизило зависания. Это работает - но не без тормозов формы.

Приходит 100 последних сделок(каждые 2 секунды обновляется список) и в этот момент надо быстро поставить ордер на продажу, а форма каждые 2 сек вызывает притормаживание - и это сильно мешает.

+ Когда эта форма(с котировками) открыта, вызовы ПодключитьОбработчикОжидания и я так понимаю обновление списка вызывает изменение курсора при работе на любой форме конфигурации.
14 DGorgoN
 
25.12.17
23:33
Толстый или тонкий клиент?
15 DGorgoN
 
25.12.17
23:35
Может так?
http://catalog.mista.ru/public/182139/

Получаем фоном потоком сведения и далее перебирая изменяем на форме.
16 Asmody
 
25.12.17
23:52
Напомните, пожалуйста, HTTPСоединение доступно на клиенте?
17 Max Braun
 
26.12.17
08:26
(14) Толстый.
18 Max Braun
 
26.12.17
08:26
(16) Доступно.
19 lodger
 
26.12.17
08:46
(17) еще и на обычных формах, небось?
20 lodger
 
26.12.17
08:47
+ (19) файловая база?
21 Max Braun
 
26.12.17
09:55
(20) Управляемые формы. Сейчас файловая. Позже будет перенесена на сервер.
22 Asmody
 
27.12.17
11:55
(18) Тогда тебе бредовая идея на раздумье: обновлять данные на форме и данные в регистре отдельно. Т.е. при открытии форма читает данные из регистра. Открытая форма обновляет данные напрямую из источника. Параллельно в фоне обновляются данные регистра. Естественно, динамический список уже не пойдет.
2 + 2 = 3.9999999999999999999999999999999...