Таблица 1sjourn ошибка обращения к данным при транзакции выполняемой другим пользователем

   Воин 1С

17.08.06 — 14:46

Последние несколько дней база стала давать предупреждение:При выполенении произошла ошибка! Таблица 1SJourn Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.Повторить попытку? [Да Нет].Появляется при проведении доков, выполнении отчетов. Если кто встречал такую фичу, подскажите как лечить

   AeDen

1 — 17.08.06 — 14:47

Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.

   zbv

2 — 17.08.06 — 14:47

В поиске смотрел?

   Воин 1С

3 — 17.08.06 — 14:49

(1) Спасибо а то я думаю и что это значит…

   Воин 1С

4 — 17.08.06 — 14:49

(2) Не пока ща гляну

   Воин 1С

5 — 17.08.06 — 14:51

В поиске ничего подходящего нету;(

   AeDen

6 — 17.08.06 — 14:51

(3) Ну, думай дальше. Кто мешает?

   Воин 1С

7 — 17.08.06 — 14:59

Ну что, неужели никто не встречал ничего похожего?

   GenV

8 — 17.08.06 — 15:03

(5) Плохо смотрел. Ищи: Ошибка обращения к данным при транзакции 1С

   Воин 1С

9 — 17.08.06 — 15:07

(8) Спасиб, я глянул. Насколько понял, коллизия призаписи доков в табицу, используемую для УРБД. Но, почему она стала появляться? Раньше ведь не было..

   GenV

10 — 17.08.06 — 15:19

(9) См.(1) Ошибка <одновременного> обращения к <различным> данным при транзакиции, выполняемой другим пользователем. Темерь понятно?

   ламеры спрашивают

11 — 17.08.06 — 15:48

(10) Почему «к <различным>». Наверное хотел сказать «к одним и тем же»?

   Воин 1С

12 — 17.08.06 — 15:52

(10)Нет, поясни плиз

   GenV

13 — 17.08.06 — 15:52

(11) различным — значит не только к таблицам УРБД :)

   Воин 1С

14 — 17.08.06 — 15:54

(13) В 1SJORn хранятся записи используемые урбд.Непонятно почему это появилось и что с ним делать;)

   GenV

15 — 17.08.06 — 15:56

(14) … Да тех, кто в бронепоезде: несколько пользователей хотят одновременно получить одни данные. Возникает транзакция (блокировка данных). Теперь-то понятно?

   ламеры спрашивают

16 — 17.08.06 — 15:57

(13) ОК

   AeDen

17 — 17.08.06 — 15:57

(15) Rnj-nj gsnftncz ljcnexfnmcz lj lfyys[? rjnjhst ,kjrbhjdfys nhfypfrwbtq/

   Воин 1С

18 — 17.08.06 — 15:57

От тех, кто в бронепоезде: Почему этой ошибки раньше не было?

   Воин 1С

19 — 17.08.06 — 15:58

Сейчас она постоянно вылезает на экран

   GenV

20 — 17.08.06 — 15:59

(19) Сейчас только один пользователь или кто-то что-то проводит?

   zalex

21 — 17.08.06 — 15:59

(14) В 1SJORN хранятся журналы, все.

(18) Наиболее вероятно, что в одной из обработок проведения ты впендюрил Вопрос() или Предупреждение(). Обработка это транзакция, и она не закончится, пока пользователь не закроет окошко вызванное одной из этих функций. Пока один пользователь не закончит транзакцию, никто другой не может ее начать.

   Воин 1С

22 — 17.08.06 — 16:01

(21) Ничего я не впиндюривал, я конфу сам полностью писал.

   zalex

23 — 17.08.06 — 16:02

(22) Во-от… :)

   AeDen

24 — 17.08.06 — 16:02

+(17) Разные пользователи пытаются обратиться к одним и тем-же данным, которые блокированы кем-то в транзакции.

   Воин 1С

25 — 17.08.06 — 16:04

епрст, пользователей сколько было, столько и осталось, раньше этого предупреждения не было, а сейчас све юзеры ко мне бегут дружной толпой и жалуются

   GenV

26 — 17.08.06 — 16:05

(25) Попрубуй оставить одного и проверь.

   zalex

27 — 17.08.06 — 16:07

(25) Объясняю на пальцах, пока один пользователь проводит документ, другие пользователи ничего провести не могут, если у тебя где-то в проведении неэффективный алгоритм, т.е. док проводится 2-3 то все будут эти 2-3 минуты наблюдать эту надпись. Такое бывает если ты неэффективно рассчитываешь остатки например, пока доков было немного проводилось быстро, чем дальше — тем хуже. Либо вариант (21). Просто бери копию базы и тупо проводи доки по очереди, наблюдай который проводится слишком долго, или задает вопросы в процессе проведения.

   zalex

28 — 17.08.06 — 16:09

+(27) Проводи по сетке, зачастую локально у тебя все летает, а по сети тормозит (если, например, запрос в цикл засунул — локально будет пару секунд проводится, а по сетке пару минут)

   Воин 1С

29 — 17.08.06 — 16:12

(27) Кстати очень может быть, у меня в одном регистре висят огромные непроходящие минуса, из-за этого все доки долго черепятся

   zalex

30 — 17.08.06 — 16:15

(29) Даже наверняка… Еще сделай нехитрую вешь —  поиск по всем текстам «НачатьТранзакцию», если какой-нить тяжелый отчет целиком в транзакцию сунул, те несколько минут пока он формируется все будут наблюдать эту же ошибку.

   zalex

31 — 17.08.06 — 16:16

+(30) Короче с такой надписью всех блокирует кусок

НачатьТранзакцию();



ЗафиксироватьТранзакцию();

либо ОбработкаПроведения() — это такая же транзакция, только явно не написано.

   Воин 1С

32 — 17.08.06 — 16:17

НачатьТранзакцию нигде нет, скорее всего обработка проведения подвешивает все..

   zalex

33 — 17.08.06 — 16:19

(32) Осталось только оптимизировать, где-то многократные запросы, либо вместо итогов по движениям шаришься, чем больше движений — тем дольше проводится. Думай как сделать лучше.

   zalex

34 — 17.08.06 — 16:22

Как вариант можно их в терминал загнать — проведение ускорится в разы, но код свой анализировать все же надо, где-то косяк.

http://www.mista.ru/articles1c/terminal.htm

  

Воин 1С

35 — 17.08.06 — 16:24

Спасиб , буду думать;)

  

FEAS

09.04.10 — 09:12

У нас работают несколько расчетчиков в зп каждый формирует документ по определенным подразделениям сотр(сотрудников много), и соответсвенно ошибка «Ошибка обращения к данным при транзакции, выполняемой другим пользователем »  , также например один может проводить документы а другие печатают отчеты -тоже ошибка.

поставили 300 сек время ожидания захвата таблиц всеравно такая хрень.

Что делать ? больше ставить? тормозить будет если поставить болше может снова вылететь  ведь им постоянно нужно работать

  

povar

1 — 09.04.10 — 09:13

базу переписывать

  

Ёпрст

2 — 09.04.10 — 09:14

ставить всем 0.

  

Дядя Васька

3 — 09.04.10 — 09:15

Вот это поставь, полегче будет.

http://x-romix.narod.ru/vk_TerminalSleep.rar

А вообще, курить где тупит и переписывать на прямые…

  

supremum

4 — 09.04.10 — 09:17

Или распределить работу кадровиков, расчетчиков так, что бы не возникала обходимость одновременного обращения к одним и тем же таблицам.

  

FEAS

5 — 09.04.10 — 09:18

Если в запросе условие по подразделению он ведь блокирует толко эти записи или нет?

  

ДенисЧ

6 — 09.04.10 — 09:19

(5) Нет.

  

Ёпрст

7 — 09.04.10 — 09:20

(5) запрос вообще ничего не блокирует.

  

DrZombi

8 — 09.04.10 — 09:20

(5)Запрос блокирует весь список данных, которые использует :)
Начни разбираться в структуре хранения данных в 7.7 и все поймешь :)

… так же запросы во время проведения, это зло :)

  

Ёпрст

9 — 09.04.10 — 09:21

+7 блокировка, только ежели кто-то чего-то проводит, ибо проведение — это всегда транзакция.

  

DrZombi

10 — 09.04.10 — 09:21

(7)Может быть, но ты записать, то же нечего не смогешь :)
Только читать

  

Ёпрст

11 — 09.04.10 — 09:21

(8) Гон.
1с-кий запрос построен на «грязном чтении» и он не блокирует ничего.

  

Ёпрст

12 — 09.04.10 — 09:22

(10) да ну ?

  

FEAS

13 — 09.04.10 — 09:23

нет я понял, просто вот спросил там в основном условия по перебору элементов например справочника сотр тоже вылетает ошибка если это сделать на запросе будет лучше?

  

FEAS

14 — 09.04.10 — 09:24

При формировании отчетов

  

FEAS

15 — 09.04.10 — 09:25

выборка блокирует как я понимаю?

  

ДенисЧ

16 — 09.04.10 — 09:26

  

1dvd

17 — 09.04.10 — 09:26

(15) Твоя задача, чтобы проведение и запись шли быстрее

  

DrZombi

18 — 09.04.10 — 09:28

(11)Ну не гони, у нас как раз вот запросы от 1С и блокировали всю базу, при этом это просто отчет по регистру :)
При этом, пока не выкидывали сего пользователя, все курили :)

  

FEAS

19 — 09.04.10 — 09:30

а как тогда? одна делает расчет другая формирует отчет и ошибка но записей пока нет если перебор не влияет то что?

  

ДенисЧ

20 — 09.04.10 — 09:31

(19) Вот как разсчёт и блокирует…

  

FEAS

21 — 09.04.10 — 09:31

весь журнал расчетов?

  

Ёпрст

22 — 09.04.10 — 09:33

(18) ты бред то не неси..

  

FEAS

23 — 09.04.10 — 09:33

нет смысла ставить секунды да хоть 500? просто расчет мин 20 идет

  

Дядя Васька

24 — 09.04.10 — 09:33

(22) Руками в тот отчет транзакцию влепили, вот и блокировал походу.

  

FEAS

25 — 09.04.10 — 09:34

тогда на 20 мин все записи заблокированы транзакцией? Отчет не может?

  

Дядя Васька

26 — 09.04.10 — 09:35

(25) Ну не так чтобы все, но общий журнал блокирует, а без него все висит…

  

FEAS

27 — 09.04.10 — 09:37

в отчете нет ранзакций

  

FEAS

28 — 09.04.10 — 09:37

как тчеты формировать тогда что не правильно

  

FEAS

29 — 09.04.10 — 09:37

какой общий?

  

Ёпрст

30 — 09.04.10 — 09:38

Еще раз — ошибка блокировки возникает только при записи/проведении объектов ИБ..
и всё.

  

FEAS

31 — 09.04.10 — 09:39

Ну я понял это у расчетчика которая хочет сформировать отчет вылазит данная ошибка

  

Ёпрст

32 — 09.04.10 — 09:39

(31) ты это понял или ты это видел ?

  

FEAS

33 — 09.04.10 — 09:40

вот видел

  

DrZombi

34 — 09.04.10 — 09:40

(22)Сам был поражен, но запрос был по дебиторке и брал данные за год :(

  

Ёпрст

35 — 09.04.10 — 09:42

(34) да хоть за 100..

  

Ёпрст

36 — 09.04.10 — 09:42

(33) чего видел ? Ленина ?..

  

FEAS

37 — 09.04.10 — 09:43

вобщем если один человек формирует отчет, а у другого проводится расчет то у которого отчет вылазит ошибка блокировки данных другим пользователем

  

Ёпрст

38 — 09.04.10 — 09:44

(37) не верю.
Что за конфа ? Что за отчет ?

  

DrZombi

39 — 09.04.10 — 09:45

(30) Не говори оп, пока не перелетел через забор 1С-ных глюков :)
К примеру если делать запрос типо

Запрос=СоздатьОбъект(«Запрос»);
…тут сам запрос
…Апосле еще раз ту же переменную
Запрос=СоздатьОбъект(«Запрос»);

И так в подряд 20 раз, то на 3-ем цикле, сеи запросы вообще покажут что нет данных, но они есть :)
Пока не занулил (Запрос=0;) перед каждым запросом… отчет показывал бред

…Конечно это не относится к блокировкам, но сея 7.7 полна неожиданностей :)

  

DrZombi

40 — 09.04.10 — 09:46

(38)Я ему верю :) И еще как :)
(0)Совет, пиши прямые запросы :)

  

Ёпрст

41 — 09.04.10 — 09:47

сказочники.

  

Дядя Васька

42 — 09.04.10 — 09:49

(29) 1sjourn вестимо. Как правило одинэсовские запросы его джойнят, а во время проведения он заблокирован полностью, вот и обломинго с отчетом.

  

FEAS

43 — 09.04.10 — 09:51

ага на него ругается на 1sjourn правильно понял

  

FEAS

44 — 09.04.10 — 09:51

и как быть?

  

povar

45 — 09.04.10 — 09:53

(44) я ж тебе сразу сказал, базу надо переписывать

  

DrZombi

46 — 09.04.10 — 09:53

(44)Убрать запросы из модуля проведения :)
Оптимизировать сам метод проведения, постараться не писать в другие справочники, во время проведения…
Пользователям стараться вдалбливать, что не кашерно делать один документ с 20000 строк :) Лучше 20000 документов, но с одной строкой :)

  

Ёпрст

47 — 09.04.10 — 09:57

Для всех сказочников, делаем простой тест:

В модуль проведения документа втыкаем Предупреждение, у одного пользователя проводим этот документ, появляется окошко — всё, все таблички заблокированы…

У второго пользователя пробуем делать отчеты.
А потом извиняемся и больше никогда не рассказываем сказки про 1с.

  

FEAS

48 — 09.04.10 — 10:01

Обработка расчет зарпалты, она там блокирует

  

FEAS

49 — 09.04.10 — 10:01

когда считаем зарплату

  

FEAS

50 — 09.04.10 — 10:02

Там используются транзакции

  

FEAS

51 — 09.04.10 — 10:02

не документ

  

Ёпрст

52 — 09.04.10 — 10:03

(48) п..ц.
Ты разницу между отчетом — это чтение данных и Обработкой расчет зарпалты — которая вносит изменения в саму ИБ не видишь???

  

FEAS

53 — 09.04.10 — 10:04

как не вижу я понимаю

  

FEAS

54 — 09.04.10 — 10:04

там транзакции используются

  

Skom

55 — 09.04.10 — 10:05

+(47) вот именно

все запросы в 1с ке выполняются грязночтением…как то так

если посмотреть профайлер то только и видно хинты

(nolock)

  

Ёпрст

56 — 09.04.10 — 10:06

(54) тем более, журнал и другие таблички уже заблокированы другим пользователем — пока он не проведёт свой документ — ты транзакцию не сможешь поставить — идёт ожидание захвата таблички.
И всего лишь.

  

FEAS

57 — 09.04.10 — 10:07

Если так? тогда зачемошибка если просто чтение

  

FEAS

58 — 09.04.10 — 10:07

убрать транзакции?

  

FEAS

59 — 09.04.10 — 10:08

доки ни кто  вэто время может не проводит

  

FEAS

60 — 09.04.10 — 10:08

только расчет, и отчеты

  

  

Нафигатор

61 — 09.04.10 — 10:08

(0) На каких именно строчках модулей ошибки возникают?

  

FEAS

62 — 09.04.10 — 10:10

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

  

povar

63 — 09.04.10 — 10:14

(48) бу га га

  

povar

64 — 09.04.10 — 10:14

это далеко не отчет

  

Ёпрст

65 — 09.04.10 — 10:14

(57) Не тупи — сам же сказал — что в обработке твоей транзакция +, на сколько я помню Зик — эта обработка делает запись в ИБ..

  

FEAS

66 — 09.04.10 — 10:21

да транзакция в обработке она вносит записи в журнал расчетов считает. В этоже время другой человек печатает отчеты

  

FEAS

67 — 09.04.10 — 10:23

уберу транзакцию

  

FEAS

68 — 09.04.10 — 10:23

и нафиг

  

FEAS

69 — 09.04.10 — 10:25

не туплю а по твоему размышлению у человека который формирует отчеты не должно быть ошибки

  

Дядя Васька

70 — 09.04.10 — 10:25

(67) Чревато… Тогда смогут двое одновременно в эту табличку писать, результат может получиться несколько неожиданным )

  

DrZombi

71 — 09.04.10 — 10:29

(47)Сказочник… не дальновидный, сделай наоборот!!!
Запусти отчет по регистру, за год… сделай его так что бы он работал час, как мин, напиши не прямыми запросами :) (короче не оптимизируй его :))

Потом попробуй провести документ по тому же самому регистру :)
И удивляйся…
При этом в тесте усложним…. Запусти в параллельно… тот же самый запрос на 10-ти разных ПК!!! (или разных терминальных сессиях)

Поразись… реальной обстановкой… а не альфо тестером на одном ПК!!

  

Ёпрст

72 — 09.04.10 — 10:31

(71) Не тупи.. у нас юзверов до 80 в базе — таких проблем нет и не было никогда.

  

DrZombi

73 — 09.04.10 — 10:32

(72)Ну я же пишу… не оптимизируй запросы, на прямые и период возьми по само использованному регистру за год, а не за 10 дней , как макс :)

  

Ёпрст

74 — 09.04.10 — 10:32

+71 Если ты такой неверующий Фома- смотри профайлер в скуле, например, там везде хинт nolock в запросе..
Табличка никогда не блокируется, хоть за пятилетку строй запросы свои.

  

DrZombi

75 — 09.04.10 — 10:32

+(72)И повиснит твоя база… не забудь отрубить ВК :)

  

Ёпрст

76 — 09.04.10 — 10:33

(75) Хорош чушь пороть, не позорился бы..

  

DrZombi

77 — 09.04.10 — 10:33

(74)Но и записать ты при этом не смогешь, 1С требует при записи в табличку (7.7) монопольного доступа, т.е. лочит всю таблицу :)

  

DrZombi

78 — 09.04.10 — 10:34

(76)Вот я то же бы утверждал, что код в (39) не реален… но он так себя и ведет :)

  

Ёпрст

79 — 09.04.10 — 10:34

(77) С какой радости то???
Еще раз — ЗАПРОС в 1с не лочит НИЧЕГО.

  

DrZombi

80 — 09.04.10 — 10:35

(79)Тоже сам все еще поражаюсь :(
Сам многому удивляюсь в 7.7, за все годы работы :)

  

Invalid

81 — 09.04.10 — 10:35

FEAS, http://softpoint.ru/feedback_id40.htm

У софтпоинта спроси, может помогут.

  

DrZombi

82 — 09.04.10 — 10:36

(79)Я тоже поразился, что он при 1С-ных запросах ложет туже самую таблицу, но во временные файлы :)

  

Ёпрст

83 — 09.04.10 — 10:36

Ты там не отмазывайся…сказочник.

  

DrZombi

84 — 09.04.10 — 10:38

(83)Если бы… я тебе пишу, что и палка стреляет ;)
И твои утверждения, что нечему лочиться там тоже ошибочные :) Не ты же писать платформу 7.7 :)

  

Ёпрст

85 — 09.04.10 — 10:40

(84) оставайся дальше в своих грёзах.. только вот тут не надо этого писать..

  

FEAS

86 — 09.04.10 — 10:49

в это время никто другой не делает это , если запрос чисто читает то он должен без ошибки читать и все

  

FEAS

87 — 09.04.10 — 10:51

При транзакции запрос не может счиать или нет  Ёпрст3?

  

DrZombi

88 — 09.04.10 — 10:55

(87)Видишь ли (85) все время твердить, что нет этого у тебя, т.е. реально ты пишешь фигню и нечего не «лочится» :)
А я вообще сказочник, мне это привиделось :)
…Ты начни думать своей головой, у нас другие ошибки и баги в 7.7… Ты многие найдешь и в 8-ке :) И так же повстречаешь новые, для тебя, 7.7 :)

  

МуМу

89 — 09.04.10 — 10:58

Более 99-и процентов в 1С 7.7. идут с хинтом nolock — что означает грязное чтение. бывают исключения(очень специфические) но очень редко. В случае (0) думаю все идет действительно с грязным чтением. Поэтому основа для понимания — проведение несложного эксперимента. Документы действительно блокируют друг друга а вот отчеты практически на 100 процентов нет.  

То DrZombi.  А вот у вас нет конструктива. Не надо писать платформу для того что бы проверить очевидные вещи. для этого есть как профайлер так и просто руки с помощью которых можно провести простой эксперимент.

  

МуМу

90 — 09.04.10 — 11:02

То 88. Я редко верю тому что говорят пользователи. Поставь систему мониторинга либо проведи эксперимент и убедись в обратном.   Я уверен что если у FEAS спросить а проводил ли он лично одновременно документ(запрос в цикле на х итераций в отчете и предупреждение в конце проведения документа) и отчет и видел ли блокировку? —  скажет скорее всего нет. А ведь это несложно сделать.

  

МуМу

91 — 09.04.10 — 11:04

Единственное но — не нужно путать отчеты и обработки. Обработка выполняя в транзакции определенные действия на изменения действительно может вступать в блокировку.

  

DrZombi

92 — 09.04.10 — 11:05

(89)Я практик… мне твое написано… мало что говорит…. как правил у нас Аналитик, так красиво расписал программу, щас смотрю на ее реализацию, в 7.7.
Думаю, он много с экономил на программистах, код писали школьники, ужо не говоря про студентов с бух. факов

  

FEAS

93 — 09.04.10 — 11:07

когда отчеты формируются ошибка вылазит за чем что то проверять, сам вижу, в это время работает обработка на запись в ИБ. Документы мне пока не нужны

  

DrZombi

94 — 09.04.10 — 11:07

+(89)Не поленись… проведи експеремент на 10 различных ПК и на данных годовой давности и тогда и пиши, то что написал программер, что бы от него отвалили :)

  

FEAS

95 — 09.04.10 — 11:11

Если гвоитте отчеты не блокируют тогда зачем ошибка то не пойму, если они только на чтение.

  

МуМу

96 — 09.04.10 — 11:12

То FEAS. Ну тогда приведи точно название ошибки, название отчета и название обработки. Бывает исключение из правил (менее 1 процента) но я очень сомневаюсь что это тот случай.

  

FEAS

97 — 09.04.10 — 11:15

У нас переписанная конфига ЗП не даст название , отчет например Расчетная ведомость обработка расчет зарплаты.

вот такая хрень вылазит

Если ЖрнЗарплата.ВыполнитьРасчет()=0 Тогда

{Обработка.РасчетЗарплаты.Форма.Модуль(232)}: Таблица: 1SJOURN Ошибка обращения к данным при транзакции, выполняемой другим пользователем

  

DrZombi

98 — 09.04.10 — 11:21

(97)Где то была библиотечка, которая в дбф-е снимала нагрузку на базу при транзакции :)
Но не помню как называлось, вроде ромикса :)
Тебе она нуна

  

sapphire

99 — 09.04.10 — 11:26

(89) Это смотря как написать отчет.

  

nop

100 — 09.04.10 — 11:26

100

Показывать по
10
20
40
сообщений

Новая тема

Ответить

sahzavod

Дата регистрации: 05.09.2003
Сообщений: 2

От чего может возникнуть «Ошибка времени выполнения» при работе транзакции в конфигурации ЗиК.<br><br>Конкретнее:<br><br>Таблица: 1SJOURN Ошибка обращения к данным при транзакции, выполняемой другим пользователем.<br><br>И как востановить потеряные данные?<br><br>Заранее спасибо :)

Кот, который гуляет сам по себе

Дата регистрации: 29.10.2001
Сообщений: 882

Возникновение такой ошибки как правило связано с перегруженностью<br><br>сети. Эта ошибка происходит в том случае, когда программа<br><br>в течение продолжительного периода времени пытается захватить<br><br>некоторый файл (на очень непродолжительное время), а у нее не<br><br>получается. После повторения попыток в течение 60 сек. возникает<br><br>такая ошибка.<br><br> Как показывает опыт, причиной практически во всех случаях<br><br>является недостаточная производительность сети или сервера.<br><br>В частности такая ситуация имеет место быть при использовании<br><br>невыделенных или сильно нагруженных другими задачами серверов<br><br>со стороны значительного числа клиентов.<br><br>

vela

Дата регистрации: 18.08.2003
Сообщений: 20

Если дело в этом, то можно попробовать увеличить время ожидания захвата таблиц Базы Данных, к примеру до 90 сек. От многого уберегает, может и здесь поможет.

qwer007.070

Дата регистрации: 21.08.2007
Сообщений: 1

Как можно устранить ошибку при транзакций?

Alexandr VA

Дата регистрации: 07.01.2007
Сообщений: 1666

> Как можно устранить ошибку при транзакций? <br>Способов много, пробуйте:<br>Увеличить время ожидания захвата таблиц. <br>Сжать ДБФные таблицы, выполнить дефрагментацию диска с базами.<br>Повысить производительность сервера и сети.<br>Очистить журнал регистрации (сначала сархивируйте)<br>Перейти в терминалы<br>Перейти на SQL <br><br>

Татьянаааа

Дата регистрации: 07.08.2007
Сообщений: 86

Меню СЕРВИС -> ПАРАМЕТРЫ -> (Закладка ОБЩИЕ) Время ожидания захвата таблицы поставьте 40-60

Показывать по
10
20
40
сообщений

  1. Здраствуйте! Возникает такая проблема — «При выполнении транзакции произошла ошибка. Таблица 1Sjourn. Ошибка обращения к данным при транзакции, выполняемой другим пользователем»
    стоит 15 клиентских компов и один сервер опрационка win server 2003. база 1с7.7 -dbf, объем 1.5гига. В данный момент сейчас бухгалтера все работают в одном документе, и я думаю что это из-за этого. Позвонил в службу поддержки которые обслуживают нашу 1с — там ничего умного не посоветовали — «сказали типа у вас сервак на котором стоит 1с слабый — меняйте» короче прогнали полную чушь и отмазались :unsure: .
    Комп под сервак мы приобретали 3 месяца назад (проц. — атлон Х2 5600 оператива 2гига) вообщем понятно что дело не в этом. Так же я попробовал увеличить Значение ожидания, как было написано здесь на форуме, проблема не исчезла. Подскажите пожалуйста что можно еще сделать, и есть ли выход из этой ситуации???????

  2. Offline

    bob
    Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    394
    Симпатии:
    1
    Баллы:
    29

    в одном документе работать одновременно невозможно. Ошибка из-за того, что при проведении документа, блокируется определенное кол-во таблиц, и другие пользователи могут с ними работать только после окончаниЯ проведения. Это только один из множества вариантов, есть еще, звоните в более компетентную службу поддержки.

  3. Offline

    Kaboom
    Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
  4. Заранее всем спасибо. завтра на работе попробую!

Здравствуйте обьясните почему появляется следующая ошибка: Конт.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + ПрефиксЮрЛицаФирмы); : {Глобальный модуль(4064)}: Таблица: 1SDNLOCK Ошибка обращения к данным при транзакции, выполняемой другим пользователем. Как это исправить

подождать. поробовать ещё раз. +сходить в поиск.

Потому что нельзя какать вдвоем в один унитаз… Надо по очереди…

Забей. Это безнадежно. Полностью от этой проблемы ты уже не избавишься никогда.

Нет уж надо хоть немножко избавиться.Слишком часто стало появляться.ОБьясните почему происходит это

терм.сервак? или сеть? (хи-хи)

сколько одновременно компов может висеть в одном справочнике или документе

сеть с выделенным сервером

вам бы, батенька, с терминологией разобраться, для начала

Сеть с выделенным сервером под управлением Windows server 2003+ active directory в сети находится 15 машин пожно сказать одновременно работающих либо в справочнике НОменклатура либо в документе Быстрая продажа. Конфа ТИС очень часто выдается сообщение Конт.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + ПрефиксЮрЛицаФирмы); : {Глобальный модуль(4064)}: Таблица: 1SDNLOCK Ошибка обращения к данным при транзакции, выполняемой другим пользователем. В чем проблема почему оно появляется сколько одновременно компов может висеть в одном справочнике или документе

+не в терминальном режиме и на DC

юзеры все в терминальных сессиях?

Они в терминале сидят или доступ к базе через сеть открыт?

«сколько одновременно компов может висеть в одном справочнике или документе» во-первых, не компов, а юзеров. во-вторых, теоретически сколь угодно много. в-третьих, есть понимание термина «транзакция», или надо разъяснить?

насчет транзакции понятно

это жесть при 15 юзерах. база сколько весит?

загоняй в терминал всех +

как это сделать где можно почитать где более подролбно описано

м-дя…. ты чё ждешь-то? пока база окончательно рассыпется и тебя начнуть мочить? срочно: 1. всех в терминал, базу резать или 2. базу на скуль 1-й вар. дешевле (если, конечно, лицензия на скуль уже не имеется в активе)

понятно примерно опиши как какой софт для этого надо либо средствами windows 2003

под понятием рассыпится что имено

у тебя реально на клаве выдраны знаки препинания? Или уважение к участникам форума настолько ничтожно, что знаки препинания они не достойны?

Одним из недостатков DBFной версии “1С:Предприятие 7.7” является ограничение на размер файлов – 1 гигабайт. При этом если система эксплуатируется в однопрограммном режиме, то размер файла может быть 2 гигабайта, однако если появится второй пользователь, а файл будет больше 1 гигабайта, то система 1С начинает сбоить по ЧТЕНИЮ, у одного пользователя, если другой выполняет запись/обновление данных. Например, если выполнять цикл по выборке данных, то он может “тихо” прекратиться в любой момент, не предоставив программе всего множества объектов. А ГДЕ ПРОЧИТАТЬ БОЛЕЕ ПОДРОБНУЮ ИНФОРМАЦИЮ

Тэги:

Комментарии доступны только авторизированным пользователям

Как-то на форуме прочитал сообщение типа» а вот знакомый админ удалил Tablockx и поставил rowlock в хранимых процедурах и все закрутилось, завертелось»… Эта мысль, по-моему, достаточно показательна для многих из 1С-программистов и особенно для новичков.

Для того, чтобы не наломать дров в вашей ИТ системе, необходимо : во-первых, понимать, для чего существуют блокировки в МS SQL Server , во-вторых, понимать, как устроен блокировочный механизм в 1С 7.7 и MS SQL.

По первой части есть масса литературы, и поэтому не хотелось бы ее пересказывать…Отмечу лишь принципиальные моменты…

В MS SQL есть понятие блокировок и подсказок блокировок. Основное предназначение — избежать проблем некорректного(грязное чтение, чтение фантомов и т.п.) чтения информации.

Для 1С 7.7 значимы следующие виды блокировок

Holdlock – Захватывает разделяемую блокировку до завершения транзакции.

Nolock — Применима только к оператору select . Читает все…

Tablock — Используется блокировка на уровне таблиц.

Tablockx — Используется монопольная блокировка таблицы.

Отдельно выделю подсказки блокировки, которые «горячие» головы рекомендуют применять

Rowlock — блокировка на уровне строк

Updlock — блокировка на изменение

Readpast — Применима только для Select . Пропускаются строки блокированные( rowlock ) другими транзакциями.

Для того чтобы понять, как действуют эти блокировки, необходимо почитать соответствующую литературу, а еще лучше самим проверить на практике эти блокировки в различных ситуациях…

На специфике реализации блокировок в 1С 7.7 остановлюсь подробнее.

Механизм блокировок в 1С 7.7 максимально простой — блокируется все и по максимуму.

Интересней всего, конечно, реализация блокировок на документы т.к. как правило это и является самым узким местом системы, а также документы и являются источником конфликтов.

Начнем с того, что в 1С 7.7 существует специальная таблица _1 sjourn, где хранятся внутренние идентификаторы всех документов. При записи, проведении и т.п. операциях с документами 1С накладывает блокировку на таблицу _1 sjourn и соответственно в системе в один момент времени может проводиться не более одного документа. То есть _1 sjourn выступает в роли своеобразного семафора. До тех пор, пока не завершиться транзакция и соответственно не будет снята блокировка с таблицы, все остальные клиенты будут ждать разблокировки и, самое интересное, как это они будут делать. В момент ожидания 1С 7.7 загружает ресурсы сервера, т.к. непрерывно сканирует таблицу на вопрос разблокировки и поэтому загружает процессор по максимуму.

Удалить механизм блокировок можно путем изменения хранимых процедур, через которые 1С 7.7 проверяют таблицы на блокировки. А точнее, удалить хинты на блокировку таблиц.

Например, в хранимой процедуре _1 sp __1 SJOURN _ TLockX в конструкции select @i=1 from _1SJOURN(TABLOCKX HOLDLOCK) where 0=1 необходимо удалить TABLOCKX HOLDLOCK.

Также необходимо удалить соответствующие хинты(подсказки блокировки) в остальных таблицах, относящихся к документам. Если этого не сделать, то будут возникать deadlock -и – взаимоблокировки транзакций на уровне SQL Server .

Предположим, что мы это сделали. Казалось бы, все теперь хорошо , документы параллельно проводятся , процессор не загружается. Но не все так просто. Что бы доказать ошибочность этих выводов, приведем следующий эксперимент.

Создадим конфигурацию : справочник — Товары, документ – ПриходнаяНакладная, документ – РасходнаяНакладная, регистр – ОстаткиТовара Приходная накладная нужна только для того что бы сделать одно единственное движение. Больше логической нагрузки она нести не будет.

В модуле расходной накладной реализуем следующую логику :

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Товар = Регистр.Остатки.Товар;
|Количество = Регистр.Остатки.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Товар;
|"//}}ЗАПРОС
;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Сообщить(НомерДок);
Если Число(НомерДок)=1 Тогда
Для Сч6=1 По 10000 Цикл
Сообщить("Ждем второго. Вообще то здесь может идти
| какой-то анализ или обработка данных.
|Чем больше интервал между получением остатков и их
| анализом с последующей записью движений -
|тем больше вероятность возникновения отрицательных остатков");
КонецЦИкла;
КонецЕсли;

Запрос.Группировка(1);
Если (Запрос.КоличествоКонОст<0) Тогда
Сообщить("Ошибка!!!");
Возврат;
КонецЕсли;

Если Запрос.КоличествоКонОст>=Количество Тогда
Регистр.Остатки.Товар=Товар;
Регистр.Остатки.Количество=Количество;
Регистр.Остатки.ДвижениеРасходВыполнить();
Иначе

Сообщить("Не хватает!");
Возврат;
КонецЕсли;

Товар это у меня реквизит шапки, и поэтому я использую одномерную (например использую Запрос.Группировка(1) зная что движение по одному товару) модель. Для многомерной модели ничего принципиально не меняется…

Логика вкратце сводится к тому, что необходимо, перед тем как списывать товар, провести анализ , а хватает ли его на складе? Казалось бы, при такой модели не должно возникать отрицательных остатков – ведь стоит проверка. Это возникающее на первый взгляд впечатление ошибочно. Для доказательства этого я вставил в середине модуля обработку, которая эмулирует задержку между получением остатков и их последующим анализом и записью движений. Получается следующая ситуация: когда два пользователя одновременно пытаются списать товара в сумме больше, чем есть на складе(в хронологическом порядке)

  • Первый пользователь получает остатки
  • Второй пользователь получает остатки
  • У первого пользователя идет какая либо обработка.(в моем случае выводится сообщение)
  • Второй пользователь проводит проверку остатков и списывает товар. Конец проведения.
  • Первый пользователь проводит анализ остатков и тут возникает самое интересное – информация по остаткам уже устарела! Но первый пользователь об этом не подозревает , проходит проверка остатка и списание. КонецПроведения.

Возникают отрицательные остатки. С точки зрения бизнес логики, я думаю, не нужно комментировать, к чему это может привести.

Как избежать этой неприятной ситуации? – Реализовать свой, гибкий механизм блокировок.

Вот пример:

Перем глСКЛ Экспорт;

Процедура ПроверкаБлокировкиРесурса(Ресурс) Экспорт;
глСКЛ.Закрыть();
глСКЛ.Соединиться(0);
//глСКЛ.ВыполнитьЗапрос("set lock_timeout 20000");
Состояние("Проверка блокировки...");
Если Ресурс = "Регистр.ОстаткиТовара" Тогда
Если (глСКЛ.ВыполнитьЗапрос("exec MyRA17_TLockX") = 1) тогда

Иначе
Сообщить("Ждет Занят MyRA17_TLockX");
КонецЕсли;
Если(глСКЛ.ВыполнитьЗапрос("exec MyRG17_TLockX") = 1) тогда

Иначе
Сообщить("Ждет Занят MyRG17_TLockX");
КонецЕсли;
КонецЕсли;
глСКЛ.Закрыть();

КонецПроцедуры

В данном случае я блокирую по объекту метаданных Регистр.ОстаткиТовара.

А хранимые процедуры MyRG17_TLockX и MyRA17_TLockX я полностью дублирую текстом старых RG17_TLockX и RA17_TLockX.

Вставляя процедуру ПроверкаБлокировкиРесурса( «Регистр.ОстаткиТовара» ) в начало модуля проведения, мы добиваемся того, что второй пользователь ожидает, пока первый не завершит транзакцию и только после этого он может прочитать остатки товара. При этом не возникает неоправданной нагрузки процессора, и документы проводятся последовательно, но только в контексте движения по Регистр.Остатки.

Возникает вопрос: а что делать, если у нас происходит движение по бухгалтерским итогам? В этом случае движение затрагивает одну таблицу, и она становится узким местом системы.

Возникает соблазн использовать конструкцию rowlock — ведь судя по названию она и сможет устанавливать блокировку не монопольную на таблицу, а построчную на изменяемые записи.

Тут нужно во-первых понять, как хранит 1С данные и какими запросами получает данные.

Я возьму для примера только регистры. Для бухгалтерских итогов концепция будет аналогична.

Нужно отметить , что данные по регистрам хранятся в агрегированном виде т.е остатки по измерения хранятся в нескольких записях соответствующим периодичности итогов. Возникает вопрос: а не изменится ли целостность и непротиворечивость агрегированных данных при отключении стандартного механизма блокировок?

Для ответа на этот вопрос нужно во-первых понимать, что SQL Server сам расставляет блокировки объектов при изменении данных. Убедиться в этом можно, изменив в транзакции запись таблицы(как правило на индексированные) и запустив sp _ lock . По результатам sp _ lock мы увидим что данная запись заблокирована, как будто если бы мы в явном виде поставили подсказку rowlock .

Вкратце концепция изменения агрегированных данных (например регистра остатков) 1С 7.7 следующая –

При движении по регистру вызывается ряд хранимых процедур но показательные из них две это _1sp_GetNextPeriod — обеспечивает последовательное обновление агрегированных данных и _1sp_RG17_Change – собственно изменят конкретную запись. Для этого используется следующая конструкция:

Update RG17 set SP19=Case When ABS(SP19+@p3)>9999999999 Then 9999999999 Else SP19+@p3 End where PERIOD=@per AND SP18=@p1 AND SP24=@p2 if @@ROWCOUNT=0 insert into RG17 values(@per,@p1,@p2,@p3)

Как мы видим, в конструкции Update нет хинта rowlock . Но по большому счету он и не нужен т.к. сервер сам расставляет блокировки по измененным записям. В этом опять-таки не сложно убедиться, если провести ряд тестов, вкратце их смысл — искусственно создать ситуацию, при которой одна сессия будет изменять запись и другая ее будет изменять, но на основании прочитанных ранее устаревших данных. Вставка новых записей в агрегационную таблицу по документу происходит, как правило не более одной(если конечно точка актуальности не установлена абы как) и соответственно ситуация когда один документ делает вставку( insert into RG 17 values (@ per ,@ p 1,@ p 2,@ p 3) ) а другой ее не видит практически невозможна(кроме того, стоит ограничение на уровне уникальности индекса, для возможной повторной вставки).

Теперь что касается грязного чтения. С этим дело обстоит хуже и к сожалению никакие установки rowlock в этом не помогут. Во-первых, информация по изменению должна пройти по всем агрегационным записям в пределах транзакции(хоть и маловероятно что в этот момент возникнет конфликт). Во-вторых, 1С в запросах использует хинт nolock , что вообще не оставляет шансов на создание универсального блокировочного механизма. Да и нужен ли он?

Обращаясь к примеру с созданием процедуры ПроверкаБлокировкиРесурса продолжая аналогию, можно прийти к выводу о достаточности реализации блокировки объекта данных. Ну например, если мы хотим , что бы блокировалась не целиком таблица проводок, а например, только информация, связанная со счетом 41 и 004, то нам достаточно заблокировать объект СчетПоКоду(«41») и СчетПоКоду(«004»). То есть если мы знаем, что расходная накладная использует данные по 41 и 004 счетам нам достаточно вставить в начале модуля проведения процедуру ПроверкаБлокировкиОбъекта(« СчетПоКоду(«41») ») и ПроверкаБлокировкиОбъекта(« СчетПоКоду(«004») ») .

Если же мы знаем, что для нас принципиальна информация по остаткам товара на складе, то соответственно ПроверкаБлокировкиОбъекта(« Склад ») . Таким образом, все документы по одному складу будут проводиться по очереди, а по разным складам параллельно. То же самое, если мы хотим сделать блокировки по Товару. Тогда будет соответственно ПроверкаБлокировкиСпискаОбъектов(спТовара) – но в этом случае нужно понимать, что чем больше информации по блокировкам, тем больше нагрузка на сервер. Необходимо найти золотую середину.

Собственно, а как все вышеперечисленное реализовать. Вариантов несколько. Но раз мы уже остановились на классическом блокировочном механизме MS SQL, то можно воспользоваться процедурой sp_getapplock. Смысл ее в следующем – блокировка произвольного ресурса. Запустив sp _ lock мы можем убедиться, что это всего лишь еще одна запись. То есть например блокировку по складу(в контексте остатков по складу) можно сделать следующим образом sp_getapplock ‘Остатки**Склад**Основной’, ‘Exclusive’, ‘transaction’ . Соответственно аналогичная процедура выполненная из Сессии №2 сессии будет ждать завершения транзакции открытой Сессией №1 если в ней была запущенна sp_getapplock такими же параметрами. Процедура ПроверкаБлокировкиОбъекта всего лишь преобразует объект в уникальный идентификатор и передает его в качестве параметра в sp_getapplock в открытой сессии 1С 7.7.

В конце статьи хочется отметить, что для того чтобы реализовать механизм «гибких» блокировок, необходимы какие-либо навыки в MSSQL Server, а также понимание внутренней структуры 1С 7.7. Например снимая хинты с процедуры _1sp__1SSYSTEM_TLock вы тем самим можете попасть в ситуацию когда два проведенных документа перемещающие ТА проведутся одновременно и один из них окажется позже точки актуальности или наоборот сняв хинты с _1sp__1SJOURN_TLock и не сняв их с _1sp_DT???_TLockX вы можете создать deadlock -и.

При использовании материалов данной статьи обязательна ссылка на информационный ресурс.

По интересующим Вас вопросам просьба обращаться на softpoint@softpoint.ru

Статьи  по этой теме:

Что такое ошибка при транзакции, выполняемой другим пользователем? 

«Внутренние» блокировки в 1С

Технология «Гибкие блокировки»

Экономическая эффективность внедрения технологии «Гибкие блокировки»

Как внедрить


Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании «СофтПоинт». Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации «Об авторском праве и смежных правах»).

Привет.
Имеется база (1.5 Гб, ДБФ, в день забивают около 1200 документов), находится на сервере (Ксеон 2-х процессорный по 4 ядра, 6 Гб ОЗУ,

Рейд массив). База более менне работает при 5 пользователях, которые усердно забиват заявки, накладные и прочие документы. Когда

начинают входить еще пользователи, то база начинает ТОРМОЗИТЬ, и некоторые пользователи начинают ВЫЛИТАТЬ с документов (при

открытии, проведении и т.д.). В журнале регистраций пишется, пример:

УстановитьНовыйНомер(«А-«); : {Документ.СчетФактураВыданный.Форма.Модуль(449)}: Таблица: 1SJOURN Ошибка обращения к данным при

транзакции, выполняемой другим пользователем

притом все работаю со своими документами.
НО НО НО, если в данной ИБ работают скажем 5 пользователей, и пару человек заходят в другие ИБ (не большие), начинаются такие же

глюки.

Пробовал переводить на SQL, знаю, что она не кретична к пользователям, НО раз в неделю делается восстановление последовательности,

на SQL она делается в 2 раза дольше, и за выходные обработка может не успеть выполниться.

Вопрос: что делать???
может попробовать не проводить восстановление последовательности, а сделать перепроводку документов, при это сделать оптимизацию

при проведении (основные тормоза при проведении документа — расчет временных итогов) — использовать ТЗ или ДБФ файл для хранения

итогово (увеличение производительности при массовом проведении в РАЗЫ)???

  1. Здраствуйте! Возникает такая проблема — «При выполнении транзакции произошла ошибка. Таблица 1Sjourn. Ошибка обращения к данным при транзакции, выполняемой другим пользователем»
    стоит 15 клиентских компов и один сервер опрационка win server 2003. база 1с7.7 -dbf, объем 1.5гига. В данный момент сейчас бухгалтера все работают в одном документе, и я думаю что это из-за этого. Позвонил в службу поддержки которые обслуживают нашу 1с — там ничего умного не посоветовали — «сказали типа у вас сервак на котором стоит 1с слабый — меняйте» короче прогнали полную чушь и отмазались :unsure: .
    Комп под сервак мы приобретали 3 месяца назад (проц. — атлон Х2 5600 оператива 2гига) вообщем понятно что дело не в этом. Так же я попробовал увеличить Значение ожидания, как было написано здесь на форуме, проблема не исчезла. Подскажите пожалуйста что можно еще сделать, и есть ли выход из этой ситуации???????


  2. bob

    Offline

    bob
    Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    394
    Симпатии:
    1
    Баллы:
    29

    в одном документе работать одновременно невозможно. Ошибка из-за того, что при проведении документа, блокируется определенное кол-во таблиц, и другие пользователи могут с ними работать только после окончаниЯ проведения. Это только один из множества вариантов, есть еще, звоните в более компетентную службу поддержки.


  3. Kaboom

    Offline

    Kaboom
    Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26

  4. Заранее всем спасибо. завтра на работе попробую!


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

  

Воин 1С

17.08.06 — 14:46

Последние несколько дней база стала давать предупреждение:При выполенении произошла ошибка! Таблица 1SJourn Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.Повторить попытку? [Да Нет].Появляется при проведении доков, выполнении отчетов. Если кто встречал такую фичу, подскажите как лечить

  

AeDen

1 — 17.08.06 — 14:47

Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.

  

zbv

2 — 17.08.06 — 14:47

В поиске смотрел?

  

Воин 1С

3 — 17.08.06 — 14:49

(1) Спасибо а то я думаю и что это значит…

  

Воин 1С

4 — 17.08.06 — 14:49

(2) Не пока ща гляну

  

Воин 1С

5 — 17.08.06 — 14:51

В поиске ничего подходящего нету;(

  

AeDen

6 — 17.08.06 — 14:51

(3) Ну, думай дальше. Кто мешает?

  

Воин 1С

7 — 17.08.06 — 14:59

Ну что, неужели никто не встречал ничего похожего?

  

GenV

8 — 17.08.06 — 15:03

(5) Плохо смотрел. Ищи: Ошибка обращения к данным при транзакции 1С

  

Воин 1С

9 — 17.08.06 — 15:07

(8) Спасиб, я глянул. Насколько понял, коллизия призаписи доков в табицу, используемую для УРБД. Но, почему она стала появляться? Раньше ведь не было..

  

GenV

10 — 17.08.06 — 15:19

(9) См.(1) Ошибка <одновременного> обращения к <различным> данным при транзакиции, выполняемой другим пользователем. Темерь понятно?

  

ламеры спрашивают

11 — 17.08.06 — 15:48

(10) Почему «к <различным>». Наверное хотел сказать «к одним и тем же»?

  

Воин 1С

12 — 17.08.06 — 15:52

(10)Нет, поясни плиз

  

GenV

13 — 17.08.06 — 15:52

(11) различным — значит не только к таблицам УРБД :)

  

Воин 1С

14 — 17.08.06 — 15:54

(13) В 1SJORn хранятся записи используемые урбд.Непонятно почему это появилось и что с ним делать;)

  

GenV

15 — 17.08.06 — 15:56

(14) … Да тех, кто в бронепоезде: несколько пользователей хотят одновременно получить одни данные. Возникает транзакция (блокировка данных). Теперь-то понятно?

  

ламеры спрашивают

16 — 17.08.06 — 15:57

(13) ОК

  

AeDen

17 — 17.08.06 — 15:57

(15) Rnj-nj gsnftncz ljcnexfnmcz lj lfyys[? rjnjhst ,kjrbhjdfys nhfypfrwbtq/

  

Воин 1С

18 — 17.08.06 — 15:57

От тех, кто в бронепоезде: Почему этой ошибки раньше не было?

  

Воин 1С

19 — 17.08.06 — 15:58

Сейчас она постоянно вылезает на экран

  

GenV

20 — 17.08.06 — 15:59

(19) Сейчас только один пользователь или кто-то что-то проводит?

  

zalex

21 — 17.08.06 — 15:59

(14) В 1SJORN хранятся журналы, все.

(18) Наиболее вероятно, что в одной из обработок проведения ты впендюрил Вопрос() или Предупреждение(). Обработка это транзакция, и она не закончится, пока пользователь не закроет окошко вызванное одной из этих функций. Пока один пользователь не закончит транзакцию, никто другой не может ее начать.

  

Воин 1С

22 — 17.08.06 — 16:01

(21) Ничего я не впиндюривал, я конфу сам полностью писал.

  

zalex

23 — 17.08.06 — 16:02

(22) Во-от… :)

  

AeDen

24 — 17.08.06 — 16:02

+(17) Разные пользователи пытаются обратиться к одним и тем-же данным, которые блокированы кем-то в транзакции.

  

Воин 1С

25 — 17.08.06 — 16:04

епрст, пользователей сколько было, столько и осталось, раньше этого предупреждения не было, а сейчас све юзеры ко мне бегут дружной толпой и жалуются

  

GenV

26 — 17.08.06 — 16:05

(25) Попрубуй оставить одного и проверь.

  

zalex

27 — 17.08.06 — 16:07

(25) Объясняю на пальцах, пока один пользователь проводит документ, другие пользователи ничего провести не могут, если у тебя где-то в проведении неэффективный алгоритм, т.е. док проводится 2-3 то все будут эти 2-3 минуты наблюдать эту надпись. Такое бывает если ты неэффективно рассчитываешь остатки например, пока доков было немного проводилось быстро, чем дальше — тем хуже. Либо вариант (21). Просто бери копию базы и тупо проводи доки по очереди, наблюдай который проводится слишком долго, или задает вопросы в процессе проведения.

  

zalex

28 — 17.08.06 — 16:09

+(27) Проводи по сетке, зачастую локально у тебя все летает, а по сети тормозит (если, например, запрос в цикл засунул — локально будет пару секунд проводится, а по сетке пару минут)

  

Воин 1С

29 — 17.08.06 — 16:12

(27) Кстати очень может быть, у меня в одном регистре висят огромные непроходящие минуса, из-за этого все доки долго черепятся

  

zalex

30 — 17.08.06 — 16:15

(29) Даже наверняка… Еще сделай нехитрую вешь —  поиск по всем текстам «НачатьТранзакцию», если какой-нить тяжелый отчет целиком в транзакцию сунул, те несколько минут пока он формируется все будут наблюдать эту же ошибку.

  

zalex

31 — 17.08.06 — 16:16

+(30) Короче с такой надписью всех блокирует кусок

НачатьТранзакцию();

ЗафиксироватьТранзакцию();

либо ОбработкаПроведения() — это такая же транзакция, только явно не написано.

  

Воин 1С

32 — 17.08.06 — 16:17

НачатьТранзакцию нигде нет, скорее всего обработка проведения подвешивает все..

  

zalex

33 — 17.08.06 — 16:19

(32) Осталось только оптимизировать, где-то многократные запросы, либо вместо итогов по движениям шаришься, чем больше движений — тем дольше проводится. Думай как сделать лучше.

  

zalex

34 — 17.08.06 — 16:22

Как вариант можно их в терминал загнать — проведение ускорится в разы, но код свой анализировать все же надо, где-то косяк.

http://www.mista.ru/articles1c/terminal.htm

  

Воин 1С

35 — 17.08.06 — 16:24

Спасиб , буду думать;)

Воин 1С

17.08.06 — 14:46

Последние несколько дней база стала давать предупреждение:При выполенении произошла ошибка! Таблица 1SJourn Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.Повторить попытку? [Да Нет].Появляется при проведении доков, выполнении отчетов. Если кто встречал такую фичу, подскажите как лечить

AeDen

1 — 17.08.06 — 14:47

Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.

zbv

2 — 17.08.06 — 14:47

В поиске смотрел?

Воин 1С

3 — 17.08.06 — 14:49

(1) Спасибо а то я думаю и что это значит…

Воин 1С

4 — 17.08.06 — 14:49

(2) Не пока ща гляну

Воин 1С

5 — 17.08.06 — 14:51

В поиске ничего подходящего нету;(

AeDen

6 — 17.08.06 — 14:51

(3) Ну, думай дальше. Кто мешает?

Воин 1С

7 — 17.08.06 — 14:59

Ну что, неужели никто не встречал ничего похожего?

GenV

8 — 17.08.06 — 15:03

(5) Плохо смотрел. Ищи: Ошибка обращения к данным при транзакции 1С

Воин 1С

9 — 17.08.06 — 15:07

(8) Спасиб, я глянул. Насколько понял, коллизия призаписи доков в табицу, используемую для УРБД. Но, почему она стала появляться? Раньше ведь не было..

GenV

10 — 17.08.06 — 15:19

(9) См.(1) Ошибка <одновременного> обращения к <различным> данным при транзакиции, выполняемой другим пользователем. Темерь понятно?

ламеры спрашивают

11 — 17.08.06 — 15:48

(10) Почему «к <различным>». Наверное хотел сказать «к одним и тем же»?

Воин 1С

12 — 17.08.06 — 15:52

(10)Нет, поясни плиз

GenV

13 — 17.08.06 — 15:52

(11) различным — значит не только к таблицам УРБД

Воин 1С

14 — 17.08.06 — 15:54

(13) В 1SJORn хранятся записи используемые урбд.Непонятно почему это появилось и что с ним делать;)

GenV

15 — 17.08.06 — 15:56

(14) … Да тех, кто в бронепоезде: несколько пользователей хотят одновременно получить одни данные. Возникает транзакция (блокировка данных). Теперь-то понятно?

ламеры спрашивают

16 — 17.08.06 — 15:57

(13) ОК

AeDen

17 — 17.08.06 — 15:57

(15) Rnj-nj gsnftncz ljcnexfnmcz lj lfyys[? rjnjhst ,kjrbhjdfys nhfypfrwbtq/

Воин 1С

18 — 17.08.06 — 15:57

От тех, кто в бронепоезде: Почему этой ошибки раньше не было?

Воин 1С

19 — 17.08.06 — 15:58

Сейчас она постоянно вылезает на экран

GenV

20 — 17.08.06 — 15:59

(19) Сейчас только один пользователь или кто-то что-то проводит?

zalex

21 — 17.08.06 — 15:59

(14) В 1SJORN хранятся журналы, все.

(18) Наиболее вероятно, что в одной из обработок проведения ты впендюрил Вопрос() или Предупреждение(). Обработка это транзакция, и она не закончится, пока пользователь не закроет окошко вызванное одной из этих функций. Пока один пользователь не закончит транзакцию, никто другой не может ее начать.

Воин 1С

22 — 17.08.06 — 16:01

(21) Ничего я не впиндюривал, я конфу сам полностью писал.

zalex

23 — 17.08.06 — 16:02

(22) Во-от…

AeDen

24 — 17.08.06 — 16:02

+(17) Разные пользователи пытаются обратиться к одним и тем-же данным, которые блокированы кем-то в транзакции.

Воин 1С

25 — 17.08.06 — 16:04

епрст, пользователей сколько было, столько и осталось, раньше этого предупреждения не было, а сейчас све юзеры ко мне бегут дружной толпой и жалуются

GenV

26 — 17.08.06 — 16:05

(25) Попрубуй оставить одного и проверь.

zalex

27 — 17.08.06 — 16:07

(25) Объясняю на пальцах, пока один пользователь проводит документ, другие пользователи ничего провести не могут, если у тебя где-то в проведении неэффективный алгоритм, т.е. док проводится 2-3 то все будут эти 2-3 минуты наблюдать эту надпись. Такое бывает если ты неэффективно рассчитываешь остатки например, пока доков было немного проводилось быстро, чем дальше — тем хуже. Либо вариант (21). Просто бери копию базы и тупо проводи доки по очереди, наблюдай который проводится слишком долго, или задает вопросы в процессе проведения.

zalex

28 — 17.08.06 — 16:09

+(27) Проводи по сетке, зачастую локально у тебя все летает, а по сети тормозит (если, например, запрос в цикл засунул — локально будет пару секунд проводится, а по сетке пару минут)

Воин 1С

29 — 17.08.06 — 16:12

(27) Кстати очень может быть, у меня в одном регистре висят огромные непроходящие минуса, из-за этого все доки долго черепятся

zalex

30 — 17.08.06 — 16:15

(29) Даже наверняка… Еще сделай нехитрую вешь —  поиск по всем текстам «НачатьТранзакцию», если какой-нить тяжелый отчет целиком в транзакцию сунул, те несколько минут пока он формируется все будут наблюдать эту же ошибку.

zalex

31 — 17.08.06 — 16:16

+(30) Короче с такой надписью всех блокирует кусок

НачатьТранзакцию();

ЗафиксироватьТранзакцию();

либо ОбработкаПроведения() — это такая же транзакция, только явно не написано.

Воин 1С

32 — 17.08.06 — 16:17

НачатьТранзакцию нигде нет, скорее всего обработка проведения подвешивает все..

zalex

33 — 17.08.06 — 16:19

(32) Осталось только оптимизировать, где-то многократные запросы, либо вместо итогов по движениям шаришься, чем больше движений — тем дольше проводится. Думай как сделать лучше.

zalex

34 — 17.08.06 — 16:22

Как вариант можно их в терминал загнать — проведение ускорится в разы, но код свой анализировать все же надо, где-то косяк.

http://www.mista.ru/articles1c/terminal.htm

  

Воин 1С

35 — 17.08.06 — 16:24

Спасиб , буду думать;)

Показывать по
10
20
40
сообщений

Новая тема

Ответить

sahzavod

Дата регистрации: 05.09.2003
Сообщений: 2

От чего может возникнуть «Ошибка времени выполнения» при работе транзакции в конфигурации ЗиК.<br><br>Конкретнее:<br><br>Таблица: 1SJOURN Ошибка обращения к данным при транзакции, выполняемой другим пользователем.<br><br>И как востановить потеряные данные?<br><br>Заранее спасибо :)

Кот, который гуляет сам по себе

Дата регистрации: 29.10.2001
Сообщений: 882

Возникновение такой ошибки как правило связано с перегруженностью<br><br>сети. Эта ошибка происходит в том случае, когда программа<br><br>в течение продолжительного периода времени пытается захватить<br><br>некоторый файл (на очень непродолжительное время), а у нее не<br><br>получается. После повторения попыток в течение 60 сек. возникает<br><br>такая ошибка.<br><br> Как показывает опыт, причиной практически во всех случаях<br><br>является недостаточная производительность сети или сервера.<br><br>В частности такая ситуация имеет место быть при использовании<br><br>невыделенных или сильно нагруженных другими задачами серверов<br><br>со стороны значительного числа клиентов.<br><br>

vela

Дата регистрации: 18.08.2003
Сообщений: 20

Если дело в этом, то можно попробовать увеличить время ожидания захвата таблиц Базы Данных, к примеру до 90 сек. От многого уберегает, может и здесь поможет.

qwer007.070

Дата регистрации: 21.08.2007
Сообщений: 1

Как можно устранить ошибку при транзакций?

Alexandr VA

Дата регистрации: 07.01.2007
Сообщений: 1666

> Как можно устранить ошибку при транзакций? <br>Способов много, пробуйте:<br>Увеличить время ожидания захвата таблиц. <br>Сжать ДБФные таблицы, выполнить дефрагментацию диска с базами.<br>Повысить производительность сервера и сети.<br>Очистить журнал регистрации (сначала сархивируйте)<br>Перейти в терминалы<br>Перейти на SQL <br><br>

Татьянаааа

Дата регистрации: 07.08.2007
Сообщений: 86

Меню СЕРВИС -> ПАРАМЕТРЫ -> (Закладка ОБЩИЕ) Время ожидания захвата таблицы поставьте 40-60

Показывать по
10
20
40
сообщений

  1. Здраствуйте! Возникает такая проблема — «При выполнении транзакции произошла ошибка. Таблица 1Sjourn. Ошибка обращения к данным при транзакции, выполняемой другим пользователем»
    стоит 15 клиентских компов и один сервер опрационка win server 2003. база 1с7.7 -dbf, объем 1.5гига. В данный момент сейчас бухгалтера все работают в одном документе, и я думаю что это из-за этого. Позвонил в службу поддержки которые обслуживают нашу 1с — там ничего умного не посоветовали — «сказали типа у вас сервак на котором стоит 1с слабый — меняйте» короче прогнали полную чушь и отмазались :unsure: .
    Комп под сервак мы приобретали 3 месяца назад (проц. — атлон Х2 5600 оператива 2гига) вообщем понятно что дело не в этом. Так же я попробовал увеличить Значение ожидания, как было написано здесь на форуме, проблема не исчезла. Подскажите пожалуйста что можно еще сделать, и есть ли выход из этой ситуации???????

  2. Offline

    bob
    Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    394
    Симпатии:
    1
    Баллы:
    29

    в одном документе работать одновременно невозможно. Ошибка из-за того, что при проведении документа, блокируется определенное кол-во таблиц, и другие пользователи могут с ними работать только после окончаниЯ проведения. Это только один из множества вариантов, есть еще, звоните в более компетентную службу поддержки.

  3. Offline

    Kaboom
    Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
  4. Заранее всем спасибо. завтра на работе попробую!

Подскажите, почему при работе с 1С по сети, когда одновременно на нескольких компьютерах выполняются какие-либо операции, появляются ошибки: «При выполнении транзакции произошла ошибка! Таблица: 1SJOURN. Ошибка обращения к данным при транзакции, выполняемой другим пользователем. Повторить попытку выполнить транзакцию?» ???

Время ожидания захвата таблиц увеличь…

а где его можно увеличить?

в меню сервис — параметры

потому как нагрузка на ваш сервер не адекватна числу юзеров. 1С блокирует таблицы в момент проведения (например) документа, т.е. второй (и последующие) юзера, которые в этот же момент времени пытаются провести док — получают такой транспорант. +1 хотя фиг его знает, может и не помочь P.S. поздравляю

вообщем лечит это терминал, ну и дальше уже можно думать — зависит от числа пользователей, характера их работы, объема баз и т.п.

Тэги:

Комментарии доступны только авторизированным пользователям

Программа 1С является самой популярной и наиболее удобной при автоматизации предприятия. В ней предусмотрены решения, созданные на базе одной платформы, соответственно, функционируют они по одному принципу, что значительно упрощает использование ПО. Нередко пользователи сталкиваются с сообщением «В данной транзакции уже происходили ошибки». Рассмотрим как в 1С 8.3 исправить подобную проблему.

1С 8.3 документация по работе с программой

Содержание

  1. Причина появления сообщения о повторных ошибках в 1С 8.3
  2. Есть ли смысл исправлять ошибки транзакции, которые уже происходили
  3. Устраняем ошибку транзакции в 1С Предприятие версии 8.3
  4. Также можно выполнить удаление другим способом:
  5. Особенности написания кода, которые помогут исключить ошибку в транзакциях

Причина появления сообщения о повторных ошибках в 1С 8.3

Главная проблема заключается в том, что сообщение об ошибке «В данной транзакции уже происходили ошибки» неинформативно, нет никакой конкретики. Поэтому будем опираться на проблемы, с которыми чаще всего сталкиваются пользователи. Например, с технической стороны ошибка такого рода может возникнуть при первой транзакции, то есть и при первичном обращении к базе данных.

Часть функций, которые выполняет платформа 1С

Подобная ошибка может произойти при обработки ситуации «Попытка-Исключение». Например, при создании записи «Объект_1» формируется исключительная ситуация, а сама ошибка появляется в «Ссылка_2.Наименование». То есть происходит запрос базы данных объектной модели.

В «Попытке-Исключение» начинается обработка операции, которая также должна быть выполнена в транзакции, которая, в свою очередь, может быть явной или неявной (создается в момент записи объекта).

1С: Предприятие 8.3 не поддерживает транзакций вложенного типа. Однако допускается создание вложенной конструкции сразу нескольких транзакций. Из-за наличия явной и неявной транзакции может возникнуть ошибка. То есть программа запрещает транзакцию 1-го уровня на более низших уровнях.

Читайте также: Значение не является значением объектного типа 1С.

Есть ли смысл исправлять ошибки транзакции, которые уже происходили

При работе с 1С 8.3 не стоит оставлять подобные вещи без внимания. Прежде всего, другой пользователь также может столкнуться с ней, но не поймет причин её возникновения. Если не выполнить отладку системы, то в дальнейшем могут возникнуть дополнительные проблемы. Так как оповещение «В данной транзакции уже происходили ошибки» появляется при первом обращении, то в журнале регистрации данная строка обязательно зафиксируется, но, опять же, без подробного пояснения. Хоть ошибка и располагается на нижнем уровне кода, она нарушит необходимую иерархию. Это приведет к сбою других функций и только еще больше запутает администратора.

При наличие некорректного кода, транзакции будут выполняться с нарушениями или не будут выполняться вовсе. Поэтому при возникновении таких сообщений стоит решить проблему.

Устраняем ошибку транзакции в 1С Предприятие версии 8.3

В первую очередь стоит очистить кэш базы данных. Сделать это можно вручную. Для этого:

  1. Переходим на диск, на котором расположена база 1С.
  2. Переходим в папку с базой (путь может отличаться, но по умолчанию она установлена в той директории, которая показана на фото ниже).Путь в данным кэша 1С версии 8.3
  3. Удаляем кэш вручную.Удаление кэша вручную
  4. То же самое делаем с кэшем в папке 1с8.2.

Также можно выполнить удаление другим способом:

  1. Создаем на рабочем столе пустой документ. Назовем его «Удаление пользовательского кэша».Создание пустого документа на рабочем столе
  2. Указываем в нем следующую строчу и сохраняем документ в формате .bat.

Указание функции для очистки кэша

После того, как файл преобразуется, его можно запустить и весь пользовательский кэш удалится автоматически. Пробуем снова запустить программу и выполнить операцию. Если не помогло, то лучше всего обратиться к администратору. Также нужно помнить про основные особенности написания кода с использованием транзакций. Это поможет исключить ряд распространенных ошибок.

Также вам будет интересно: Ошибка в 1С 7.7 «Порядок сортировки, установленный для базы данных, отличается от системного».

Особенности написания кода, которые помогут исключить ошибку в транзакциях

Прежде всего нужно опираться на нюансы корректной обработки исключений:

  • Метод «Начать транзакцию» должен быть вынесен за пределы «Попытка-Исключение».
  • Действия, осуществляемые после вызова «Начать транзакцию» должны быть в пределах блока «Попытка». К этом также относится чтение, обработка или блокировка данных.
  • Метод «Зафиксировать транзакцию» необходимо прописывать последним в блоке «Попытка» и до «Исключение».
  • В блоке «Исключение» необходимо сначала обратиться к методу «Отменить транзакцию» и уже потом выполнять прочие действия.
  • Если применяются вложенные транзакции, то в конце «Исключение» не лишним будет добавить оператора «Вызвать исключение».
  • В «Исключения» следует добавить соответствующую запись об ошибке.
  • Если транзакция неявная, то нет никакого смысла переходить к методу «Начать транзакцию». Некоторые также пробуют «обернуть» в явную транзакцию те операции, которые и вовсе не нуждаются в согласовании.

Решить проблему транзакций, в которых происходят ошибки, самостоятельно получается не всегда. Поэтому стоит попробовать выполнить простейшие действия – перезагрузить программу или очистить кэш. К более серьезным манипуляциям в 1С стоит переходить только при уверенности, что вы обладаете достаточным опытом.

Показывать по
10
20
40
сообщений

Новая тема

Ответить

sahzavod

Дата регистрации: 05.09.2003
Сообщений: 2

От чего может возникнуть «Ошибка времени выполнения» при работе транзакции в конфигурации ЗиК.<br><br>Конкретнее:<br><br>Таблица: 1SJOURN Ошибка обращения к данным при транзакции, выполняемой другим пользователем.<br><br>И как востановить потеряные данные?<br><br>Заранее спасибо :)

Кот, который гуляет сам по себе

Дата регистрации: 29.10.2001
Сообщений: 882

Возникновение такой ошибки как правило связано с перегруженностью<br><br>сети. Эта ошибка происходит в том случае, когда программа<br><br>в течение продолжительного периода времени пытается захватить<br><br>некоторый файл (на очень непродолжительное время), а у нее не<br><br>получается. После повторения попыток в течение 60 сек. возникает<br><br>такая ошибка.<br><br> Как показывает опыт, причиной практически во всех случаях<br><br>является недостаточная производительность сети или сервера.<br><br>В частности такая ситуация имеет место быть при использовании<br><br>невыделенных или сильно нагруженных другими задачами серверов<br><br>со стороны значительного числа клиентов.<br><br>

vela

Дата регистрации: 18.08.2003
Сообщений: 20

Если дело в этом, то можно попробовать увеличить время ожидания захвата таблиц Базы Данных, к примеру до 90 сек. От многого уберегает, может и здесь поможет.

qwer007.070

Дата регистрации: 21.08.2007
Сообщений: 1

Как можно устранить ошибку при транзакций?

Alexandr VA

Дата регистрации: 07.01.2007
Сообщений: 1666

> Как можно устранить ошибку при транзакций? <br>Способов много, пробуйте:<br>Увеличить время ожидания захвата таблиц. <br>Сжать ДБФные таблицы, выполнить дефрагментацию диска с базами.<br>Повысить производительность сервера и сети.<br>Очистить журнал регистрации (сначала сархивируйте)<br>Перейти в терминалы<br>Перейти на SQL <br><br>

Татьянаааа

Дата регистрации: 07.08.2007
Сообщений: 86

Меню СЕРВИС -> ПАРАМЕТРЫ -> (Закладка ОБЩИЕ) Время ожидания захвата таблицы поставьте 40-60

Показывать по
10
20
40
сообщений

Читают тему:

Последние несколько дней база стала давать предупреждение:При выполенении произошла ошибка! Таблица 1SJourn Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.Повторить попытку? [Да Нет].Появляется при проведении доков, выполнении отчетов. Если кто встречал такую фичу, подскажите как лечить

Ошибка обращения к данным при транзакиции, выполняемой другим пользователем.

Спасибо а то я думаю и что это значит…

В поиске ничего подходящего нету;(

Ну, думай дальше. Кто мешает?

Ну что, неужели никто не встречал ничего похожего?

Плохо смотрел. Ищи: Ошибка обращения к данным при транзакции 1С

Спасиб, я глянул. Насколько понял, коллизия призаписи доков в табицу, используемую для УРБД. Но, почему она стала появляться? Раньше ведь не было..

См. Ошибка <одновременного> обращения к <различным> данным при транзакиции, выполняемой другим пользователем. Темерь понятно?

Почему «к <различным>». Наверное хотел сказать «к одним и тем же»?

различным — значит не только к таблицам УРБД :)

В 1SJORn хранятся записи используемые урбд.Непонятно почему это появилось и что с ним делать;)

… Да тех, кто в бронепоезде: несколько пользователей хотят одновременно получить одни данные. Возникает транзакция (блокировка данных). Теперь-то понятно?

Rnj-nj gsnftncz ljcnexfnmcz lj lfyys[? rjnjhst ,kjrbhjdfys nhfypfrwbtq/

От тех, кто в бронепоезде: Почему этой ошибки раньше не было?

Сейчас она постоянно вылезает на экран

Сейчас только один пользователь или кто-то что-то проводит?

В 1SJORN хранятся журналы, все. Наиболее вероятно, что в одной из обработок проведения ты впендюрил Вопрос или Предупреждение. Обработка это транзакция, и она не закончится, пока пользователь не закроет окошко вызванное одной из этих функций. Пока один пользователь не закончит транзакцию, никто другой не может ее начать.

Ничего я не впиндюривал, я конфу сам полностью писал.

+ Разные пользователи пытаются обратиться к одним и тем-же данным, которые блокированы кем-то в транзакции.

епрст, пользователей сколько было, столько и осталось, раньше этого предупреждения не было, а сейчас све юзеры ко мне бегут дружной толпой и жалуются

Попрубуй оставить одного и проверь.

Объясняю на пальцах, пока один пользователь проводит документ, другие пользователи ничего провести не могут, если у тебя где-то в проведении неэффективный алгоритм, т.е. док проводится 2-3 то все будут эти 2-3 минуты наблюдать эту надпись. Такое бывает если ты неэффективно рассчитываешь остатки например, пока доков было немного проводилось быстро, чем дальше — тем хуже. Либо вариант . Просто бери копию базы и тупо проводи доки по очереди, наблюдай который проводится слишком долго, или задает вопросы в процессе проведения.

+ Проводи по сетке, зачастую локально у тебя все летает, а по сети тормозит (если, например, запрос в цикл засунул — локально будет пару секунд проводится, а по сетке пару минут)

Кстати очень может быть, у меня в одном регистре висят огромные непроходящие минуса, из-за этого все доки долго черепятся

Даже наверняка… Еще сделай нехитрую вешь —  поиск по всем текстам «НачатьТранзакцию», если какой-нить тяжелый отчет целиком в транзакцию сунул, те несколько минут пока он формируется все будут наблюдать эту же ошибку.

+ Короче с такой надписью всех блокирует кусок НачатьТранзакцию; … ЗафиксироватьТранзакцию; либо ОбработкаПроведения — это такая же транзакция, только явно не написано.

НачатьТранзакцию нигде нет, скорее всего обработка проведения подвешивает все..

Осталось только оптимизировать, где-то многократные запросы, либо вместо итогов по движениям шаришься, чем больше движений — тем дольше проводится. Думай как сделать лучше.

Как вариант можно их в терминал загнать — проведение ускорится в разы, но код свой анализировать все же надо, где-то косяк.

Тэги:

Комментарии доступны только авторизированным пользователям

Привет.
Имеется база (1.5 Гб, ДБФ, в день забивают около 1200 документов), находится на сервере (Ксеон 2-х процессорный по 4 ядра, 6 Гб ОЗУ,

Рейд массив). База более менне работает при 5 пользователях, которые усердно забиват заявки, накладные и прочие документы. Когда

начинают входить еще пользователи, то база начинает ТОРМОЗИТЬ, и некоторые пользователи начинают ВЫЛИТАТЬ с документов (при

открытии, проведении и т.д.). В журнале регистраций пишется, пример:

УстановитьНовыйНомер(«А-«); : {Документ.СчетФактураВыданный.Форма.Модуль(449)}: Таблица: 1SJOURN Ошибка обращения к данным при

транзакции, выполняемой другим пользователем

притом все работаю со своими документами.
НО НО НО, если в данной ИБ работают скажем 5 пользователей, и пару человек заходят в другие ИБ (не большие), начинаются такие же

глюки.

Пробовал переводить на SQL, знаю, что она не кретична к пользователям, НО раз в неделю делается восстановление последовательности,

на SQL она делается в 2 раза дольше, и за выходные обработка может не успеть выполниться.

Вопрос: что делать???
может попробовать не проводить восстановление последовательности, а сделать перепроводку документов, при это сделать оптимизацию

при проведении (основные тормоза при проведении документа — расчет временных итогов) — использовать ТЗ или ДБФ файл для хранения

итогово (увеличение производительности при массовом проведении в РАЗЫ)???

  • Таблица 1sconst ошибка обращения к данным при транзакции выполняемой другим пользователем
  • Таблица 1 сведения поясняющие расхождения ошибки противоречия несоответствия как заполнить
  • Таблетка полностью разложилась во рту ошибка
  • Табель учета рабочего времени ошибки при заполнении
  • Табдок прочитать 1с ошибка при выполнении файловой операции