Имя: Пароль:
1C
1С v8
Производительность вычислений в обычных и управляемых формах (файловая версия)
, ,
0 Сниф
 
10.11.17
01:13
Мне нужно написать конфигурацию для работы одного пользователя (файловая версия). База данных не используется (нет справочников, регистров и т.п.). Производится исключительно работа с Com-объектом - вызываются методы Com-объекта и обрабатываются данные, получаемые в событиях Com-объекта с помощью ДобавитьОбработчик. Далее эти данные обрабатываюся в нескольких таблицах значений. Основные операции - как раз с таблицами значений - поиск строк, перебор строк, арифметические операции и т.п.

Одинаково ли быстро в таком случае будет работать конфигурация на управляемых формах и на обычных или есть разница в производительности?
1 simol
 
10.11.17
01:17
А чего не попробуешь? ПРобовать быстрее чем ждать
2 Сниф
 
10.11.17
01:20
(1) Ну может у кого-то есть опыт. Не писать же конфу в двух вариантах.

Com-объект так устроен, что возвращает запрашиваемые данные построчно. То есть если мы вызвали определенный метод и запросили 1000 строк, событие ПолучениеДанных сработает 1000 раз и мы запишем в ТЗ 1000 строк. Отсюда и вопрос о производительности.
3 simol
 
10.11.17
01:32
1c эот такое, что убирание переноса строк вв циклах ускоряет на 10-20%

Потоу только личные опыты
4 simol
 
10.11.17
01:34
(2)Тут больше надо не управляемые или обычные, а попробовать 81,82,83
И ты насчет 81 можешь быть приятно удивлен
5 youalex
 
10.11.17
03:52
(3) Ускоряет в режиме отладки, или вообще в принципе?
6 Antony8x
 
10.11.17
07:35
(5) а есть разница?
7 Филиал-msk
 
10.11.17
07:51
(0) В данном случае обычные формы в целом быстрее, так как отсутствует передача и контроль контекста при "серверных" вызовах. С управляемыми формами тебе придется забавляться вприсядку с теми же таблицами значений.
8 1Снеговик
 
гуру
10.11.17
08:11
(7) в УФ все делается в контексте сервера, вот и все. Зачем на клиент таблицы кидать? Отображаться они и так будут, если надо.
9 1Снеговик
 
гуру
10.11.17
08:12
Разница лишь в удобстве программирования интерфейса.
В обычных формах можно запариться все рисовать. А с управляемыми просто надо уметь работать.
10 1dvd
 
10.11.17
08:13
(8) а если СОМ идёт с клиента?
11 youalex
 
10.11.17
08:19
(6) Есть подозрение, что таки, да
12 1Снеговик
 
гуру
10.11.17
08:21
Плюс насколько важны асинхронные вызовы.
Не знаю, работают ли в обычном интерфейсе немодальные вызовы через ОписаниеОповещения.
13 Сниф
 
10.11.17
10:18
(10) СОМ как раз и будет на клиенте. Разве можно на сервере добавить обработчки событий СОМ-объекта через ДобавитьОбработчик?
14 TormozIT
 
гуру
10.11.17
10:24
(0) Обычные формы однозначно быстрее.
15 Fragster
 
гуру
10.11.17
10:30
если там арифметика, то может ну его нафиг, этот 1с, а использовать дельфи/си/что угодно другое компилируемое?
16 Сниф
 
10.11.17
10:38
(14) приму к сведению, спасибо

(15) для каждой задачки изучать язык - голова треснет...
17 Fragster
 
гуру
10.11.17
11:13
(16) что там изучать-то?
18 Fragster
 
гуру
10.11.17
11:14
да и на производительность насрать по большому счету, получается. и на требование установленной платформы о_О.
19 Злопчинский
 
10.11.17
23:40
(2) не знаю как в 8 но в клюшках если заполняешь тз на форме то тз надо сделать невидимой и заполнить, а потом видимость включить. Ускорение на порядок
20 kev789
 
10.11.17
23:47
(17) Тут ветка была, отказ от модальности в С# решается гораздо легче.
А в языке 1С это какой то треш (Новый ОписаниеОповещения)
21 lodger
 
11.11.17
13:56
ОФ: просто код, происходит все линейно, модально и синхронно.
УФ: из-за асинхронности, немодальности и клиент-серверности придется в 3 раза больше кода писать и контролировать в каком контексте идет работа, данные формы коллекция или таблица значений, выведенная на форму таблица живет на сервере, обход строк таблицы на клиенте неразумен и тому подобные заморочки, которые в простых случаях усложняют разработку в разы, а исполнение кода в линейном синхронном стиле будет замедленно из-за беготни между контекстами.

(0) вопрос. оно вам надо?
22 breezee
 
11.11.17
14:37
(0) Рекомендую не использовать ком. Если есть возможность юзать веб сервисы или еще что-нибудь "по новее" лучше это юзать, ком довольно медленный. По формам не подскажу. А у вас будет серверная база или все на клиенте? И какие объемы данных будут? Может вам вообще 1с не нужен, если вы без конфигурации будете работать?
23 breezee
 
11.11.17
14:40
(21) А почему обход строк на клиенте не разумен? На счет в 3 раза больше кода, верно, и заморочки есть, но не совсем в 3 да и создание клиентской и серверной процедуры с подсказкой за один клик делается. Да и если все вынесено в модуль объекта/общие модули то проблем особо и не будет.
24 Сниф
 
12.11.17
22:21
(22) ком отдает данные построчно, скорей всего она работает на сокетах... Очень шустрый.
25 AlvlSpb
 
12.11.17
22:35
(24) Не встречал шустрого ком. На небольшом объеме работает еще приемлемо, но если строк более 1000, то тормозит и чем дальше в плюс от 1000 тем хуже, ждать выполнения устанешь
26 Zamestas
 
12.11.17
23:10
(0) А 1С точно для это нужна?
27 SiAl-chel
 
13.11.17
08:52
(0) А зачем конфигурация, если судя по описанию задачи, можно всё сделать на форме внешней обработки, которая может использоваться в любой конфигурации?
28 1Снеговик
 
гуру
13.11.17
09:13
(21) "а исполнение кода в линейном синхронном стиле будет замедленно из-за беготни между контекстами"

Так работай в серверном контексте, кто не дает?

И сравни сначала с беготней и без беготни, потом утверждай.
29 1Снеговик
 
гуру
13.11.17
09:14
Потом это все дела захочется на сервер перетащить, и все переделывать-переписывать.