Имя: Пароль:
1C
1С v8
Где хранится счетчик транзакций в 1С?
0 JUST4LOL
 
26.11.21
07:09
Понятно, что есть счетчик, но как система понимает какое сейчас число у счетчика? Где хранится эта информация?
1 ДенисЧ
 
26.11.21
07:09
А что такое "счётчик транзакций"?
2 JUST4LOL
 
26.11.21
07:11
НачатьТранзакцию();        // Начало транзакции - счетчик становится равным 1
...
НачатьТранзакцию();        // Счетчик увеличивается на 1 и становится равным 2
...
ЗафиксироватьТранзакцию(); // Счетчик уменьшается на 1 и становится равным 1
...
и т.д
3 Ненавижу 1С
 
гуру
26.11.21
07:11
(1) Может быть счётчик вложенности, а может быть номер в ЖР. Автор ничего нам не пояснил.
4 Ненавижу 1С
 
гуру
26.11.21
07:12
(2) тебе зачем?
5 JUST4LOL
 
26.11.21
07:12
(4) Интересно
6 ДенисЧ
 
26.11.21
07:12
(2) 1с не умеет вложенные транзакции. Так что вопрос ни о чём.
7 JUST4LOL
 
26.11.21
07:13
(6) Причем тут вложенные, нет никаких вложенных, есть счетчик и есть вопрос, где хранится это значение счетчика?
8 Ненавижу 1С
 
гуру
26.11.21
07:15
(6)(7) ну псевдовложенные

https://its.1c.ru/db/metod8dev#content:2334:hdoc
9 ДенисЧ
 
26.11.21
07:18
(7) Если ты начал одну транзакцию, а потом, не закрыв, начал вторую - это в русском языке называется "вложенные"
10 JUST4LOL
 
26.11.21
07:27
(9) Ты мне это зачем объясняешь? У меня другой вопрос вообще ))
11 ДенисЧ
 
26.11.21
07:28
(10) см (6)
12 JUST4LOL
 
26.11.21
07:30
(11) Ты себя так развлекаешь?) Завидую людям, у которых есть время на то, чтобы целыми днями нести бред в комментариях, когда сам ничего не знаешь))
13 Bigbro
 
26.11.21
07:32
ну так лезь в отладчик и смотри что происходит при выполнении НачатьТранзакцию()
вряд ли 1с это документирует, поскольку пользователю туда лезть категорически не положено.
14 ДенисЧ
 
26.11.21
07:35
(12) То есть бредовые вопросы задавать можно, а отвечать на них уже нельзя?
Ты давно у психиатра был в крайний раз?
15 Ненавижу 1С
 
гуру
26.11.21
07:37
(2) счётчик хранится во внутренней переменной сеанса (сервера или толстого клиента возможно). Из языка 1с недоступен вроде как. Если хочется можешь использовать свой счётчик.
16 JUST4LOL
 
26.11.21
07:41
(15) благодарю за ответ!
17 JUST4LOL
 
26.11.21
07:51
Вдруг кому тоже пригодится,
Есть менеджер транзакций ( внутренний объект платформы ), который управляет транзакцией, у него есть свойство «Глубина», если оно больше 1, то транзакция считается вложенной.
18 Ненавижу 1С
 
гуру
26.11.21
08:00
(17) как эти знания помогут?
https://habr.com/ru/post/419715/
19 JUST4LOL
 
26.11.21
09:16
(18) Классная статья, читал)
20 pechkin
 
26.11.21
09:17
Ну есть же менеджер блокировок и транзакций
21 Мимохожий Однако
 
26.11.21
09:19
(17) Какое практическое значение этой информации кроме теоретического наполнения? Мне реально интересно
22 TormozIT
 
гуру
26.11.21
09:57
Еще одна классная статья на тему https://infostart.ru/1c/articles/1026771/
23 JUST4LOL
 
26.11.21
17:55
(21) Только теоретическое
24 JUST4LOL
 
26.11.21
17:56
(22) спасибо, как раз в этой теме я и нашел ответ)
25 Peshalkin
 
26.11.21
18:01
(14) (21) есть просто люди которым интересны нюансы и они хотят это знать, а есть дрочеры типо вас, которые будут жертвовать в огромной компании производительностью, ради того, чтобы меньше информации себе в голову поместить.
26 ДенисЧ
 
26.11.21
18:26
(25) Для высокой производительности нумерация транзакций не нужна вообще
27 ildary
 
26.11.21
19:09
(26) Связь между производительностью и нумерацией транзакций прямая - пока программист занят задаванием вопросов типа (0) - он не пишет код, влияющий на производительность.
28 Мимохожий Однако
 
27.11.21
09:23
(25) Ты хамишь
29 ДенисЧ
 
27.11.21
09:32
(27) Дзыынь! ))))
30 acht
 
27.11.21
09:41
(27) >  код, влияющий на производительность
На производительность влияет любой код.
31 ДенисЧ
 
27.11.21
09:58
(30) Невыполненный код на производительность не влияет.
А ненаписанный - тем более.
32 acht
 
27.11.21
10:12
(31) Не, так ты дзен не постигнешь...

Ненаписаный код влияет на несуществующую производительность.
33 ДедМорроз
 
27.11.21
12:42
Основная проблема вложенных транзакций в том,что если произошло исключение,то даже для формирования внятного сообщения об ошибке (когда будет обращение к базе для получения представления) нужно откатить все транзакции,иначе мы видим замечательное сообщение в данной транзакции уже происходили ощибки на вызове функции записи в журнал регистрации.
34 mistеr
 
27.11.21
15:37
(33) Кто мешает получить все "представления" заранее.
35 ДедМорроз
 
27.11.21
18:56
(34) можно и вообще все данные из базы заранее получить,но почему-то так никто не делает.
Опять же,в функцию ЗаписьЖурналаРегистрации передается ссылка,а не представление.
36 Йохохо
 
27.11.21
19:06
(35) веришь или нет, но в (22) все твои вопросы рассмотрены
37 ptiz
 
27.11.21
19:18
(33) Да. Жаль, что нельзя в транзакцию связать только выбранные объекты/таблицы. Чтобы при сбое транзакции по этим объектам, можно было писать логи в служебный регистр.
38 DrZombi
 
гуру
28.11.21
10:28
(2) Прикольно, не стоит играться с транзакциями в там ключе :)
39 ДенисЧ
 
28.11.21
10:29
(37) Это была бы оооочень странная транзакция...
40 TormozIT
 
гуру
28.11.21
21:52
(34) Накладные расходы. Например чтение представлений нескольких ссылочных объектов без нужды делать не хорошо.