|
v7: опять шляпа с регистрами | ☑ | ||
---|---|---|---|---|
0
monsterZE
01.08.14
✎
14:53
|
сабж. чет не пойму, почему так происходит..
в этот раз взаиморасчеты. в RG все норм.. ибо выполняется приход расход. в RA появились записи на чужеродный ИД.. типа движение сделал документ счет_фактура. причем следом идет нормальная запись. =( |
|||
1
Ёпрст
01.08.14
✎
14:56
|
ну и ладно.
База какая, скуль, дбф ? |
|||
2
monsterZE
01.08.14
✎
14:57
|
база скуль
|
|||
3
monsterZE
01.08.14
✎
14:59
|
первый раз такое.. (началось с регистра резервов) два года работало.. никаких проблем не доставляло
|
|||
4
Ёпрст
01.08.14
✎
15:01
|
||||
5
Ёпрст
01.08.14
✎
15:02
|
ну а так, при желании, можно сделать движение в регистр любой поделкой, хоть штатно (http://infostart.ru/public/79515/), хоть через прямой запрос
|
|||
6
Ёпрст
01.08.14
✎
15:02
|
Хотя у тебя, хз как так получилось
|
|||
7
monsterZE
01.08.14
✎
15:03
|
||||
8
monsterZE
01.08.14
✎
15:04
|
в том то и дело, что я (и вроде никто другой) напрямую в регистры не лазиет =(
|
|||
9
monsterZE
01.08.14
✎
15:04
|
спасибо за ссыль!
|
|||
10
Ёпрст
01.08.14
✎
15:06
|
а в журнале этот док ежели найти, у него в 1sjourn флаги взведены у этого регистра и счетчик движений ?
|
|||
11
Ёпрст
01.08.14
✎
15:07
|
ежели нет - то действительно "левая" запись, если есть...то
|
|||
12
monsterZE
01.08.14
✎
15:13
|
все RF в журнале по нулям в ACTCNT 0
|
|||
13
monsterZE
01.08.14
✎
15:14
|
если бы в базу лазали по сети.. можно было списать на какие-то ошибки оборудования.. но все крутится в терминале.. есдинственно сейчас начи решили слить все в одну базу и к ней дохрена подключений =(( ~150
|
|||
14
Ёпрст
01.08.14
✎
15:16
|
где-то я это ужо видел
|
|||
15
Ёпрст
01.08.14
✎
15:16
|
и иименно с видом дока в скуле
|
|||
16
monsterZE
01.08.14
✎
15:19
|
ну я так предполагаю - могу просто прибить эти записи из RA
т.к. итоги у меня нулевые, ничего пересчитывать не нужно |
|||
17
Ёпрст
01.08.14
✎
15:20
|
можешь
|
|||
18
Ёпрст
01.08.14
✎
15:21
|
только желательно перед этим проверит, не от нужного ли они документа.. iddoc точно от счетфактуры ?
|
|||
19
monsterZE
01.08.14
✎
15:22
|
(18) да, это однозначно
вечером еще обработкой пройдусь.. а то оно рекомендует, чтобы в базе никого не было |
|||
20
monsterZE
01.08.14
✎
15:25
|
iddocdef=730
T=DH730 |Документ Счет_фактура |DH730 | |
|||
21
Ёпрст
01.08.14
✎
15:34
|
тогда странно
|
|||
22
Ёпрст
01.08.14
✎
15:34
|
уриба нема ?
|
|||
23
Ёпрст
01.08.14
✎
15:35
|
хотя, записи приход и расход сделали..хз в общем
|
|||
24
monsterZE
01.08.14
✎
15:36
|
не, ничего такого..
|
|||
25
mehfk
01.08.14
✎
15:50
|
(0) Так бывает когда используются транзакции там, где нельзя их использовать. В семерке. Плавали - знаем.
|
|||
26
mehfk
01.08.14
✎
15:54
|
Определяйте по логике, какой вид документа у вас делает такие движения в этом регистре и потом ищите транзакции в обработке проведения.
|
|||
27
monsterZE
01.08.14
✎
15:57
|
этот регистр по факту двигают два разных расходника и приход
за наводку спасибо, просмотрю процесс проведения но у самого счета фактуры в модуле проведения ессно ничего такого нет.. фактически он пустой |
|||
28
vcv
01.08.14
✎
19:31
|
Было что-то подобное, когда в транзакции документы записывались и проводились. То ли где-то в глубинах глобальника вложенная транзакция получилась, то ли еще что.
|
|||
29
Злопчинский
01.08.14
✎
20:40
|
какие-то хрени про в ложенные транзакции.. нету в семерке никаких вложенных транзакций. или есть транзхакция или нет.
|
|||
30
КонецЦикла
01.08.14
✎
20:47
|
(26) Странно... обработка проведения - это и есть одна транзакция. Никогда не сталкивался, может не применял такое...
|
|||
31
vcv
01.08.14
✎
21:09
|
(29) Понимаешь, у шаловливых лапок есть всё, в том числе многократно вложенные НачатьТранзакцию - Зафиксировать/ОтменитьТранзакцию. Только не работает нихрена. А так, формально, вложенные :)
|
|||
32
vcv
01.08.14
✎
21:13
|
Когда-то у меня был примерно такой косяк:
По кнопке Провести в документе вызывалась функция, которая начинала транзакцию, в ней дёргала сказала Записать(), потом Провести(), и, в случае СтатусВозврата()=0, ОтменитьТранзакцию. Работало это жутко криво, в регистры записывалась фигня типа (0). Притом, как я понимаю, только в случае, если запись проходила успешно, а проведение обламывалось. Может, конечно, и не такая причина была, но, после избавления от транзакции, больше подобных проблем не возникало. |
|||
33
Злопчинский
01.08.14
✎
21:17
|
(31) прально, потому что всего одна транзакция. Вова Ходаков может подробнее рассказать как там внутрях устроено.
|
|||
34
FN
01.08.14
✎
21:20
|
была такая же проблема при проведении стороннего документа из модуля проведения документа. при откате такой вложенной транзакции как то неправильно снимается блокировка с таблицы, которая содержит айди новых незаписанных документов. при этом и происходит запись в регистр с чужим айди. отмена проведения проблемного дока не помогает, так как в жорнале не указано что нужно чистить 'левый' регистр.
|
|||
35
Z1
01.08.14
✎
21:27
|
(29) Вложенные Транзакции на уровне языка v77 есть
НачатьТранзакцию(); // уровень 1 операторы1 НачатьТранзакцию(); // уровень 2 операторы2 ЗафиксироватьТранзакцию(); // уровень 2 операторы3 ЗафиксироватьТранзакцию(); // уровень 1 Все дело как их обрабатывает ms sql ( как в dbf нк знаю) В ms sql при откате от транзакции с этого места вложенности все транзакции закрываются как откатом транцакции. Это как бы такая особенность ms sql. Почему так сделали не знаю.Зная такое поведение все становиться прозрачным и понятным. Также есть еще и неявная вложенная транзакция когда в модуле проведения одного документа проводят другой документ. как бы все работает по тому же изложенному выше правилу : В ms sql при откате от транзакции с этого места вложенности все транзакции закрываются как откатом транцакции. |
|||
36
ДенисЧ
01.08.14
✎
21:28
|
"когда в модуле проведения одного документа проводят другой документ. "
.. то мы получаем (взаимо)блокировку |
|||
37
Z1
01.08.14
✎
21:34
|
(36) не получаем.
Если вызвать явно 1с ругается по моему и не дает так делать, если обмануть 1с : использовать Форма.Открыть и в модуле Приоткрытии() вызывать Провести() то все срабатывает но с последствиями как описанро выше. ИХМО ну как бы делать так не надо , но можно. |
|||
38
Z1
01.08.14
✎
21:37
|
(34) В 35 объяснение почему это происходит
( точнее может происходить если произойдет откат транзакции) |
|||
39
ДенисЧ
01.08.14
✎
21:38
|
(37) В твоём способе мы имеем всего лишь две последовательные транзакции
|
|||
40
Z1
01.08.14
✎
21:42
|
(39) можешь проверить по профайлеру
1 уровень транзакции : выполнение модуля проведения 2 уровень транзакции вызывается методом Провести() в модуле ПриОткрытии() заканцивается проведение вызванного документа заканцивается проведение главного документа |
|||
41
Z1
01.08.14
✎
21:49
|
Т.е. как бы вложенные транзакции в 1с 77 (ms sql) есть.
Они ( НачатьТранзакцию(); ЗафиксироватьТранзакцию(); ) являются обертками над begin tran end tran и ведут себя вложенные транзакции один в один как описано работа вложенных транзакций ms sql |
|||
42
КонецЦикла
01.08.14
✎
22:30
|
(41) Было бы странно, если бы вели себя иначе :)
В общем не делайте кривых лисопетов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |