Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите! Cannot insert duplicate key (число прочтений - 14506 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Помогите! Cannot insert duplicate key
Ответ #30 - 10. Марта 2008 :: 18:55
Печать  
Пардон!
А база случаем не распределенная?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #31 - 10. Марта 2008 :: 19:38
Печать  
ДА!
Распределенная
Когда-то была база, счас нету
Но УРБД нужен будет для других, мегакреативных целей  Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #32 - 26. Мая 2008 :: 06:20
Печать  
Очередная бага:
При попытки проведения документа 1с валится с ошибкой немогу вставить дубликат первичного ключа...
Оказалось что не проведенный документ имеет движения в по регистру Печаль.
Лечится удалением этих движений.

Внимание вопрос:
Если регистр оборотный после такой операции итоги пересчитывать нужно?
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #33 - 27. Мая 2008 :: 04:54
Печать  
если новые движения дока отличаются от тех что удалил, то конечно пересчитывать итоги нужно
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #34 - 27. Мая 2008 :: 06:08
Печать  
Nick писал(а) 26. Мая 2008 :: 06:20:
Очередная бага:
При попытки проведения документа 1с валится с ошибкой немогу вставить дубликат первичного ключа...
Оказалось что не проведенный документ имеет движения в по регистру Печаль.
Лечится удалением этих движений.

Внимание вопрос:
Если регистр оборотный после такой операции итоги пересчитывать нужно?


Есть такая фича (т.е. была), когда документ делается непроведенным, а движения остаются. Другая фича - движения удаляются а итоги не пересчитываются.
Первая лечиться удалением движений по непроведенным докам, вторая - перенос ТА на период ранее и обратно (ну или SQL-скриптами, есть обработки).
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #35 - 27. Мая 2008 :: 06:12
Печать  
А для отслеживания того что хочет вставить 1С - использовать профайлер от SQL 2005 и старше (он показывает запросы как ушедшие на SQL сервер, так и выполненные), или же вести трассировку ODBC (не уверен что ведеться трассировка того что отправлено на сервер), но это очень сильно замедляет работу (не забудте помто обратно включить) (включать: Администрирование - Источники данных ODBC - Трассировка, поставить галочку и включить трассировку).
  
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #36 - 28. Мая 2008 :: 14:36
Печать  
Сегодня почти отловил...
Но в профайлере мелькала строка
"Some trace events have not been reported to SQL Profiler because the server has reached its maximum amount of available memory for the process."
И еще
"Attention"

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #37 - 28. Мая 2008 :: 14:37
Печать  
Предсмертный текст:

exec _1sp__1SJOURN_TLockX
exec _1sp__1SJOURN_TLockX
exec _1sp__1SJOURN_TLockX

declare @P1 int
set @P1=7448
declare @P2 int
set @P2=180158052
declare @P3 int
set @P3=2
declare @P4 int
set @P4=1
declare @P5 int
set @P5=-1
exec sp_cursorprepexec @P1 output, @P2 output, N'@P1 varchar(18),@P2 varchar(11)', N'Select * from _1SJOURN(NOLOCK INDEX=DOCNO) where DNPREFIX=@P1 and DOCNO=@P2 order by DNPREFIX, DOCNO, ROW_ID', @P3 output, @P4 output, @P5 output, '      14042008    ', 'Зл-0019835 '
select @P1, @P2, @P3, @P4, @P5

exec sp_cursorfetch 180158052, 1, 0, 1
select VERSTAMP from _1SJOURN(NOLOCK) where ROW_ID=323533
exec sp_executesql N'Update _1SJOURN set  IDJOURNAL=@P1, IDDOC=@P2, IDDOCDEF=@P3, APPCODE=@P4, DATE_TIME_IDDOC=@P5, DNPREFIX=@P6, DOCNO=@P7, CLOSED=@P8, ISMARK=@P9, ACTCNT=@P10, VERSTAMP=@P11, RF1191=@P12, RF2673=@P13, RF1199=@P14, RF1332=@P15, RF13781=@P16, RF1044=@P17, RF19440=@P18, RF13152=@P19, RF1122=@P20, RF18764=@P21, RF15055=@P22, RF22033=@P23, SP21666=@P24, SP13198=@P25, SP13224=@P26, SP13199=@P27, SP21914=@P28 where  ROW_ID=@P29', N'@P1 int,@P2 varchar(9),@P3 int,@P4 smallint,@P5 varchar(23),@P6 varchar(18),@P7 varchar(11),@P8 tinyint,@P9 bit,@P10 int,@P11 int,@P12 bit,@P13 bit,@P14 bit,@P15 bit,@P16 bit,@P17 bit,@P18 bit,@P19 bit,@P20 bit,@P21 bit,@P22 bit,@P23 bit,@P24 varchar(17),@P25 varchar(9),@P26 numeric(1,0),@P27 varchar(9),@P28 varchar(9),@P29 int', 0, '  FJN7001', 1404, 1, '200805289HTT9C  FJN7001', '      14042008    ', 'Зл-0019835', 1, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, '10192850003130395', '    62001', 0, '    62001', '     1   ', 323533
exec _1sp_RegisterUpdate '002', 1404, '  FJN7001', ' '
exec sp_executesql N'Update DH1404 set  SP1405=@P1, SP1407=@P2, SP13501=@P3, SP13500=@P4, SP14383=@P5, SP1408=@P6, SP1409=@P7, SP1410=@P8, SP1413=@P9, SP1415=@P10, SP1412=@P11, SP1672=@P12, SP1673=@P13, SP1906=@P14, SP2062=@P15, SP1954=@P16, SP2405=@P17, SP2521=@P18, SP3053=@P19, SP3054=@P20, SP3184=@P21, SP3222=@P22, SP3427=@P23, SP14347=@P24, SP14896=@P25, SP15024=@P26, SP15025=@P27, SP15277=@P28, SP18028=@P29, SP18052=@P30, SP18691=@P31, SP19165=@P32, SP21363=@P33, SP22134=@P34, SP22135=@P35, SP22305=@P36, SP22336=@P37, SP22449=@P38, SP22480=@P39, SP22682=@P40, SP14510=@P41, SP1420=@P42, SP14508=@P43, SP15685=@P44, SP3064=@P45, SP22148=@P46 where  IDDOC=@P47', N'@P1 varchar(9),@P2 varchar(9),@P3 varchar(9),@P4 varchar(9),@P5 varchar(9),@P6 varchar(40),@P7 numeric(3,0),@P8 datetime,@P9 varchar(9),@P10 numeric(9,2),@P11 varchar(9),@P12 numeric(3,0),@P13 varchar(1),@P14 varchar(13),@P15 varchar(9),@P16 numeric(3,0),@P17 numeric(1,0),@P18 numeric(1,0),@P19 numeric(5,2),@P20 numeric(5,2),@P21 numeric(2,0),@P22 numeric(1,0),@P23 varchar(9),@P24 numeric(1,0),@P25 varchar(2),@P26 numeric(15,0),@P27 numeric(6,4),@P28 varchar(9),@P29 numeric(1,0),@P30 varchar(9),@P31 varchar(9),@P32 datetime,@P33 numeric(4,2),@P34 numeric(17,0),@P35 numeric(5,0),@P36 varchar(9),@P37 numeric(1,0),@P38 varchar(9),@P39 numeric(1,0),@P40 varchar(14),@P41 numeric(17,3),@P42 numeric(18,3),@P43 numeric(14,2),@P44 numeric(14,2),@P45 numeric(1,0),@P46 text,@P47 varchar(9)', '     1   ', '   190   ', '   EZJ001', '   1LH   ', '   190   ', '                                        ', 0, 'Jan  1 1753 12:00:00:000AM', '     1   ', 1.00, '    XK   ', 60, '*', '   0     0   ', '     0   ', 2, 0, 0, 10.00, 10.00, 0, 0, '     0   ', 0, '  ', 0, 0.0000, '     2   ', 0, '   18J   ', '     0   ', 'Jan  1 1753 12:00:00:000AM', 0.00, 0, 0, '    62001', 0, '     0   ', 0, '              ', 379586.000, 379586.000, 0.00, 0.00, 0, '', '  FJN7001'
exec sp_executesql N'Insert into DT1404 values( )', N'@P1 varchar(9),@P2 smallint,@P3 varchar(9),@P4 varchar(9),@P5 varchar(9),@P6 numeric(14,3),@P7 numeric(17,3),@P8 numeric(18,3),@P9 numeric(11,3),@P10 varchar(1),@P11 numeric(4,2),@P12 numeric(15,0),@P13 varchar(9),@P14 numeric(14,2),@P15 numeric(14,2),@P16 varchar(8),@P17 varchar(9),@P18 numeric(4,2)', '  FJN7001', 7, '   C6H   ', '  8RJY001', '    26   ', 2258.000, 18064.000, 18064.000, 8.000, ' ', 10.00, 2053, '     0   ', 0.00, 0.00, 'C-09    ', '     0   ', 0.00
exec sp_executesql N'Insert into DT1404 values( )', N'@P1 varchar(9),@P2 smallint,@P3 varchar(9),@P4 varchar(9),@P5 varchar(9),@P6 numeric(14,3),@P7 numeric(17,3),@P8 numeric(18,3),@P9 numeric(11,3),@P10 varchar(1),@P11 numeric(4,2),@P12 numeric(15,0),@P13 varchar(9),@P14 numeric(14,2),@P15 numeric(14,2),@P16 varchar(8),@P17 varchar(9),@P18 numeric(4,2)', '  FJN7001', 8, '   BZL   ', '  8QYG001', '    26   ', 8562.000, 25686.000, 25686.000, 3.000, ' ', 10.00, 7784, '     0   ', 0.00, 0.00, 'A-09    ', '     0   ', 0.00
exec sp_executesql N'Insert into DT1404 values( )', N'@P1 varchar(9),@P2 smallint,@P3 varchar(9),@P4 varchar(9),@P5 varchar(9),@P6 numeric(14,3),@P7 numeric(17,3),@P8 numeric(18,3),@P9 numeric(11,3),@P10 varchar(1),@P11 numeric(4,2),@P12 numeric(15,0),@P13 varchar(9),@P14 numeric(14,2),@P15 numeric(14,2),@P16 varchar(8),@P17 varchar(9),@P18 numeric(4,2)', '  FJN7001', 6, '    72   ', '  916O001', '    26   ', 21822.000, 21822.000, 21822.000, 1.000, ' ', 10.00, 19838, '     0   ', 0.00, 0.00, 'G-04    ', '     0   ', 0.00
exec sp_executesql N'Insert into DT1404 values( @P1,@P2,@P3,@P4,@P5,@P6,@P
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #38 - 28. Мая 2008 :: 14:38
Печать  
exec sp_cursorclose 180158052
exec sp_cursorunprepare 7448
IF @@TRANCOUNT > 0 ROLLBACK TRAN
set implicit_transactions off
exec sp_cursorclose 180157851
exec sp_cursorunprepare 7260
exec sp_unprepare 7265
exec sp_cursorclose 180157800
exec sp_cursorunprepare 7
exec sp_unprepare 172
exec sp_cursorclose 180156569
exec sp_cursorunprepare 6241
exec sp_unprepare 6244
exec sp_cursorclose 180157937
exec sp_cursorunprepare 6242

declare @P1 int
set @P1=180158053
declare @P2 int
set @P2=2
declare @P3 int
set @P3=2
declare @P4 int
set @P4=-1
exec sp_cursorexecute 1, @P1 output, @P2 output, @P3 output, @P4 output
select @P1, @P2, @P3, @P4

exec sp_cursorfetch 180158053, 2, 0, 1
exec sp_cursor 180158053, 1, 1, N'', @USRSCNT = 61, @NETCHGCN = 9832
exec sp_cursorclose 180158053
exec sp_cursorunprepare 1
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #39 - 28. Мая 2008 :: 14:38
Печать  
Дальше логаут и фсе...
Странно как-то строки не по порядку вставлялись и часть проглочена что ли
В общем куда копать хез...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #40 - 29. Мая 2008 :: 08:19
Печать  
Сейчас решил проверить только по одному человеку (с жалобами), поставил фильтр на spid
Должно взлететь  Круглые глаза
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Помогите! Cannot insert duplicate key
Ответ #41 - 29. Мая 2008 :: 08:59
Печать  
была у нас как-то проблема со скулем. Как позднее оказалось, дурковал блок питания, который в конце концов и отошел от дел. После того, как установили новый БП, ни одной проблемы. Серв до сих пор жив в качестве тестового.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #42 - 29. Мая 2008 :: 14:03
Печать  
Странно...
Отловил еще одно падение

Увидел вставку строк (снова хаотичную), но не встретил delete from dt1404 для этого документа!
В то же время по этому документу в таблице данные есть, значит он был записан
Юзверь подтвердила что это был уже записанный док
Куда делась инструкция по удалению?
Записывается документ штатно

Вот и не знаю... мот самому написать ее если не разберусь (дел других еще много)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #43 - 11. Июня 2008 :: 09:16
Печать  
Странности в общем
Получается при записи уже записанного ранее документа выполняется код:

1. exec sp_executesql N'Update DH1404 set  SP1405=@P1 ...

2. declare @P1 int
set @P1=42
exec sp_prepexec @P1 output, N'@P1 varchar(9)', N'Delete from DT1404 where IDDOC=@P1', '  F5AA001'
select @P1

3. exec sp_executesql N'Insert into DT1404 values( @P1 ...

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

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите! Cannot insert duplicate key
Ответ #44 - 17. Июля 2008 :: 16:03
Печать  
Периодически возвращаюсь к этой проблеме  Подмигивание
При добавлении позиций подбором и дальнейшей записи документа инструкция по удалению строк не выполняется, выполняется лишь инсерт измененных строк
Непонятно отчего одинэсина пытается вставить уже имеющуюся строку (стоит автонумерация строк, раньше не было)
Вот отсюда и ноги растут
Поэтому решил попробовать насильно модифицировать строку документа при подборе, надеюсь трабла исчезнет:

Код
Выбрать все
			//Для решения проблемы вставки неуникального ключа iddoc+lineno_
			ПолучитьСтрокуПоНомеру(1);
			Количество = Количество;
			ПолучитьСтрокуПоНомеру(КоличествоСтрок());

 

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать