Имя: Пароль:
1C
 
v7: Ошибка обращения к данным при транзакции, выполняемой другим пользователем
0 FEAS
 
09.04.10
09:12
У нас работают несколько расчетчиков в зп каждый формирует документ по определенным подразделениям сотр(сотрудников много), и соответсвенно ошибка "Ошибка обращения к данным при транзакции, выполняемой другим пользователем "  , также например один может проводить документы а другие печатают отчеты -тоже ошибка.
поставили 300 сек время ожидания захвата таблиц всеравно такая хрень.
Что делать ? больше ставить? тормозить будет если поставить болше может снова вылететь  ведь им постоянно нужно работать
1 povar
 
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
А вообще, курить где тупит и переписывать на прямые...
4 supremum
 
09.04.10
09:17
Или распределить работу кадровиков, расчетчиков так, что бы не возникала обходимость одновременного обращения к одним и тем же таблицам.
5 FEAS
 
09.04.10
09:18
Если в запросе условие по подразделению он ведь блокирует толко эти записи или нет?
6 ДенисЧ
 
09.04.10
09:19
(5) Нет.
7 Ёпрст
 
гуру
09.04.10
09:20
(5) запрос вообще ничего не блокирует.
8 DrZombi
 
гуру
09.04.10
09:20
(5)Запрос блокирует весь список данных, которые использует :)
Начни разбираться в структуре хранения данных в 7.7 и все поймешь :)

... так же запросы во время проведения, это зло :)
9 Ёпрст
 
гуру
09.04.10
09:21
+7 блокировка, только ежели кто-то чего-то проводит, ибо проведение - это всегда транзакция.
10 DrZombi
 
гуру
09.04.10
09:21
(7)Может быть, но ты записать, то же нечего не смогешь :)
Только читать
11 Ёпрст
 
гуру
09.04.10
09:21
(8) Гон.
1с-кий запрос построен на "грязном чтении" и он не блокирует ничего.
12 Ёпрст
 
гуру
09.04.10
09:22
(10) да ну ?
13 FEAS
 
09.04.10
09:23
нет я понял, просто вот спросил там в основном условия по перебору элементов например справочника сотр тоже вылетает ошибка если это сделать на запросе будет лучше?
14 FEAS
 
09.04.10
09:24
При формировании отчетов
15 FEAS
 
09.04.10
09:25
выборка блокирует как я понимаю?
16 ДенисЧ
 
09.04.10
09:26
(15) нет
17 1dvd
 
09.04.10
09:26
(15) Твоя задача, чтобы проведение и запись шли быстрее
18 DrZombi
 
гуру
09.04.10
09:28
(11)Ну не гони, у нас как раз вот запросы от 1С и блокировали всю базу, при этом это просто отчет по регистру :)
При этом, пока не выкидывали сего пользователя, все курили :)
19 FEAS
 
09.04.10
09:30
а как тогда? одна делает расчет другая формирует отчет и ошибка но записей пока нет если перебор не влияет то что?
20 ДенисЧ
 
09.04.10
09:31
(19) Вот как разсчёт и блокирует...
21 FEAS
 
09.04.10
09:31
весь журнал расчетов?
22 Ёпрст
 
гуру
09.04.10
09:33
(18) ты бред то не неси..
23 FEAS
 
09.04.10
09:33
нет смысла ставить секунды да хоть 500? просто расчет мин 20 идет
24 Дядя Васька
 
09.04.10
09:33
(22) Руками в тот отчет транзакцию влепили, вот и блокировал походу.
25 FEAS
 
09.04.10
09:34
тогда на 20 мин все записи заблокированы транзакцией? Отчет не может?
26 Дядя Васька
 
09.04.10
09:35
(25) Ну не так чтобы все, но общий журнал блокирует, а без него все висит...
27 FEAS
 
09.04.10
09:37
в отчете нет ранзакций
28 FEAS
 
09.04.10
09:37
как тчеты формировать тогда что не правильно
29 FEAS
 
09.04.10
09:37
какой общий?
30 Ёпрст
 
гуру
09.04.10
09:38
Еще раз - ошибка блокировки возникает только при записи/проведении объектов ИБ..
и всё.
31 FEAS
 
09.04.10
09:39
Ну я понял это у расчетчика которая хочет сформировать отчет вылазит данная ошибка
32 Ёпрст
 
гуру
09.04.10
09:39
(31) ты это понял или ты это видел ?
33 FEAS
 
09.04.10
09:40
вот видел
34 DrZombi
 
гуру
09.04.10
09:40
(22)Сам был поражен, но запрос был по дебиторке и брал данные за год :(
35 Ёпрст
 
гуру
09.04.10
09:42
(34) да хоть за 100..
36 Ёпрст
 
гуру
09.04.10
09:42
(33) чего видел ? Ленина ?..
37 FEAS
 
09.04.10
09:43
вобщем если один человек формирует отчет, а у другого проводится расчет то у которого отчет вылазит ошибка блокировки данных другим пользователем
38 Ёпрст
 
гуру
09.04.10
09:44
(37) не верю.
Что за конфа ? Что за отчет ?
39 DrZombi
 
гуру
09.04.10
09:45
(30) Не говори оп, пока не перелетел через забор 1С-ных глюков :)
К примеру если делать запрос типо

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

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

...Конечно это не относится к блокировкам, но сея 7.7 полна неожиданностей :)
40 DrZombi
 
гуру
09.04.10
09:46
(38)Я ему верю :) И еще как :)
(0)Совет, пиши прямые запросы :)
41 Ёпрст
 
гуру
09.04.10
09:47
сказочники.
42 Дядя Васька
 
09.04.10
09:49
(29) 1sjourn вестимо. Как правило одинэсовские запросы его джойнят, а во время проведения он заблокирован полностью, вот и обломинго с отчетом.
43 FEAS
 
09.04.10
09:51
ага на него ругается на 1sjourn правильно понял
44 FEAS
 
09.04.10
09:51
и как быть?
45 povar
 
09.04.10
09:53
(44) я ж тебе сразу сказал, базу надо переписывать
46 DrZombi
 
гуру
09.04.10
09:53
(44)Убрать запросы из модуля проведения :)
Оптимизировать сам метод проведения, постараться не писать в другие справочники, во время проведения...
Пользователям стараться вдалбливать, что не кашерно делать один документ с 20000 строк :) Лучше 20000 документов, но с одной строкой :)
47 Ёпрст
 
гуру
09.04.10
09:57
Для всех сказочников, делаем простой тест:

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

У второго пользователя пробуем делать отчеты.
А потом извиняемся и больше никогда не рассказываем сказки про 1с.
48 FEAS
 
09.04.10
10:01
Обработка расчет зарпалты, она там блокирует
49 FEAS
 
09.04.10
10:01
когда считаем зарплату
50 FEAS
 
09.04.10
10:02
Там используются транзакции
51 FEAS
 
09.04.10
10:02
не документ
52 Ёпрст
 
гуру
09.04.10
10:03
(48) п..ц.
Ты разницу между отчетом - это чтение данных и Обработкой расчет зарпалты - которая вносит изменения в саму ИБ не видишь???
53 FEAS
 
09.04.10
10:04
как не вижу я понимаю
54 FEAS
 
09.04.10
10:04
там транзакции используются
55 Skom
 
09.04.10
10:05
+(47) вот именно
все запросы в 1с ке выполняются грязночтением...как то так


если посмотреть профайлер то только и видно хинты
(nolock)
56 Ёпрст
 
гуру
09.04.10
10:06
(54) тем более, журнал и другие таблички уже заблокированы другим пользователем - пока он не проведёт свой документ - ты транзакцию не сможешь поставить - идёт ожидание захвата таблички.
И всего лишь.
57 FEAS
 
09.04.10
10:07
Если так? тогда зачемошибка если просто чтение
58 FEAS
 
09.04.10
10:07
убрать транзакции?
59 FEAS
 
09.04.10
10:08
доки ни кто  вэто время может не проводит
60 FEAS
 
09.04.10
10:08
только расчет, и отчеты
61 Нафигатор
 
09.04.10
10:08
(0) На каких именно строчках модулей ошибки возникают?
62 FEAS
 
09.04.10
10:10
у меня в отчетах запроы чисто. Тогда ошибки не должно быть по вашему мнению.
63 povar
 
09.04.10
10:14
(48) бу га га
64 povar
 
09.04.10
10:14
это далеко не отчет
65 Ёпрст
 
гуру
09.04.10
10:14
(57) Не тупи - сам же сказал - что в обработке твоей транзакция +, на сколько я помню Зик - эта обработка делает запись в ИБ..
66 FEAS
 
09.04.10
10:21
да транзакция в обработке она вносит записи в журнал расчетов считает. В этоже время другой человек печатает отчеты
67 FEAS
 
09.04.10
10:23
уберу транзакцию
68 FEAS
 
09.04.10
10:23
и нафиг
69 FEAS
 
09.04.10
10:25
не туплю а по твоему размышлению у человека который формирует отчеты не должно быть ошибки
70 Дядя Васька
 
09.04.10
10:25
(67) Чревато... Тогда смогут двое одновременно в эту табличку писать, результат может получиться несколько неожиданным )
71 DrZombi
 
гуру
09.04.10
10:29
(47)Сказочник... не дальновидный, сделай наоборот!!!
Запусти отчет по регистру, за год... сделай его так что бы он работал час, как мин, напиши не прямыми запросами :) (короче не оптимизируй его :))

Потом попробуй провести документ по тому же самому регистру :)
И удивляйся...
При этом в тесте усложним.... Запусти в параллельно... тот же самый запрос на 10-ти разных ПК!!! (или разных терминальных сессиях)
...
Поразись... реальной обстановкой... а не альфо тестером на одном ПК!!
72 Ёпрст
 
гуру
09.04.10
10:31
(71) Не тупи.. у нас юзверов до 80 в базе - таких проблем нет и не было никогда.
73 DrZombi
 
гуру
09.04.10
10:32
(72)Ну я же пишу... не оптимизируй запросы, на прямые и период возьми по само использованному регистру за год, а не за 10 дней , как макс :)
74 Ёпрст
 
гуру
09.04.10
10:32
+71 Если ты такой неверующий Фома- смотри профайлер в скуле, например, там везде хинт nolock в запросе..
Табличка никогда не блокируется, хоть за пятилетку строй запросы свои.
75 DrZombi
 
гуру
09.04.10
10:32
+(72)И повиснит твоя база... не забудь отрубить ВК :)
76 Ёпрст
 
гуру
09.04.10
10:33
(75) Хорош чушь пороть, не позорился бы..
77 DrZombi
 
гуру
09.04.10
10:33
(74)Но и записать ты при этом не смогешь, 1С требует при записи в табличку (7.7) монопольного доступа, т.е. лочит всю таблицу :)
78 DrZombi
 
гуру
09.04.10
10:34
(76)Вот я то же бы утверждал, что код в (39) не реален... но он так себя и ведет :)
79 Ёпрст
 
гуру
09.04.10
10:34
(77) С какой радости то???
Еще раз - ЗАПРОС в 1с не лочит НИЧЕГО.
80 DrZombi
 
гуру
09.04.10
10:35
(79)Тоже сам все еще поражаюсь :(
Сам многому удивляюсь в 7.7, за все годы работы :)
81 Invalid
 
09.04.10
10:35
FEAS, http://softpoint.ru/feedback_id40.htm
У софтпоинта спроси, может помогут.
82 DrZombi
 
гуру
09.04.10
10:36
(79)Я тоже поразился, что он при 1С-ных запросах ложет туже самую таблицу, но во временные файлы :)
83 Ёпрст
 
гуру
09.04.10
10:36
Ты там не отмазывайся...сказочник.
84 DrZombi
 
гуру
09.04.10
10:38
(83)Если бы... я тебе пишу, что и палка стреляет ;)
И твои утверждения, что нечему лочиться там тоже ошибочные :) Не ты же писать платформу 7.7 :)
85 Ёпрст
 
гуру
09.04.10
10:40
(84) оставайся дальше в своих грёзах.. только вот тут не надо этого писать..
86 FEAS
 
09.04.10
10:49
в это время никто другой не делает это , если запрос чисто читает то он должен без ошибки читать и все
87 FEAS
 
09.04.10
10:51
При транзакции запрос не может счиать или нет  Ёпрст3?
88 DrZombi
 
гуру
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
Единственное но - не нужно путать отчеты и обработки. Обработка выполняя в транзакции определенные действия на изменения действительно может вступать в блокировку.
92 DrZombi
 
гуру
09.04.10
11:05
(89)Я практик... мне твое написано... мало что говорит.... как правил у нас Аналитик, так красиво расписал программу, щас смотрю на ее реализацию, в 7.7.
Думаю, он много с экономил на программистах, код писали школьники, ужо не говоря про студентов с бух. факов
93 FEAS
 
09.04.10
11:07
когда отчеты формируются ошибка вылазит за чем что то проверять, сам вижу, в это время работает обработка на запись в ИБ. Документы мне пока не нужны
94 DrZombi
 
гуру
09.04.10
11:07
+(89)Не поленись... проведи експеремент на 10 различных ПК и на данных годовой давности и тогда и пиши, то что написал программер, что бы от него отвалили :)
95 FEAS
 
09.04.10
11:11
Если гвоитте отчеты не блокируют тогда зачем ошибка то не пойму, если они только на чтение.
96 МуМу
 
09.04.10
11:12
То FEAS. Ну тогда приведи точно название ошибки, название отчета и название обработки. Бывает исключение из правил (менее 1 процента) но я очень сомневаюсь что это тот случай.
97 FEAS
 
09.04.10
11:15
У нас переписанная конфига ЗП не даст название , отчет например Расчетная ведомость обработка расчет зарплаты.
вот такая хрень вылазит
Если ЖрнЗарплата.ВыполнитьРасчет()=0 Тогда
{Обработка.РасчетЗарплаты.Форма.Модуль(232)}: Таблица: 1SJOURN Ошибка обращения к данным при транзакции, выполняемой другим пользователем
98 DrZombi
 
гуру
09.04.10
11:21
(97)Где то была библиотечка, которая в дбф-е снимала нагрузку на базу при транзакции :)
Но не помню как называлось, вроде ромикса :)
Тебе она нуна
99 sapphire
 
09.04.10
11:26
(89) Это смотря как написать отчет.
100 nop
 
09.04.10
11:26
100
102 МуМу
 
09.04.10
11:34
То 99. Ну можно в отчете открыть транзакцию и в ней перепроводить документы:)
То 97. не используются никакие сторонние компоненты?
103 Нафигатор
 
09.04.10
11:59
(96) При обращениях к 1SCONST это не такая уж редкая ситуация.
104 DrZombi
 
гуру
09.04.10
12:06
(102)Только щас понял, что речь про ЗиК :))))
Да только Формек + 1С++, так же это УПП, а вернее я бы сказал, даже ТиС :)
При этом формекс без пред настроек, также 1С++ все берет по дефолту, ни каких настроек ;)
105 DrZombi
 
гуру
09.04.10
12:06
+(104)(102)База SQL
106 FEAS
 
09.04.10
15:52
даже когда одни отчеты печатают в которых нет транзакции всеравно выходит данная ошибка
107 Cthulhu
 
09.04.10
17:24
а при записи если готовить данные для проведения (список движений), а в обработке проведения уже подготовленные ранее движения быренько прописать - не поможет? (способы подготовки-хранения-чтения-удаления движений не особая проблема).
108 sapphire
 
09.04.10
17:44
(107) Старый добрый способ ускорения клюшек :))))
Из отчетов убрать всякую каку типа РассчитатьИтоги и ПолучитьРезультатРасчета или что нить в этом духе, что вешает блокировки на таблицы движений и итогов.