Имя: Пароль:
1C
1С v8
Попытки, транзакции и скорость работы мобильной платформы.
0 shulerr
 
22.12.14
14:31
Всем привет и результативного понедельника. Замерял ли кто-нибудь влияние попыток и транзакций на скорость выполнения кода? В каких ситуациях их лучше не использовать? Есть ли методы оптимизации кода для мобильной платформы, отличные от стандартных? Заранее спасибо).
1 Ник второй
 
22.12.14
14:32
В однопользовательской работу вообще пофиг, что есть транзакция, что нет.
2 shulerr
 
22.12.14
14:36
(1) это из-за блокировок получается? Сам механизм транзакции не подразумевает запись данных "в сторонку" и удаление их при ошибке? Если так, то работать должно раза в 2 медленнее?
3 shulerr
 
22.12.14
15:21
Ну вот есть такой фреймворк, Qt называется. За основу взят С++. Там одно время было запрещено использование try по причине тормозов, видимо. В .net тоже не рекомендуют ими злоупотреблять. Так где же грань добра и зла?))
4 Fragster
 
гуру
22.12.14
15:23
(1) нет
5 shulerr
 
22.12.14
15:56
(4) почему? Где почитать?
6 hhhh
 
22.12.14
15:58
(3) вы по-нормальному делайте. Сервер на обычном компьютере. А на мобильных клиенты. Тогда на них никаких попыток не будет.
7 Fragster
 
гуру
22.12.14
16:01
(5) потому что нужно хранить изменения, которые нужно разом откатить по исключению, или применить по завершению транзакции
8 Fragster
 
гуру
22.12.14
16:01
(6) скажи это мобильным агентам/экспедиторам и прочим
9 Ник второй
 
22.12.14
16:01
(4) Копеечную разницу не учитываем.
10 Fragster
 
гуру
22.12.14
16:02
(9) она копеечная, если один объект менять. а если 1000000, то отнюдь не копеечная
11 Ник второй
 
22.12.14
16:04
Представил мобильного агента изменяющего 1000000 записей за раз.
)
12 shulerr
 
22.12.14
16:07
(11) Обмен данными на мобильном устройстве в руках представителя именно это и делает. Цены/скидки/остатки и т.д.
13 shulerr
 
22.12.14
16:11
С транзакциями понятно. А попытки?
14 Ник второй
 
22.12.14
16:24
(12) У Вас что вся база пересчитывается при каждом обмене? 0_о
15 Fragster
 
гуру
22.12.14
16:25
(14) ну придут тебе обновленные цены/остатки на 100000 номенклатуры
16 Fragster
 
гуру
22.12.14
16:26
еще какая-нибудь лажа
17 shulerr
 
22.12.14
16:31
Не, не вся. Там просто справочник товаров большой. У каждого клиента своя скидка на разные позиции товара. Т.е., количество записей в регистре скидок = количество товаров * количество клиентов. Плюс остатки. А так, то, что нужно изменить, выбирается запросом. Прочитанные данные в виртуальную таблицу кладутся. Достаточно быстро работает.
18 Ник второй
 
22.12.14
16:48
(17) И что эта вся белеберда в разных таблицах хранится?
19 shulerr
 
22.12.14
16:51
(18) в разных. Справочники, регистры сведений.. Все как обычно. Только мы от темы отошли.
20 Ник второй
 
22.12.14
16:52
(19) Ты же в сторону скорости смотришь, вот одна явная загвоздка.
21 UnknownNick
 
22.12.14
16:56
хахах, смешно, кросс-платформенный конструктор и скорость работы, что-то тут лишнее :)
22 shulerr
 
22.12.14
17:01
(20) Не очень понял. А в чем загвоздка?
(21) 5 торгпредов уже неделю бэтатестят. Говорят, всё норм. За исключением одной ошибки, которую не могу отловить никак. Для этого нужно засунуть запись данных в транзакции и при возникновении беды выдавать осмысленные сообщения. По умолчанию получаем только "В приложении возникла ошибка". По этому и спрашиваю, а не станет ли моё чудо-творение сильно тормозить, если я расставлю эти транзакции и попытки где мне нужно?
23 Ник второй
 
22.12.14
17:12
(22) Ну как бы миллион таблиц , когда нужно только информацию показывать агенту.
Я бы остатки загнал в справочник Номенклатуру, тогда проще делать форму подбора, и она будет явно намного быстрее отрабатывать.
24 Ник второй
 
22.12.14
17:13
(22) Давай что за ошибка.
25 Garykom
 
гуру
22.12.14
17:13
(17) посоветовал бы вынести этот "большой" наружу из мобильной 1С и засунуть в туже sqlite
26 UnknownNick
 
22.12.14
17:17
чтобы все работало надежно и моментально быстро, нужно использовать свои визуальные таблицы и свой движок базы данных, тогда будет результат, как в агентоиде.
27 Garykom
 
гуру
22.12.14
17:19
(26) угу и цена такая же будет а не "почти бесплатно" и так же дописать/допилить легко будет
28 shulerr
 
22.12.14
17:20
(25) на это мы с ними не договаривались. Другой порядок цен. (24) "В приложении возникла ошибка", после чего вылет. Пока это всё. Завтра зальем релиз с внятными сообщениями. Не получится - логи сделаю.
(26) вот блин, мне бы таких продажников...
29 Ник второй
 
22.12.14
17:36
(26) ню ню )))
30 DitriX
 
22.12.14
17:52
"В приложении возникла ошибка"
Это вы НИКАК не отловите.
Никак, это значит - ВООБЩЕ НИКАК :)
это приблизительно тоже самое, что сделать зацикливание в стационарной 1С, а потом ловить из самой же 1С - краши, при чем краши всего приложения в целом.
Но в стационарной хоть журнал логов есть, а в мобильной - пусто.

Так что выход только один - документаруйте каждый шаг - записью данных в лог (где лог - некий регистр сведений).

Например:
ЗагрузкаДанных()
Лог(1)
НайтиПоКоду()
Лог(2)
Записать()
Лог(3)

И если после падения в крит - вы сможете понять, на каком этапе был крит.
Для удобства, можно писать данные в logcat андроида, что бы не плодить не нудные регистры.
Но это уже только при помощи утилит можно делать.

И да, скорость снизится, но у вас выхода нет :)

С понедельником :)
31 DitriX
 
22.12.14
17:53
но а вообще, на 8.3.5 - у меня давно критов не было, очень давно.
32 shulerr
 
22.12.14
18:07
(31) птицу сделаем "Вести журнал отладочной информации" в настройках. или как-нибудь еще непонятнее, чтобы не отключали)). Регистр тереть периодически.  А вообще, спасибо.
33 shulerr
 
23.12.14
07:39
Кстати, а где лежит база данных? И в каком формате?
34 UnknownNick
 
23.12.14
07:56
какая разница, там только библиотек в развернутом виде на 100 мб. на надежность скорострельность смело забиваем болт.
35 shulerr
 
23.12.14
08:05
(33)+ может ее открыть чем-то можно?
36 DitriX
 
25.12.14
01:30
(33) можно открыть из 1СTools. Вытащить конфу (но потом ее в стационарной не откроете).
Можно сделать chkdbl на этой базе. Она ее сожмет и проверит целостность.
Это, по сути, формат файловой 1С стационарной.

Но доступ можно получить только под рутом.
37 tridog
 
25.12.14
09:38
(1) Куясе. А как же ACID?