Попытка вставки неуникального значения в уникальный индекс #671070


#0 by kryptonite
Выгружаю файловую базу в dt, пытаюсь загрузить этот dt в пустую клиент-серверную - вываливается Попытка вставки неуникального значения в уникальный индекс. - для объекта с именем dbo.v8users ТИИ не помогает, читал гугл про такие ошибки - там описание решения подобных проблем для серверных баз. Как быть ?
#1 by МихаилМ
значит в файловой базе изменяли пароли
#2 by МихаилМ
+ оказывается, такая проблема бывает при переходе с древних релизов (<13) на (>=15)
#3 by МихаилМ
#4 by kryptonite
жесть какая-то.. Пробовал воспользоваться ДТ манагером - распоквал он что-то, что потом не загружается - ошибка формата потока
#5 by kryptonite
другой вариант - тригеры, тригеры куигеры.. нет времени на них сейчас хотел базу перезалить и на тебе вот это эффект!
#6 by kryptonite
МихаилМ, не подскажешь, что, может быть дело в паролях ?
#7 by Torquader
А если всех пользователей выгрузить в отдельный файл - потом потереть в файловой базе и уже выгрузить dt - он, наверное, загрузится без этой ошибки (если там ещё ошибок нет). А пользователи прекрасно потом создаются обработкой, причём даже пароли сохраняются.
#8 by МихаилМ
не подскажу. т.к. Вы поленились полностью привести текст ошибки
#9 by МихаилМ
+ в в 22 посте awa15 описывает алгоритм исправления задвоения ПК непосредственно в файле 1Cv8.1CD
#10 by kryptonite
МихаилМ, посмотрите, пожалуйста, скрин ошибки
#11 by braslavets
Дело в следующем: - данные в базу загружены все - спотыкается на создании индексов - открой таблицу v8users в management studio - найди записи с одинаковым ID: SELECT * from [v8users] Where exists ( SELECT ID,  GROUP BY ID  HAVING count(*) > 1) - убей эти записи: DELETE from [v8users] WHERE ID = сюда подставь кривой ID - сделай выгрузку / загрузку информационной базы - создадутся индексы - создай убитого пользователя заново
#12 by МихаилМ
сомневаюсь, что v8users - последняя загружаемая таблица. т.е. данные мб загружены не все.
#13 by МихаилМ
тогда уж сразу скопировать свернутые дубли в Временную таблицу. удалить дубли. вставить из временной и не надо пересоздавать.
#14 by braslavets
Сперва грузятся данные ВСЕХ таблиц, а уже потом создаются ВСЕ индексы. Проверено на себе. Да не вопрос, но не факт, что они свернутся по всем полям.
#15 by МихаилМ
подскажите на какой версии платформы 1с8 " Сперва грузятся данные ВСЕХ таблиц, а уже потом создаются ВСЕ индексы. Проверено на себе." ? я давно подглядваю за 1с8 с помощью ms sql profiler и не припомню такого поведения во всяком случай для 1с82  (8.2.18.61) это не так. Касательлно таблицы .v8users ms sql profiler логирует create table [dbo].[v8users] ( ID binary not null primary key, Name nvarchar not null, Descr nvarchar not null, OSName nvarchar, Changed datetime not null, RolesID numeric(10,0) not null, Show binary not null, Data image not null, ) go create unique index [ByName] on [v8users] (Name) go create index [ByDescr] on [v8users] (Descr) go exec sp_executesql N'select distinct  a.name indname,  case when (a.status & 2) > 0 then 1 else 0 end indUniq,  case when a.indid = 1 then 1 else 0 end indClust,  inner join sysindexkeys b  on a.id = b.id and a.indid = b.indid  inner join syscolumns c  on a.id = c.id and b.colid = c.colid  inner join sysobjects d  on a.id = d.id  left outer join sysobjects e  on a.name = e.name and e.xtype = ''PK''  inner join sysindexkeys g  on e.name is null and a.id = g.id and a.indid = g.indid  inner join syscolumns h  on g.id = h.id and g.colid = h.colid where  d.name =  indname,  fldnumb', N' nvarchar', N'v8users' exec sp_executesql N'select distinct f.name con, h.name col from sysobjects a inner join syscolumns b on a.name = and a.id = b.id and a.xtype = ''U'' left outer join sysindexkeys d on a.id = d.id and b.colid = d.colid left outer join sysindexes e on d.id = e.id and d.indid = e.indid left outer join sysobjects f on e.name = f.name and f.xtype = ''PK'' inner join sysindexkeys g on f.name is not null and e.id = g.id and e.indid = g.indid inner join syscolumns h on g.id = h.id and g.colid = h.colid order by con, col', N' nvarchar', N'v8users' go go exec [sys].sp_describe_first_result_set N'select * from v8users' go exec [sys].sp_describe_first_result_set N'select * from v8users' go insert bulk v8users([ID] binary,[Name] nvarchar collate Cyrillic_General_CI_AS,[Descr] nvarchar collate Cyrillic_General_CI_AS,[OSName] nvarchar collate Cyrillic_General_CI_AS,[Changed] datetime,[RolesID] numeric(10,0),[Show] binary,[EAuth] binary,[AdmRole] binary,[UsSprH] numeric(10,0),[Data] image) go alter table [v8users] add primary key ([ID]) create index [ByEAuth] on [v8users] ([AdmRole],[EAuth]) create unique index [ByName] on [v8users] ([Name]) go exec sp_executesql N'select count(*) from sysobjects where name = ', N' nvarchar', N'v8users' go SELECT TOP 1 ID, Name, Descr, OSName, Changed, RolesID, Show, Data, EAuth, AdmRole, UsSprH FROM v8users WITH(NOLOCK) WHERE EAuth IS NULL OR AdmRole IS NULL OR UsSprH IS NULL go exec sp_executesql N'SELECT TOP 2147483647 ID, Name, Descr, OSName, Changed, RolesID, 0x01 AS Show, Data, 0x01 AS EAuth, 0x01 AS AdmRole, 0 AS UsSprH FROM v8users WITH(READCOMMITTED) WHERE Name >= AND ID <> @P2 ORDER BY Name',N' nvarchar(4000),@P2 varbinary',N'',0x952A5019EAE6A1F74023E7966E3EE1DE go exec sp_executesql N'SELECT TOP 1 ID, Name, Descr, OSName, Changed, RolesID, 0x01 AS Show, Data, 0x01 AS EAuth, 0x01 AS AdmRole, 0 AS UsSprH FROM v8users WITH(READCOMMITTED) WHERE ID >= ORDER BY ID',N' varbinary',0x952A5019EAE6A1F74023E7966E3EE1DE go drop table [v8users] go exec sp_executesql N'select count(*) from sysobjects where name = ', N' nvarchar', N'v8users' go create table [dbo].[v8users] ( ID binary not null primary key, Name nvarchar not null, Descr nvarchar not null, OSName nvarchar, Changed datetime not null, RolesID numeric(10,0) not null, Show binary not null, Data image not null, ) go create unique index [ByName] on [v8users] (Name) go create index [ByDescr] on [v8users] (Descr) go exec sp_executesql N'SELECT TOP 1 1 FROM v8users WITH(READCOMMITTED) WHERE ID = ',N' varbinary',0xA011BA342EDD32224B1A5B32740406F6 go select @@max_precision go exec sp_executesql N'INSERT INTO v8users WITH(READCOMMITTED) (ID,Name,Descr,OSName,Changed,RolesID,Show,Data,EAuth,AdmRole,UsSprH) VALUES(,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1)',N' varbinary,@P2 nvarchar(max),@P3 nvarchar(max),@P4 nvarchar(max),@P5 datetime2,@P6 numeric,@P7 varbinary,@P8 varbinary(max),@P9 varbinary,0 varbinary,1 numeric',0xA011BA342EDD32224B1A5B32740406F6,N'Администратор',N'Администратор',NULL,'5999-03-18 13:40:34',1,0x01,0x186615BC22BB302A044773A204AB23B23FE668607BE247000C89AE03598C041A307745C4328616D00CD4455419D3262D6D56248D0FD95119307516C6609811800DCA4AB0EB32F3D0B0B6AD6C9F6B88FB8596F173847B9363BD36D6B1FBC06B222E4A376CB26B84FAB897CB72B97B9B63BE37EAB1FB32F7D18EB6AB6DA2991C133526419660CA149F06D75D0656D62630384B778E1A881D1E337243943DCD178159D1504C76E83C3120002689118F541F626A43C460C90E8659D6504D43D221372152218E128E55483C25449737D60F8659805E054D80742D6A05748A0F8F004F606A4A9633C90E850DD7580518D322646E0074901397010628775F92288911D8528C5F0C4E9014773C1F43DE0DCD5C7D451E18E92BF261C554DB4A4C59D02D6D6651798950E8471A7D11118D72C774F3668D234F22A0306B3144398E0E8A1C1E34764292379A1B830CD258534FCE772C3C1B,0x01,0x01,0 go exec sp_executesql N'SELECT TOP 1 1 FROM v8users WITH(READCOMMITTED) WHERE ID = ',N' varbinary',0xABD5CE4AAD44B7BD43BF49E6FB70C024 go exec sp_executesql N'INSERT INTO v8users WITH(READCOMMITTED) (ID,Name,Descr,OSName,Changed,RolesID,Show,Data,EAuth,AdmRole,UsSprH) VALUES(,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1)',N' varbinary,@P2 nvarchar(max),@P3 nvarchar(max),@P4 nvarchar(max),@P5 datetime2,@P6 numeric,@P7 varbinary,@P8 varbinary(max),@P9 varbinary,0 varbinary,1 numeric',0xABD5CE4AAD44B7BD43BF49E6FB70C024,N'Бухгалтер',N'Бухгалтер',NULL,'5999-03-18 14:12:41',6,0x01,0x10D657CC2A9B00C819622A60207152CC1D39EC7351FD62FF29011A52145C66F578E07AF819F966E578004E550D1237F87CB733F81EF937AA7D4E08B0B1A0D11D9806E41C9A4BBB199BB29FB1A0537EEE3FFA751CBB4A83199CB299B090A1E91D9F06E21DAAB92CF92F534956151730E179E16FFC07AF65F8294F485911477FF47BB533AA1BAF38A97851494C2D7B29F831B363FF1FAF35FE7A4F1B0414467FF824E060E148A233FC34011F06161260FB7FB767FB1AB736AC2A531C0245497FFB2DE136E11EAA36F9345B1A06145C31F479E331FA1BA265F12A570653434333FE2EE663E113AC35FA34564B06125C6BAE79E17AA912A364AE28041259414236E025E26EFD1EF866AA345A4B58425C66FC7BE67AF413A938E52F571852191736AF2BE032F457B734AE7F544F5642427FAA7EB761E11EAB65AC345B1E57425C65FE2CE632AF1BFE64AA7F0306510C407EE02DFA67E008A96AA573554655522225FC648035E35CF757894009614F793325A720F47BEE18F16DA22E0E1F12730662B54BB478BA46CC419172290539620639F13FFA65E01CB734F828531A53114963F82CE463FD06AB2CF864,0x01,0x01,0 go exec sp_executesql N'SELECT TOP 1 1 FROM v8users WITH(READCOMMITTED) WHERE ID = ',N' varbinary',0xAC1D3482F5C35A4445AEAF30CCAA392B go exec sp_executesql N'INSERT INTO v8users WITH(READCOMMITTED) (ID,Name,Descr,OSName,Changed,RolesID,Show,Data,EAuth,AdmRole,UsSprH) VALUES(,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1)',N' varbinary,@P2 nvarchar(max),@P3 nvarchar(max),@P4 nvarchar(max),@P5 datetime2,@P6 numeric,@P7 varbinary,@P8 varbinary(max),@P9 varbinary,0 varbinary,1 numeric',0xAC1D3482F5C35A4445AEAF30CCAA392B,N'Главный бухгалтер',N'Главный бухгалтер',NULL,'5999-03-18 14:13:01',5,0x01,0x18B1211C083845C04EC07963434162443F95340444444ACB515E9AA3735B26A12FF34051216C03220CA5193071252FE630D21078250B71F87CA64C00707403700BB916D4D794F11BE16193CCB5E9CE10F7E0A9D292C2B3C1EF26E4B494FF9B498104F09C2A1467E262E2A9F093FAB2F4EF27E4B995CF9A72716190CD8BE9C010FD10C9B3F890E0948A44B42668757CFA3287147A6A1521F776F05457267152695DAC0532697C2CA835D71028305924F32DEC746938784E210BA60130717229E660D5152B250C7CF679ED1B5A70754F270AF30267767328AA618611303C0172F577F61D526E7804275BB80030722167F362D71831305971A62FF21D537773017413A50335712278A8699C477E3F0E68F42DA14C4E22795B2712A4063325212EF96386447E391473A47DF14F0126794F730FA2552970757CFA7C88117A3C1526F82AF51F557278077D0CA01835257D7AFD34871931380E24A663F41C5A736C007409A01935227D7AA83484452C3A5D7CEC76F84B067778042612F6523772697EFA35850C7E3C0B20ED76A31B5B7A23517409F70061687729F93083122C3C157CF77BF254572227506906F75033692172F335D7107A300124F32AEC41577A70562759F7193C257C28E66581472C25007CF276ED4F5671735B225BF60232217C66FD64D4197A6B5B74ED77A64B076E75072109B80C67217467FC3089102D3F0072F67CA6491E6F75042209F0026677692CA830870C28385D21ED77F44E016E7650750FF05735212028AD309D1030391469F062F05541712B0F2E08F9017617337AB207D30E6A646F0499258B563A013609791DB916362E2920FC3D84534F7F083C962CEF0F0F14003B2F74BA6D46332F77E97D830D29240C75F17FF04A527B7056750CA5052874687AB6,0x01,0x01,0 go exec sp_executesql N'SELECT TOP 1 1 FROM v8users WITH(READCOMMITTED) WHERE ID = ',N' varbinary',0x9F3D09E971ECD48449F099C11C2E4E79 go exec sp_executesql N'INSERT INTO v8users WITH(READCOMMITTED) (ID,Name,Descr,OSName,Changed,RolesID,Show,Data,EAuth,AdmRole,UsSprH) VALUES(,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1)',N' varbinary,@P2 nvarchar(max),@P3 nvarchar(max),@P4 nvarchar(max),@P5 datetime2,@P6 numeric,@P7 varbinary,@P8 varbinary(max),@P9 varbinary,0 varbinary,1 numeric',0x9F3D09E971ECD48449F099C11C2E4E79,N'Кассир',N'Кассир',NULL,'5999-03-18 14:12:27',7,0x01,0x1CB107B8054128F611582B623CA80FD968A771C731BA5A1779D012E7655EBC077E704BC4746C4E55058536E00B965CF308DC6A3A40B6218348813EDD3C761993723C1F5A08842D09F277C116B06BDBC7C10192C5499325942791B226A189AAB3BD78B708E8855DF6078B39214CB670CA01863F8828754DC62175495B0D9E22E10EC415A1008E627618E371CB68BB7C8A29241CC5246C1E545F853EBD5C905CF3088C6D3A1BE921D348D232DE33221AC173391B550C843DED5F9542A3578B772740B477CA5185618E28234E9377754A065A9936BD519F41F1558B273B4DB674D10087658B28274B9727751F5259CC22E05C9013EA06886B271CB3238201D361D9297004C73D741B4E0C842DEB02CA1BF05D8F28440EE06BB1079E71D45200719D5A7772204BC332FB448543AD5CD06D7B4CA2419055C851DA2A3744A15001402913F14DAE039A53EB03966D3B4DE023D655823680347519C4236F0752109872,0x01,0x01,0 go exec sp_executesql N'SELECT TOP 1 1 FROM v8users WITH(READCOMMITTED) WHERE ID = ',N' varbinary',0x952A5019EAE6A1F74023E7966E3EE1DE go exec sp_executesql N'INSERT INTO v8users WITH(READCOMMITTED) (ID,Name,Descr,OSName,Changed,RolesID,Show,Data,EAuth,AdmRole,UsSprH) VALUES(,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1)',N' varbinary,@P2 nvarchar(max),@P3 nvarchar(max),@P4 nvarchar(max),@P5 datetime2,@P6 numeric,@P7 varbinary,@P8 varbinary(max),@P9 varbinary,0 varbinary,1 numeric',0x952A5019EAE6A1F74023E7966E3EE1DE,N'',N'',NULL,'5999-03-18 14:12:27',7,0x01,0x10B85C8939282E022E7F585751915A900D57E736421E4B314B1A693334BC3FA7348E71BD091A1D2F174A6A367CA46AA134DD3DEC0F491F6419537A757DB378BC2F9A70B909181E321E4F687A61A16AA020886CB909051E321E4F756761A16AA03D886CB909181E2E237523672CBD6AA03D886CB9091803321E4F687A61A16AA020886CB909051E321E4F686761A16AA03D8870B81519022E1E53687B73B376B22F946EA50E041A321F4E686460A96BA43C8A6EBE1518023253,0x01,0x01,0 go те сначала создаются индексы и только после этого таблица наполняется даными.
#16 by МихаилМ
+ все тот же лог ms sql profiler подсказывает, что таблица v8users - не последняя загружаемая 1с82.
#17 by МихаилМ
вот скрипт по аналогии из для вашей таблицы USE <ВАША_БАЗА>; GO IF EXISTS (SELECT * FROM sys.triggers    WHERE parent_class = 0 AND name = 'v8users_no_PK') DROP TRIGGER v8users_no_PK ON DATABASE ; GO CREATE TRIGGER Config_no_PK   --PRINT 'CREATE TABLE Issued.'   ROLLBACK -- создание таблицы без первичного ключа /* DROP TRIGGER v8users_no_PK ON DATABASE ; */ -- !!!  задвоения удалите ручками сами /* востановление первичного ключа ALTER TABLE [dbo].[v8users] ADD PRIMARY KEY CLUSTERED ( GO */
#18 by МимохожийОднако
Залей в файловую версию с платформой 8.2.17.153. Повтори выгрузку для серверной.
#19 by braslavets
Прошу прощения, недосмотрел. В вашем случае речь о первичном ключе - он действительно создается после загрузки данных в каждую таблицу. А я говорил про индексы - они действительно создаются после загрузки всех данных.
#20 by braslavets
Посмотрите на инфостарте
#21 by МихаилМ
дестсвительно 1с82   (8.2.18.61) для таблиц данных создаёт индексы после загрузки таблиц служебная таблица v8users оказалась не показательной. как и files те для них сначала создаются индексы и лиш потом наполняются данными.
#22 by braslavets
А база-то большая? Может через выгрузку/загрузку XML прогнать проще?
#23 by kryptonite
как вариант, сейчас пробую тригеры от МихаилаМ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С