|
Может ли НачатьТранзакцию-ЗавершитьТранзакцию в УФ быть не в одном серв. вызове | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
15.09.15
✎
17:51
|
У меня есть код на клиенте, который в УФ генерирует последовательно документы. Нужно чтобы если один в цепочке не создался, остальные тоже отменились. Логично использовать транзакции.
Вообще блок НачатьТранзакцию-ЗавершитьТранзакцию может в УФ быть в нескольких вызовах сервера, или должен быть только в одном вызове сервера? |
|||
1
SUA
15.09.15
✎
17:55
|
нахер
сожрать все на клиенте - закинуть на сервер - генерить там хоть последовательно хоть через 1 - и в одной транзакции |
|||
2
Casey1984
15.09.15
✎
17:55
|
Способов идентификации транзакций нет - ответ очевиден.
|
|||
3
Гений 1С
гуру
15.09.15
✎
18:15
|
(2) угу
|
|||
4
Ненавижу 1С
гуру
16.09.15
✎
08:47
|
если он переменные объекта уничтожают после окончания вызова сервера, какие уж транзакции
|
|||
5
Фокусник
16.09.15
✎
08:51
|
(0) Зачем возвращаться внутри "цепочки" на клиент, пользователю процент выполнения показать?
|
|||
6
Гёдза
16.09.15
✎
09:58
|
транзакция с выходом на клиента?
Слава богу что такое не возможно ))) |
|||
7
Матиус
16.09.15
✎
10:21
|
(0) Спросил в транзакции пользователя о чем-то, а пользователь ушел поссать, будет через 3 часа. Вся организация ждет завершения транзакции.
|
|||
8
scanduta
16.09.15
✎
10:26
|
Ты же Гений 1с ....сам все должен знать
|
|||
9
Остап Сулейманович
16.09.15
✎
10:26
|
(7) Транзакция абсолютно не означает блокировки на время выполнения. Блокировка (в случае оптимистической блокировки) накладывается только в момент записи данных.
ЗЫ Это никак не означает, что в 1С можно не теряя контекста нырять с клиента на сервер и обратно. |
|||
10
Гений 1С
гуру
16.09.15
✎
10:32
|
(9) (8) ок. я убедился в своих худших опасениях, ну да ладно. ;-) не буду переписывать. удалять лишние документы ручками.
|
|||
11
Ненавижу 1С
гуру
16.09.15
✎
10:35
|
(10) даже в обычном приложении нельзя начать транзакцию по нажатию первой кнопки, а закончить по нажатию второй
|
|||
12
Остап Сулейманович
16.09.15
✎
10:37
|
(10) Что значит "убедился в своих худших опасениях"? Поведение системы при передаче управления с клиента на сервер и обратно вполне подробно задокументировано. Что там убеждаться? Нужно просто иногда читать документацию.
|
|||
13
Остап Сулейманович
16.09.15
✎
10:38
|
(11) Зато внутри транзакции можно понажимать 100500 разных кнопок. И откатить или завершить транзакцию можно по ИНТЕРАКТИВНОМУ событию.
|
|||
14
Ненавижу 1С
гуру
16.09.15
✎
10:47
|
(13) если не модальные вызовы, то, имхо, нет - как только закончится выполняться интерактивное событие - то все, транзакция откатывается
|
|||
15
Гёдза
16.09.15
✎
10:49
|
Если не закрыть одну транзакцию внутри 1 процедуры, то она откатится автоматом (по крайней мере в 1с именно так)
|
|||
16
Остап Сулейманович
16.09.15
✎
10:49
|
(14) Ясен перетц, что внутри транзакции только модальные.
|
|||
17
Ненавижу 1С
гуру
16.09.15
✎
10:51
|
(16) ну так в 1С это только, можно в дельфях (да и неважно где) такое запросто сделать
|
|||
18
Матиус
16.09.15
✎
10:56
|
(9) Не надо быть семи пядей во лбу, чтобы догадаться что в транзакции будут что-то писать.
|
|||
19
Ненавижу 1С
гуру
16.09.15
✎
10:57
|
(18) бывают транзакции на чтение и они гораздо долгие чем на запись обычно
|
|||
20
Матиус
16.09.15
✎
10:59
|
(19) Только чтение без последующей записи? Зачем? Можно примеры?
|
|||
21
ДенисЧ
16.09.15
✎
11:01
|
(20)
выбрать Ссылка Из справочник.Номенклатура где условие ДЛЯ ИЗМЕНЕНИЯ Как пример... |
|||
22
Остап Сулейманович
16.09.15
✎
11:02
|
(18) Это таки да. Но блокировать вначале транзакции бывает не всегда нужно. Чаще всего блокировки накладываются при записи. Именно так работают автоматические блокировки 1С.
|
|||
23
Ненавижу 1С
гуру
16.09.15
✎
11:03
|
(20) чтобы много читать согласованные данные
|
|||
24
Матиус
16.09.15
✎
11:08
|
(21) ДЛЯ ИЗМЕНЕНИЯ подразумевает последующую запись
|
|||
25
Матиус
16.09.15
✎
11:10
|
(23) читать одним запросом?
|
|||
26
Гёдза
16.09.15
✎
11:10
|
(19) в 8.3 транзакции на чтение ничего не блокируют
|
|||
27
Гёдза
16.09.15
✎
11:11
|
(26) упр блокировки, без совместимости
|
|||
28
Остап Сулейманович
16.09.15
✎
11:13
|
(24) Птля...
Вот пример из серии "для больших и маленьких" : Проведение расходной накладной. Читаем остатки. Количественные и суммовые. Рассчитываем себестоимость списания и проверяем достаточно ли количественных. Если недостаточно - оппа. Откатываем транзакцию даже не пытаясь что-либо записать. |
|||
29
Матиус
16.09.15
✎
11:16
|
(28) ... а если достаточно пишем. не пример
а существуют примеры на чтение которые гораздо долгие? |
|||
30
Остап Сулейманович
16.09.15
✎
11:16
|
(29) Йес.
|
|||
31
Матиус
16.09.15
✎
11:17
|
(30) где примеры?
|
|||
32
ДенисЧ
16.09.15
✎
11:18
|
(31)
выбрать р1.*, р2.* Из регистрНакопления.УчетЗатрат как р1,регистрНакопления.УчетЗатрат как р2 |
|||
33
Остап Сулейманович
16.09.15
✎
11:18
|
(31) в ЗУПе их миллионы.
|
|||
34
Матиус
16.09.15
✎
11:19
|
(33) на чтение без записи? Модуль + строка
|
|||
35
Fedor-1971
16.09.15
✎
11:21
|
(29) практически любой сложный отчёт. Например, оборотно-сальдовая ведомость за 2 года или аналитические построения по товарам, расчётные листки или ведомость за большой период
|
|||
36
Матиус
16.09.15
✎
11:26
|
(35) Где в оборотке включается транзакция? Где в расчетках транзакции? Напишите конфигурацию+модуль+строку
Пока бух формирует отчет, все ждут? |
|||
37
Остап Сулейманович
16.09.15
✎
11:35
|
(36) Еще раз для непонятливых.
НачатьТранзакцию и Заблокировать данные это не одно и тоже. Именно потому пока бух формирует отчет остальные могут работать и на формирование отчета это никак не отразится. |
|||
38
Остап Сулейманович
16.09.15
✎
11:38
|
||||
39
Остап Сулейманович
16.09.15
✎
11:38
|
||||
40
Остап Сулейманович
16.09.15
✎
11:39
|
+ (39) И еще 6 экранов. Их тоже показывать? Или у себя включишь такой же поиск и посмотришь сам?
|
|||
41
Матиус
16.09.15
✎
11:40
|
(37) В чем смысл транзакции без блокирования данных?
|
|||
42
Остап Сулейманович
16.09.15
✎
11:43
|
(41) Получить связанные данные. Если выборка сложная. При выборке из одной плоской таблицы этого скорее всего не нужно.
Для сложных выборок : Пока читаем данные из первой таблички, данные в 23-ей может кто-то изменить. И получим кашу. А так в транзакции прочитали и последующие корректировки никак не влияют на текущую выборку. |
|||
43
SeraFim
16.09.15
✎
11:48
|
Вот блин... А я надеялся некоторым юзверям поставить:
ПриНачалеРаботыСистемы - НачатьТранзакцию(); ПриЗавершенииРаботыСистемы - ОтменитьТранзакцию(); |
|||
44
Остап Сулейманович
16.09.15
✎
11:54
|
(43) Было бы смешно...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |