Имя: Пароль:
1C
1C 7.7
v7: Напомните причину и метод борьбы с блокировкой 1SSYSTEM
,
0 smaharbA
 
08.02.12
09:25
---------------------------
1С:Предприятие
---------------------------
При выполнении транзакции произошла ошибка!
Таблица: 1SSYSTEM
Ошибка блокировки при модификации или удалении записи
Повторить попытку выполнить транзакцию?
---------------------------
Да   Нет  
---------------------------
1 ЧеловекДуши
 
08.02.12
09:26
УРБД ?
SQL ?
Все весят, одЫн работает?
2 smaharbA
 
08.02.12
09:29
SQL никто не может провести за та
3 dk
 
08.02.12
09:30
ЕМ блокировки по таблице не показывает?
4 vde69
 
08.02.12
09:34
1. смотри лог скуля на предмет дедлоков
2. если их нет


// тестирование SQL сервера
//
// После создания вызываешь EXEC track_waitstats 300, 1
//
// 300 - минуты скока мерить
// 1 - интервал в минутах


CREATE proc get_waitstats
AS

SET nocount ON

DECLARE now datetime,@totalwait numeric(20,1)
  ,@endtime datetime,@begintime datetime
  ,hr int,@min int,@sec int

SELECT  now=max(now),@begintime=min(now),@endtime=max(now)
FROM waitstats WHERE [wait type] = 'Total'

-- Subtract waitfor, sleep, and resource_queue from total.
SELECT @totalwait = sum([wait time]) + 1 FROM waitstats WHERE [wait type] NOT IN ('WAITFOR','SLEEP','RESOURCE_QUEUE', 'Total',
 '***total***') AND now = now

DELETE waitstats WHERE [wait type] = '***total***' AND now = now INSERT INTO waitstats SELECT '***total***',0,@totalwait,@totalwait,now

SELECT [wait type],[wait time],percentage=cast (100*[wait time]/@totalwait
 AS numeric(20,1))
FROM waitstats
WHERE [wait type] NOT IN ('WAITFOR','SLEEP','RESOURCE_QUEUE','Total')
AND now = now
ORDER BY percentage desc

GO

CREATE proc track_waitstats (@num_samples int=10,@delaynum int=1,@delaytype
 nvarchar(10)='minutes')
AS

SET nocount ON
IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'waitstats')
  CREATE table waitstats ([wait type] varchar(80),
     requests numeric(20,1),
     [wait time] numeric (20,1),
     [signal wait time] numeric(20,1),
     now datetime default getdate())
ELSE    truncate table waitstats
dbcc sqlperf (waitstats,clear)                            -- Clear out waitstats.
DECLARE i int,@delay varchar(8),@dt varchar(3),now datetime,
  @totalwait numeric(20,1),@endtime datetime,@begintime datetime,hr int,
  @min int,@sec int
SELECT i = 1
SELECT @dt = case lower(@delaytype)
  WHEN 'minutes' THEN 'm'
  WHEN 'minute' THEN 'm'
  WHEN 'min' THEN 'm'
  WHEN 'mm' THEN 'm'
  WHEN 'mi' THEN 'm'
  WHEN 'm' THEN 'm'
  WHEN 'seconds' THEN 's'
  WHEN 'second' THEN 's'
  WHEN 'sec' THEN 's'
  WHEN 'ss' THEN 's'
  WHEN 's' THEN 's'
  ELSE @delaytype
END
IF @dt NOT IN ('s','m')
BEGIN
  PRINT 'please supply delay type e.g. seconds or minutes'
  RETURN
END
IF @dt = 's'
BEGIN
  SELECT @sec = @delaynum % 60
  SELECT @min = cast((@delaynum / 60) AS int)
  SELECT hr = cast((@min / 60) AS int)
  SELECT @min = @min % 60
END
IF @dt = 'm'
BEGIN
  SELECT @sec = 0
  SELECT @min = @delaynum % 60
  SELECT hr = cast((@delaynum / 60) AS int) END SELECT @delay= right('0'+ convert(varchar(2),hr),2) + ':' +
  + right('0'+convert(varchar(2),@min),2) + ':' +
  + right('0'+convert(varchar(2),@sec),2)
IF hr > 23 or @min > 59 or @sec > 59
BEGIN
  SELECT 'hh:mm:ss delay time cannot > 23:59:59'
  SELECT 'delay interval and type: ' + convert (varchar(10),@delaynum) + ',' +
    @delaytype + ' converts to ' + @delay
  RETURN
END
WHILE (i <= @num_samples)
BEGIN
            INSERT INTO waitstats ([wait type], requests, [wait time],[signal wait time])
  EXEC ('dbcc sqlperf(waitstats)')
  SELECT i = i + 1
  waitfor delay @delay
END
-- Create report.
EXECUTE get_waitstats

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


[\1c]
5 vde69
 
08.02.12
09:36
(5)+ пеерд "жирными" вставить @
6 smaharbA
 
08.02.12
09:40
таблица из ем вполне правится запросами
7 Кириллка
 
08.02.12
09:41
(0)переход на 8.2 решит эту проблему на корню :)
8 smaharbA
 
08.02.12
09:41
(4) спасибо позырю

но суть - если перевести дату в 1ссюстем вперед, поле курдате, то все проводится
9 Ёпрст
 
08.02.12
09:42
(8) только не переводи её за пределы периодичности хранения останков..
10 smaharbA
 
08.02.12
09:43
(9) конечно нет
но в чем причина, никак не соображу, а ведь когдато с этим встречался
11 Ёпрст
 
08.02.12
09:45
время не 23:59:59 ?
12 smaharbA
 
08.02.12
09:46
(11) не, текущее вполне
13 smaharbA
 
08.02.12
09:46
в документах текущее
14 smaharbA
 
08.02.12
09:48
периодичность остатков месяц

была какая то байда со сменой та, когда последний док с "нижней полкой" на значке проведенности.
15 smaharbA
 
08.02.12
09:48
вот через него и не могут перепрыгнуть
16 vde69
 
08.02.12
09:50
(15) явно ТА установи на последний документ квартала
17 ЧеловекДуши
 
08.02.12
09:53
Убери нетрадиционно проведение, при котором создается еще документ и может не один :)
Перенеси ТА на конец периода.
18 smaharbA
 
08.02.12
09:56
(16) визуально она была на доке сегодняшнем и по позиции на сегодняшнем
19 smaharbA
 
08.02.12
09:57
(17) нет нетрадиционного проведения, та конечно перенесу, но нет возможности зайти монопольно
20 smaharbA
 
08.02.12
09:58
могу перенести исправив таблицу, но вопрос сабжа это не изменяет, пусть даже и не станет сообщения и доки будут проводиться
21 Ёпрст
 
08.02.12
09:58
сдвинь её в начало дня.. доки проводятся сразу за ней ? Те, которе "посинели"
22 smaharbA
 
08.02.12
10:05
(21) если ее перенести а таблице на начало дня, то доки посинели не все почему то, и не проводятся выдавая сабж, хоть уже проведенные, хоть новые
23 smaharbA
 
08.02.12
10:08
Теперь предлагает перевести ТА, на новом доке записанном на завтра и выдает
---------------------------
1С:Предприятие
---------------------------
Существуют более ранние проведенные документы!
---------------------------
ОК  
---------------------------

и не проводит соответственно
24 Ёпрст
 
08.02.12
10:11
(23) ну естесственно.
Ты проводи сразу тот, который следом за границей ТА..
25 Ёпрст
 
08.02.12
10:12
Ты же не меняешь еще и позицию в 1ссистем, на сколько я понял
26 smaharbA
 
08.02.12
10:13
(25) пробовал и менять
27 smaharbA
 
08.02.12
10:13
(24) счас попробую
28 smaharbA
 
08.02.12
10:16
нифига, проведение первого за ТА дает сабж
29 Ёпрст
 
08.02.12
10:21
(28) вот этот ?
Существуют более ранние проведенные документы!
30 smaharbA
 
08.02.12
10:28
(29) этот
31 smaharbA
 
08.02.12
10:29
ладно пока перевел в табличке вперед, после подниму ветку и все спокойно проверю