|
1С 7.7упала sql 2000 | ☑ | ||
---|---|---|---|---|
0
Фдулич
23.08.12
✎
11:42
|
при выполнении обработки выдала сообщенице
http://s15.radikal.ru/i189/1208/33/eaa8b77b3dc6.jpg 1С 7,7 розница как я понимаю из него есть дубли. как исправить ? |
|||
1
Voronve
23.08.12
✎
11:43
|
что сказал ТИИ ?
|
|||
2
Sh1ko
23.08.12
✎
11:43
|
а сервис паки на скл стоят?
|
|||
3
ДенисЧ
23.08.12
✎
11:44
|
1. дропнуть ВСЕ индексы на этой таблице
2. сделать select iddoc, count(iddoc) from dt2226 group by by iddoc having count(iddoc) > 1 3. Разбираться в результатах. |
|||
4
VladZ
23.08.12
✎
11:44
|
смотри индексы для dt2226
|
|||
5
Фдулич
23.08.12
✎
11:46
|
(2)вплоть до 4го
|
|||
6
Фдулич
23.08.12
✎
11:47
|
(3) буду делать щас помучаю
(1) щас делается |
|||
7
ADirks
24.08.12
✎
07:20
|
Фигня всё это. Поможет только profiler.
Если посмотрим на PK, то он (IDDoc, LineNo_), значит вероятнее всего 1С пихает в документ дубль LineNo_. LineNo_ - smallint (max 32767) Врядли конечно в документ пихается строк больше, но чем чёрт не шутит. |
|||
8
Фдулич
24.08.12
✎
08:41
|
сделал ТиИ, индекс в sql и дефрагментацию , запустил таж картина маслом что в(0)
|
|||
9
Фдулич
24.08.12
✎
08:41
|
(7) не совсем понимаю как это сделать
|
|||
10
Ёпрст
24.08.12
✎
08:59
|
(9) что говорит (3.2) ?
|
|||
11
Фдулич
24.08.12
✎
09:00
|
открылась таблица, с кучей значений
|
|||
12
Фдулич
24.08.12
✎
09:04
|
хотя в DDS описание таблицы это непонятно
P=_1sp_DT2226_TLockX |EscalateTLockX| |set nocount on declare i integer select i=1 from DT2226(TABLOCKX HOLDLOCK) where 0=1 # #=============================================================================== #==TABLE no 100 : Документ (Мн.ч.) ПродажиПоДискКартам # Name |Descr |SQLTableNam|RecordLock T=DT2226 |Документ (Мн.ч.) ПродажиПоДиск|DT2226 | #-----Fields------- # Name |Descr |Type|Length|Precision F=IDDOC |ID Document's |C |9 |0 F=LINENO_ |LineNo |S |0 |0 F=SP2230 |(P)Товар |C |9 |0 F=SP2231 |(P)Количество |N |14 |3 F=SP2233 |(P)СуммаБезСкидки |N |16 |2 F=SP2236 |(P)СуммаСкидки |N |16 |2 F=SP2237 |(P)ПроцентСкидки |N |5 |2 F=SP2239 |(P)КодДК |C |24 |0 F=SP2240 |(P)ДискКарта |C |9 |0 #----Indexes------ # Name |Descr |Unique|Indexed fields |Type I=PK_DT2226 |of IDDOC+LineN|1 |IDDOC,LINENO_ |1 # #=============================================================================== #==PROCEDURE # Name |Descr |Parameters |Source P=_1sp_DH2226_UpdateTotals | |@IdDoc C(9) |{\ SET NOCOUNT ON DECLARE @Sum0 NUMERIC(28,2),@Sum1 NUMERIC(28,2) SELECT @Sum0=COALESCE(SUM(SP2233),0),@Sum1=COALESCE(SUM(SP2236),0) FROM DT2226 WHERE IDDOC=@IdDoc IF ABS(@Sum0)>99999999999999.99 SELECT @Sum0=99999999999999.99*SIGN(@Sum0) IF ABS(@Sum1)>99999999999999.99 SELECT @Sum1=99999999999999.99*SIGN(@Sum1) UPDATE DH2226 SET SP2233=@Sum0,SP2236=@Sum1 WHERE IDDOC=@IdDoc \} |
|||
13
Ёпрст
24.08.12
✎
09:11
|
покажи скриншот результата вот этого, выполненого в QA
select iddoc, count(iddoc) from dt2226 group by by iddoc having count(iddoc) > 1 |
|||
14
Ёпрст
24.08.12
✎
09:12
|
и вот этого еще
select iddoc, count(iddoc) from _1sjourn (nolock) group by by iddoc having count(iddoc) > 1 |
|||
15
vde69
24.08.12
✎
09:17
|
примари кей просто так не задваивается...
(0) для начала сделай бекап потом (13) потом спроси всех кто имеет доступ, про нештатые 1с действия (прямые запросы, изменения уровня изоляции, и т.д.) спроси про сбои файловой системы и т.д. пока не поймешь причину ничего не изменяй. |
|||
16
stix2010
24.08.12
✎
09:20
|
а документы руками вводятся?
|
|||
17
Фдулич
24.08.12
✎
09:24
|
||||
18
Фдулич
24.08.12
✎
09:26
|
c(14) пустота
|
|||
19
Фдулич
24.08.12
✎
09:27
|
(16) только приходные накладные вручную + возвраты + списание + акты переоценки +оприходование+инвентаризация
|
|||
20
Ёпрст
24.08.12
✎
09:27
|
блин, не то.. Дениска сбил с толку..
вот так, что кажет ? |
|||
21
Фдулич
24.08.12
✎
09:28
|
все продажи автоматом сливаются с касс в базу + чеки + закрытие смен
|
|||
22
Фдулич
24.08.12
✎
09:29
|
(15) сбоев не было,все крутится на нормальном серваке,с базой работают 7-8 чел
|
|||
23
Фдулич
24.08.12
✎
09:30
|
+(22)максимум 10, тетки для них "нештатые 1с действия (прямые запросы, изменения уровня изоляции, и т.д.) " это фантастика
|
|||
24
Фдулич
24.08.12
✎
09:31
|
(20) что кажет ?
|
|||
25
Ёпрст
24.08.12
✎
09:37
|
(24) у тя же примари кей.. там дублей не должно быть по-определению..
Но можешь проверить, на всякий это: select iddoc,lineno_, count(iddoc+lineno_) from _1sjourn (nolock) group by by iddoc,lineno_ having count(iddoc+lineno_) > 1 |
|||
26
Ёпрст
24.08.12
✎
09:38
|
>>>полнении обработки выдала сообщенице
а обработка че делает ? а вот этот запрос че кажет ? select iddoc, count(iddoc) from _1sjourn (nolock) group by by iddoc having count(iddoc) > 1 |
|||
27
Фдулич
24.08.12
✎
09:41
|
(25)
Server: Msg 207, Level 16, State 3, Line 1 Invalid column name 'lineno_'. Server: Msg 207, Level 16, State 1, Line 1 Invalid column name 'lineno_'. Server: Msg 207, Level 16, State 1, Line 1 Invalid column name 'lineno_'. Server: Msg 207, Level 16, State 1, Line 1 Invalid column name 'lineno_'. Server: Msg 207, Level 16, State 1, Line 1 Invalid column name 'lineno_'. |
|||
28
Фдулич
24.08.12
✎
09:41
|
(26) (0 row(s) affected)
|
|||
29
Андрюха
24.08.12
✎
09:42
|
Дублей нет, всё ништяг
|
|||
30
Фдулич
24.08.12
✎
09:43
|
(26) обработка ищет карточки товара которые не использовались более 1,5 года и помечает их на удаление
|
|||
31
Фдулич
24.08.12
✎
09:45
|
там их развелось до хрена и больше
|
|||
32
Ёпрст
24.08.12
✎
09:45
|
(27)ошибся, так есть че ?
select iddoc,lineno_, count(iddoc+lineno_) from dt2226 (nolock) group by by iddoc,lineno_ having count(iddoc+lineno_) > 1 |
|||
33
borozavr
24.08.12
✎
09:46
|
Посмотри выгрузку с касс, может там фигня выгрузилась, поэтому грузит в док >32000 строк.
|
|||
34
Фдулич
24.08.12
✎
09:47
|
(32)Line 1: Incorrect syntax near 'iddoc'.
|
|||
35
Фдулич
24.08.12
✎
09:51
|
(33) да нет отчет отдела в НГ самый большой на 1474 строк и все самый большой
|
|||
36
Фдулич
24.08.12
✎
09:52
|
Инвентаризация на 11792 строки
|
|||
37
Фдулич
24.08.12
✎
09:53
|
(32)Server: Msg 245, Level 16, State 1, Line 1
Syntax error converting the varchar value ' 41RFX ' to a column of data type smallint. |
|||
38
Фдулич
24.08.12
✎
09:53
|
ОНО
|
|||
39
Фдулич
24.08.12
✎
09:57
|
||||
40
vde69
24.08.12
✎
10:00
|
(21) как именно сливаются, какими средствами?
из траблов могущих привести к сабжу 1. вложеные транзакции 1с с кривым откатом 2. кривые индексы (как правило это если есть волшебный файлик для дружбы хрюши и висты/семерки) 3. выключение сервера 4. сетевые проблеммы (частичная потеря пакетов) 5. кривые настройки сервера (файловый кеш и всякие "спасатели") (20) примерно так, только синтаксис по памяти пишу, наверно ошибки есть select t1.iddoc from (select iddoc, count(iddoc) AS C from DT2226)as t1 whele t1.c > 0 |
|||
41
Ёпрст
24.08.12
✎
10:01
|
да блин
select iddoc, lineno_, count(iddoc+lineno_) from dt2226 (nolock) group by iddoc,lineno_ having count(iddoc+lineno_) > 1 |
|||
42
Фдулич
24.08.12
✎
10:07
|
(40)программа кассовый сервер,которая опрашивает кассы на наличие чеков и закрытие смен.
1.не знаю 2.стоит только Win 2003 и win ХП. семерок и прочей лабуды нет 3.не возможно физически.2 линий света + дизель генератор 4.не возможно ,оборудование полная замена с нуля 5.спасатели это что ? |
|||
43
Фдулич
24.08.12
✎
10:08
|
(41)
Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value ' 41RFX ' to a column of data type smallint. |
|||
44
Фдулич
24.08.12
✎
10:10
|
(40)
Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near '0'. |
|||
45
ADirks
24.08.12
✎
10:10
|
(41)
всёж наверное select iddoc, lineno_, count(*) from dt2226 (nolock) group by iddoc,lineno_ having count(*) > 1 только это гарантированно ничего не даст у него же в процессе записи ошибка валится и дублей естественно не создаётся, ибо constraint же, а потом ещё и транзакция откатывается |
|||
46
Фдулич
24.08.12
✎
10:11
|
(0 row(s) affected)
|
|||
47
Фдулич
24.08.12
✎
10:11
|
так вот и интересно найти причину
|
|||
48
ADirks
24.08.12
✎
10:15
|
В составе SQL-сервера есть "SQL Server Profiler", вот его запускай, и смотри какие запросы идут на сервер в момент работы обработки. После того как оно свалится, где-то ближе к концу будет искомый запрос про вставку в dt2226. Надо смотреть, чего он вставляет в lineno_
|
|||
49
Фдулич
24.08.12
✎
10:17
|
ок щас пустим
|
|||
50
stix2010
24.08.12
✎
10:19
|
(36) ниче что табличные части в 7.7 10 тыс строк держат?
|
|||
51
Ёпрст
24.08.12
✎
10:19
|
(45) точно, он же к смоллинт чар не может преобразовать..
|
|||
52
Ёпрст
24.08.12
✎
10:20
|
(50) :))
200 тыщ легко и не напрягаясь, даже в дбф. |
|||
53
stix2010
24.08.12
✎
10:20
|
точнее 9999
|
|||
54
Ёпрст
24.08.12
✎
10:21
|
(53) это нумерация строк до стольки, и то, только для дбф базы.
|
|||
55
Фдулич
24.08.12
✎
14:57
|
exec sp_executesql N'Insert into DT2226 values( P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9)', N'P1 varchar(9),@P2 smallint,@P3 varchar(9),@P4 numeric(14,3),@P5 numeric(16,2),@P6 numeric(16,2),@P7 numeric(5,2),@P8 varchar(24),@P9 varchar(9)', ' 58I2A ', -2313, ' 1B5X ', 0.250, 20.88, 1.04, 4.98, '5000000608 ', ' CF '
|
|||
56
Фдулич
24.08.12
✎
14:58
|
последнее что написало он перед крахом
|
|||
57
ADirks
27.08.12
✎
08:16
|
собственно, интересовать тебя должна парочка
' 58I2A ', -2313 цыферка -2313 явно свидетельствует о переполнении, и скорее всего где-то внутре у 1С. Почему дубль появляется именно на этой цыферке не понятно. Интересу для можно просмотреть лог, на предмет в какой момент появляется переполнение, и в какой момент в первый раз появляется искомая пара. Но всё это в общем достаточно теоретические изыскания. Вероятнее всего, надо всё-таки что-то делать с загружаемым документом. На два его поделить, что-ли. Сколько там вообще строк то грузится? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |