Добрый день!
Занимаюсь разработкой конфигураций на основе платформы 1С: Предприятие. При разворачивании копии базы сформированной средствами 1С: Предприятие регулярно появлялась ошибка:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем «dbo._AccRg2024NG» и индекса с именем «_AccRg2024_ByPeriod_TRNNG». Повторяющееся значение ключа: (сен 30 4013 12:00AM, 0x0000001c, 0x83fd001b78e2ed3011e342e2cb8d7e1c, 1).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1
Так как копии разворачивались только в целях внесения изменений в конфигурацию и тестирования, этой ошибке не предавали особого значения, пока не понадобилось добавить предопределенный счет. При обновлении конфигурации происходила реструктуризация регистра бухгалтерии и вываливалась данная не приглядная ошибка. Дальнейшее обновление прекращалось. Гугление данного вопроса результатов не дало. пришлось разбираться самим.
Выяснение имени таблицы 1С связанной с объектом определяется функцией ПолучитьСтруктуруХраненияБазыДанных, там же можно поглядеть и состав индексов.
Как оказалось данные индексы в таблице SQL «_AccRg2024» отсутствовали физически. При дальнейшем анализе данных уже средствами SQL выяснилось, что не уникальными были номера записей в разрезе Периода — [_Period], регистратора — [_RecorderRRef] и номер записи [_LineNo], из за чего и не происходила реструктуризация таблицы. Кто и как умудрился удалить эти индексы история умалчивает, данный факт восстановлению не подлежит.
Вылечилась данная ситуация следующим запросом:
USE [DB]
GO
CREATE TABLE #TempRecorder (_RecorderRRef BINARY(16))
GO
INSERT INTO #TempRecorder
SELECT T.[_RecorderRRef]
FROM (SELECT COUNT(*) as _count , T1.[_Period] ,T1.[_RecorderRRef] ,T1.[_LineNo]
FROM [dbo].[_AccRg2024] AS T1
GROUP BY T1.[_Period] ,T1.[_RecorderRRef] ,T1.[_LineNo]
HAVING count(*) > 1 ) AS T
--WHERE T.[_RecorderRRef] = 0xBA80000C29053BCD11E2FF4303EA5AA7
GROUP BY T.[_RecorderRRef]
DECLARE @_Count numeric(10), @_Period datetime, @_RecorderRRef binary(16), @_LineNo numeric(9,0);
DECLARE @i int;
SET @i = 0;
DECLARE _Recorder_Cursor CURSOR FOR
SELECT * FROM #TempRecorder;
OPEN _Recorder_Cursor
FETCH NEXT FROM _Recorder_Cursor INTO @_RecorderRRef;
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE _Cursor CURSOR FOR
SELECT [_Period], [_LineNo] FROM [dbo].[_AccRg2024]
WHERE [_RecorderRRef] = @_RecorderRRef
OPEN _Cursor
SET @i=0;
FETCH NEXT FROM _Cursor INTO @_Period, @_LineNo
WHILE @@FETCH_STATUS = 0
BEGIN
SET @i = @i + 1
UPDATE [dbo].[_AccRg2024] SET [_LineNo] = @i
WHERE CURRENT OF _Cursor
FETCH NEXT FROM _Cursor INTO @_Period, @_LineNo
END;
CLOSE _Cursor;
DEALLOCATE _Cursor;
FETCH NEXT FROM _Recorder_Cursor INTO @_RecorderRRef;
END
CLOSE _Recorder_Cursor;
DEALLOCATE _Recorder_Cursor;
GO
DROP TABLE #TempRecorder
GO
Изначально определяются неуникальные записи, выбираются регистраторы и в цикле происходит пере нумерация строк.
После этого, уже средствами 1С, выполнилось тестирование базы с режимом «Реструктуризация таблиц информационной базы», данная процедура пересоздала индексы в таблице, и дальнейшие манипуляции, при работе с метаданными конфигурации, стали происходить без каких либо ошибок.
Ошибка обновления — повтояющийся индекс
Автор kmvtut, 10 янв 2018, 13:11
0 Пользователей и 1 гость просматривают эту тему.
При обновлении 1с Бухгалтерия государственного учреждения (1.0.49.6) платформа 8.3.10.2561 на последнем шаге вываливает ошибку:
ЦитироватьВ процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка при попытке вставки записи с неуникальным значением ссылки.
Microsoft SQL Server Native Client 10.0: Нарушение «PK___Chrc477__AC8ED0C45C1B1042» ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект «dbo._Chrc477NG». Повторяющееся значение ключа: (0x9589bcaec5b4902d11e7f5cca1e38930).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1
В базе такой таблицы «dbo._Chrc477NG» — нет. Индекса такого тоже не нашел. Проведено полное тестирование и исправление. Ошибок не выявлено. Не могу залить обновление. Вываливает на этапе реструктуризации базы. Сервер MSSQL 2008 R2
Попробуйте на файловой обновить.
нужно проверить базу средствами MS SQL или сделать ТИИ из конфигуратора.
Цитата: kmvtut от 10 янв 2018, 13:11В базе такой таблицы «dbo._Chrc477NG» — нет
вполне возможно, что создается внутри транзакции…
Спасибо за Сказать спасибо
выгрузил в файл. обновление прошло успешно. при попытке загрузить обратно получил ошибку:
ЦитироватьОшибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем «dbo._Chrc477» и индекса с именем «PK___Chrc477__AC8ED0C4089B1303». Повторяющееся значение ключа: (0x9a3500224d9b942b11e7f7ccfb801865).
HRESULT=80040E2F, HRESULT=80040E2F, SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=1750, line=1
SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1
то есть туже самую ошибку и пишет что не все данные были загружены.
и еще сообщение внизу: Таблица v8users содержит значения типа Дата, которые не могут быть записаны в MS SQL Server с нулевым смещением дат.
Вообщем проблема не решилась. как найти этот индекс? Тестирование и исправление прогонял на обеих базах — результат нулевой.
Цитата: kmvtut от 12 янв 2018, 23:41быть записаны в MS SQL Server с нулевым смещением дат.
смещение должно быть 2000.
загрузить базу в файловый вариант и сделать ТИИ, если будут исправлены ошибки, выгрузить в *.dt и загрузить на сервер.
Спасибо за Сказать спасибо
Вообщем провел массу всяких мероприятий. Вылезло в итоге вот что:
Цитировать
Планы видов характеристик. НастройкиПользователей. Проверка уникальности записей
В таблице Chrc477 обнаружены неуникальные записи со значениями полей:
ID = 477:9ECF00224D9B942B11E7FB48007A6BA0
Неуникальность записей устранена
Планы видов характеристик. НастройкиПользователей. Проверка уникальности записей о предопределенных элементах
В таблице Chrc477 обнаружены неуникальные записи со значениями полей:
PredefinedID = 0x95918A25FA6AF66D4EA387540560F97C (ВводитьСУчетомУжеВведенных_ОтчетПоКассовымСменам)
На основании «Отчета по кассовой смене» вводить документы с учетом уже введенных (477:8799bcaec5b4902d11e7d9a77225a816)
На основании «Отчета по кассовой смене» вводить документы с учетом уже введенных (477:9ecf00224d9b942b11e7fb48007a6ba0) Установлена пометка удаления, снят признак предопределенности
Неуникальность записей устранена
Планы видов характеристик. НастройкиПользователей. Проверка уникальности записей о предопределенных элементах
В таблице Chrc477 обнаружены неуникальные записи со значениями полей:
PredefinedID = 0x9DA619FCDB445D70436C1647EEAA2931 (ОперационнаяКасса)
Операционная касса (477:8799bcaec5b4902d11e7d9a77225a817)
Операционная касса (477:9ecf00224d9b942b11e7fb48007a6ba1) Установлена пометка удаления, снят признак предопределенности
Неуникальность записей устранена
это в текстовой базе. можно ли грохнуть эти поля в базе рабочей на SQL и попробовать обновлять? или это критично? что это вообще..
Я думаю не страшно если ради обновления пропадет несколько настроек пользователей.
|
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
Повтор записи в БД12.12.2023, 10:46. Показов 1726. Ответов 10 Добрый день! В базе данных нашел записи по указанной таблице, которые вроде даже повторяются. Миниатюры
0 |
IT_Exp Эксперт 34794 / 4073 / 2104 Регистрация: 17.06.2006 Сообщений: 32,602 Блог |
12.12.2023, 10:46 |
Ответы с готовыми решениями: Повтор записи Повтор записи в форме Проверка на повтор при записи в файл 10 |
Balalamb 6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
||||
12.12.2023, 15:48 [ТС] |
||||
удалил одну из задвоенных строк и при обновлении БД снова ругнулось, но на другую строку. Добавлено через 3 часа 23 минуты
однако 70B80000-0000-0000-0000-000000000000 мало похоже на ГУИД
0 |
Модератор 4030 / 2975 / 591 Регистрация: 10.03.2011 Сообщений: 11,703 Записей в блоге: 1 |
|
13.12.2023, 12:42 |
|
Balalamb, Это ссылка на тип Добавлено через 53 секунды
1 |
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
13.12.2023, 12:48 [ТС] |
|
Dethmontt, а как можно это исправить, пока что мне приходит в голову только удалить дубли руками. А потом по заявкам пользователей восстанавливать им утраченные полномочия. Потому что это регистр Значения групп доступа.
0 |
Модератор 4030 / 2975 / 591 Регистрация: 10.03.2011 Сообщений: 11,703 Записей в блоге: 1 |
|
13.12.2023, 12:54 |
|
Сообщение от Balalamb А потом по заявкам пользователей восстанавливать им утраченные полномочия. как если там состав изменился))) Добавлено через 33 секунды
0 |
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
13.12.2023, 13:13 [ТС] |
|
Dethmontt, таки лазили! а мне разгребать)) но что характерно лазили очень давно, а ошибка всплыла недавно. Добавлено через 13 минут
0 |
Модератор 4030 / 2975 / 591 Регистрация: 10.03.2011 Сообщений: 11,703 Записей в блоге: 1 |
|
13.12.2023, 14:50 |
|
Сообщение от Balalamb а имеется возможность зная это значение 70B80000-0000-0000-0000-000000000000 точно установить тип? Как-то можно, через DBScema, я не помню как. Добавлено через 52 секунды Сообщение от Balalamb CONVERT(char(36),CAST(_Fld20860_RTRef as uniqueidentifier))
0 |
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
13.12.2023, 15:04 [ТС] |
|
Dethmontt, решил попробовать иначе. Дубли эти у нас уже как я выяснил давно. Проблема возникает на этапе перестроить индексы. Я обнулил таблицу. Сейчас обновляю базу и если все будет хорошо перенесу в нее данные из соседней копии.
0 |
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
14.12.2023, 09:28 [ТС] |
|
Dethmontt, все было очень прозаично. В определяемый тип действительно лазили, только обнова изменения затерла. Стоило вернуть то, что было сделано руками, и все стало хорошо без всяких танцев с бубнами
0 |
Модератор 4030 / 2975 / 591 Регистрация: 10.03.2011 Сообщений: 11,703 Записей в блоге: 1 |
|
15.12.2023, 01:01 |
|
Сообщение от Dethmontt Изменился состав составного типа регистра, что приводит к появлению дублей после конвертации Мне кажется это было понятно после этого сообщения, не?
0 |
6 / 6 / 5 Регистрация: 27.04.2015 Сообщений: 567 |
|
15.12.2023, 09:38 [ТС] |
|
Dethmontt, я не понял)
0 |
BasicMan Эксперт 29316 / 5623 / 2384 Регистрация: 17.02.2009 Сообщений: 30,364 Блог |
15.12.2023, 09:38 |
Помогаю со студенческими работами здесь Повтор предыдущей(первой записи). Указатели и структуры UMI Исключить повтор из выборки последних записей на странице записи Как сделать повтор программы в ассемблере, после нажатия кнопки повтор в MessageBox .data msgCaption db… повтор Повтор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 11 |
Новые блоги и статьи
Все статьи Все блоги / |
||||
.NET Aspire и cloud-native приложения C#
stackOverflow 24.05.2025 . NET Aspire — новый продукт в линейке Microsoft, который вызвал настоящий ажиотаж среди разработчиков облачных приложений. Компания называет его «опинионированным, облачно-ориентированным стеком для. . . |
Python и OpenCV для распознавания и обнаружения лиц
AI_Generated 24.05.2025 Python — язык, заслуживший любовь миллионов разработчиков своей простотой и выразительностью, а OpenCV (Open Source Computer Vision Library) — библиотека компьютерного зрения с открытым исходным. . . |
Брокер NATS в C#
UnmanagedCoder 24.05.2025 NATS (Neural Autonomic Transport System) — это легковесная система обмена сообщениями, которая отлично вписывается в мир современных распределённых приложений. Если вы когда-нибудь пытались построить. . . |
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025 Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . . |
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025 LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . . |
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025 PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . . |
Аутентификация OAuth в Python
py-thonny 22.05.2025 OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . . |
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025 Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . . |
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025 В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . . |
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025 Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . . |
Наверх
Перенос с файловой версии на MS SQL И опять: «Попытка вставки неуникального значения в уникальный индекс: Microsoft SQL Server Native Client 11.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем » В прошлый раз проблема была с таблицей бух.регистра «Налоговый» Пришлось грохнуть все движения, и потом загружать через XML. Теперь «повезло» таблице регистра сведений «СоответствияОбъектовИнформационныхБаз» Используется обмен УТ-Бухгалтерия, и содержимое этого регистра критически важно. Можно ли поступить так же? (т.е. грохнуть его, а затем загрузить через XML? — смущает то, что он сам используется для обмена данными)
Маленькая деталь: за полгода из файловой версии в SQL перенесено четыре базы, эта — пятая. Так вот — из пяти баз без проблем перенеслась только одна, в остальных — эта же проблема. С разными таблицами, но суть — одна. Причем в файловой версии эта ошибка не обнаруживается и никак себя не проявляет, а вылезает при переходе на SQL. Это только у меня такая статистика?
[Это только у меня такая статистика?] только у тебя все умеют делать ТиИ
Для слишком умных: ТиИ и Chkdbfl НЕ НАХОДЯТ эту ошибку.
Потому для файловой версии — это не ошибка и не проблема.
можно грохнуть индексы на таблице, загрузить базу и разобраться с дублями. включить индексы как было.
Это если в конфигураторе есть индексируемое поле. Например, со справочниками — это получается. С регистрами так не получится.
а ты все таки открой таблицу и посмотри ее индексы.
Регистр сведений говоришь. А там стоит галка создания таблицы для среза последних и индекс по его ресурсу?
регистр СоответствияОбъектовИнформационныхБаз кстати можно грохнуть спокойно. он потом сам опять заполнится. забей на индексы.
А вот над этим можно подумать, спасибо
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Вам встретилось сообщение, содержащее строки:
Microsoft OLE DB Provider for SQL Server: CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID
или
Cannot I_nsert duplicate key row in object
или
Попытка вставки неуникального значения в уникальный индекс.
Варианты решения:
1. В SQL Server managment studio физически уничтожаем сбойный индекс (в моем случае это был индекс по таблице итогов регистра бухгалтерии). В 1С распроводим сбойные документы. В режиме тестирования и исправления ставим галки реиндексация таблиц + пересчет итогов. 1С воссоздает индекс уже без ошибки. Проводим ранее сбоившие документы.
2. 1) С помощью Management Studio 2005 сгенерировала create-скрипт на создание индекса, который глючил, и сохранила в файлик.
2) Вручную убила косячный индекс из таблицы _AccumRgTn19455
3) Запустила запрос вида
Код SQL
S_elect count(*), поля_индекса
FROM AccumRgTn19455
GROUP BY поля_индекса
HAVING count(*)>1
После того, как индекс был убит, у меня отобразилось 15 дублирующихся записей, хотя до выполнения п.2 запрос ничего не возвращал.
4) Просмотрела все записи и вручную почистила дубликаты. На самом деле, я ещё пользовалась обработкой «Структура отчёта», чтобы понять, с чем вообще имею дело. Оказалось, что в таблице _AccumRgTn19455 хранится регистр накопления «Выпуск продукции (налоговый учёт)». Я ещё поковырялась sql-запросами, выявила 15 неуникальных документов и после окончания всех действ проверила в 1С, что эти документы проводятся нормально, без ошибок. Просто так чистить таблицы наобум, конечно, не стоит: важно понимать, что чистится и чем это может обернуться.
5) Запустила запрос на создание индекса, который был сохранён в файле.
6) Перевела базу в однопользовательский режим и запустила dbcc checkdb — на этот раз ни одной ошибки не выдалось.
7) Перевела базу обратно в однопользовательский режим.
Всё… проблема побеждена. Ну ещё в 1С запустила «Тестирование и исправление», там тоже всё прошло нормально, перестало ругаться на неуникальный индекс.
3. Если неуникальность заключается в датах с нулевыми значениями, то проблема решается созданием базы с параметром смещения равным 2000.
1. Если проблема загрузкой базы данных, то:
1.1. Если Вы делаете загрузку (используйете dt-файл) в базу MS SQL Server, то при создании базы перед загрузкой укажите смещение дат — 2000.
Если уже база создана со смещением 0, то создайте новую с 2000.
1.2. Если есть возможность в файловом варианте работать с базой, то выполните Тестирование и Исправление, а также Конфигурация — Проверка конфигурации — Проверка логической целостности конфигурации + Поиск некорректных ссылок.
1.3. Если нет файлового варианта, попробуйте загрузить из DT в клиент-серверный вариант с DB2 (который менее требователен к уникальности), и затем выполнить Тестирование и Исправление, а также Конфигурация — Проверка конфигурации — Проверка логической целостности конфигурации + Поиск некорректных ссылок.
1.4. Для локализации проблемы можно определить данные объекта, загрузка которого не удалась. Для этого надо включить во время загрузки трассировку в утилите Profiler или включите запись в технологический журнал событий DBMSSQL и EXCP.
2. Если проблема неуникальности проявляется во время работы пользователей:
2.1. Найти с помощью метода пункта 1.4 проблемный запрос.
2.1.2. Иногда ошибка возникает во время исполнения запросов, например:
Данная ошибка возникает из-за того что в модуле регистра накопления «Рабочее время работников организаций» в процедуре «ЗарегистрироватьПерерасчеты» в запросе не стоит служебное слово «РАЗЛИЧНЫЕ».
Код 1C v 8.х
Т.е. должно быть:
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Основные.ФизЛицо,
. . . . .
В последних выпущенных релизах ЗУП и УПП ошибка не возникает, т.к. там стоит «РАЗЛИЧНЫЕ».
2.2. После нахождения проблемного индекса из предыдущего пункта, необходимо найти неуникальную запись.
2.2.1. «Рыба» скрипта для определения неуникальных записей с помощью SQL:
Код SQL
S_elect COUNT(*) Counter, <перечисление всех полей соответствующего индекса> from <имя таблицы>
GROUP BY <перечисление всех полей соответствующего индекса>
HAVING Counter > 1
2.2.2 Пример. Индекс в ошибке называется «_Document140_VT1385_IntKeyIndNG».
Перечень полей таблицы:
_Document140_IDRRef, _KeyField, _LineNo1386, _Fld1387, _Fld1388, _Fld1389, _Fld1390, _Fld1391RRef, _Fld1392RRef, _Fld1393_TYPE, _Fld1393_RTRef, _Fld1393_RRRef, _Fld1394,_Fld1395, _Fld1396RRef, _Fld1397, _Fld1398, _Fld1399RRef, _Fld22260_TYPE, _Fld22260_RTRef, _Fld22260_RRRef, _Fld22261_TYPE, _Fld22261_RTRef, _Fld22261_RRRef
Перед выполнением приведенной ниже процедуры сделайте резервную копию базы данных.
Выполните в MS SQL Server Query Analizer:
Код SQL
S_elect count(*), _Document140_IDRRef, _KeyField
from _Document140_VT1385
group by _Document140_IDRRef, _KeyField
having count(*) > 1
С его помощью узнайте значения колонок _Document140_IDRRef, _KeyField, дублирующихся записей (id, key).
При помощи запроса:
Код SQL
S_elect *
from _Document140_VT1385
where _Document140_IDRRef = id1 and _KeyField = key1 or _Document140_IDRRef = id2 and _KeyField = key2 or ...
посмотрите на значения других колонок дублирующихся записей.
Если обе записи имеют осмысленные значения и эти значения разные, то исправьте значение _KeyField на уникальное. Для этого определите максимальное занятое значение _KeyField (keymax):
Код SQL
S_elect max(_KeyField)
from _Document140_VT1385
where _Document140_IDRRef = id1
Замените значение _KeyField в одной из повторяющихся записей на правильное:
Код SQL
update _Document140_VT1385
set _KeyField = keymax + 1
where _Document140_IDRRef = id1 and _LineNo1386 = lineno1
Здесь _LineNo1386 = — дополнительное условие, которое позволяет выбрать одну из двух повторяющихся записей.
Если одна (или обе) из повторяющихся записей имеет очевидно неправильное значение, то ее нужно удалить:
Код SQL
delete from _Document140_VT1385
where _Document140_IDRRef = id1 and _LineNo1386 = lineno1
Если повторяющиеся записи имеют одинаковые значения во всех колонках, то из них нужно оставить одну:
Код SQL
S_elect distinct *
into #tmp1
from _Document140_VT1385
where _Document140_IDRRef = id1 and _KeyField = key1
delete from _Document140_VT1385
where _Document140_IDRRef = id1 and _KeyField = key1
I_nsert into _Document140_VT1385
S_elect #tmp1
D_rop table #tmp1
Описанную процедуру необходимо выполнить для каждой пары повторяющихся записей.
2.2.3. Второй пример:
Код SQL
S_elect COUNT(*) AS Expr2, _IDRRef AS Expr1, _Description
FROM _Reference8_
GROUP BY _IDRRef, _Description
HAVING (COUNT(*) > 1)
2.3.4 Пример определения неуникальных записей с помощью запроса 1С:Предприятие:
Код 1C v 8.х
ВЫБРАТЬ Справочник.Ссылка
ИЗ Справочник.Справочник КАК Справочник
СГРУППИРОВАТЬ ПО Справочник.Ссылка
ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1