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

03.06.14

База данных - Инструменты администратора БД

Избитая тема: Попытка вставки неуникального значения в уникальный индекс. Однако ситуация уникальнейшая.

Сразу оговорюсь, что нормальное решение данной проблемы до сих пор не найдено.

Для начала предыстория. Клиент, достаточно крупный, УТ 10.3, файловая, конфигурация сильно переписанная (неведомыми деятелями до нас), пользователей много, отсюда сильное торможение базы. Предложили переход на SQL.

Клиент согласился, и мы недолго думая, продали соответствующие ПП. Наши программисты все установили, начали загрузку базы и тут возникла проблема: попытка вставки неуникального значения в уникальный  индекс. Данная проблема достаточно распространена, и нас это не сильно испугало, благо мозгов и средств решения это ситуации вроде бы хватает.

А дальше началась канитель. Неуникальные индексы (числом 2) обнаружились в таблице Files, про которую немного написано в инете, в основном то, что в ней хранятся файлы, например, данные о хранилище конфигурации. Напомню, что хотя попытка вставки неуникального значения возникает у многих, в всемирной сети данный вопрос обсуждался и обсуждается, и есть много решений данной проблемы, но наша ситуация отличается от ситуаций описанных в интернете.

У всех прочих проблем одно общее свойство: неуникальные индексы возникали в таблицах вроде справочники, документы, регистры бухгалтерии и т.д. И это позволяло разными способами достаточно просто решить эту неприятность. Но у нас неуникальные индексы были в одной из основных таблиц базы Files, которую и не пощупать-то никак.

Были перепробованы все варианты исправления (про стандартные даже не говорю, тестирование и исправление даже не ругалось на это место), некоторые из нас дошли даже до того, что нашли в HEX данное место и заполнили его другими значениями. Единственное, что мы нашли через классную утилиту 1С Tools, это то, что один из индексов был создан в 11 году, второй 19.06.13. Дата создания второго индекса натолкнула нас на то, что данный индекс возник, возможно, при обновлении (22 релиз 10.3 был выпущен 10.06, а дата создания индекса 19.06.).

Единственное решение данной проблемы мы нашли такое: загрузить пустой DT с данной конфигурацией в SQL, а затем воспользоваться замечательной обработкой ВыгрузкаЗагрузкаXML. Перенос занял 2 суток, перенеслось все, кроме пользователей, клиенты до сих пор проверяют тестовые перенесенные данные. После их проверки, попробуем изменить конфигурацию и посмотрим, успешно ли будет обновить конфигурацию базы данных.

Вот такая история, продаешь клиенту SQL и сервер 1с на достаточно крупную сумму, а потом попадаешь в такую глупую ситуацию. Век живи, век учись.

 

Проблема решена!!!! Спасибо замечательной Tool_1CD (альфа версия с возможностью редактирования).
Описание решения:
1. Создаем пустой dt с нашей конфигурацией.
2. Загружаем в SQL(для проверки).
3. Выгружаем из SQL в dt.
4. Загружаем в файловую версию.
5. Просматриваем с помощью Tool_1CD нашу пустую базу, экспортируем таблицу Files.
6. Просматриваем с помощью Tool_1CD нашу родную базу(с двумя одинаковыми индексами), удаляем таблицу Files.
7. Указываем каталогом импорта путь к каталогу из пункта 5, нажимаем импортировать и создать таблицу.
8. И все ок:).
База на данный момент на проверке пользователей, но на первый взгляд все ок.

Вступайте в нашу телеграмм-группу Инфостарт

SQL Попытка вставки СУБД

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    65610    347    169    

304

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    24794    93    42    

101

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

24400 руб.

06.12.2023    22252    80    10    

113

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    49679    134    161    

90

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    45549    31    13    

49

Чистка данных Инструменты администратора БД Администрирование 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"

23999 руб.

20.02.2026    1058    1    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anchovy 24 04.06.14 10:22 Сейчас в теме
Как то не сходится текст статьи с конечным описанием решения. В тексте описано решение с переносом данных при помощи обработки ВыгрузкаЗагрузкаXML. В описании решения речь идет о замене таблицы Files в рабочей базе данными из пустой базы. И если первый способ понятен, то второй вызывает вопрос зачем таблицу с данными заменять на таблицу без данных?
2. iskan 24 04.06.14 13:56 Сейчас в теме
(1) anchovy, гм, кажется, в статье все описано. Таблица FILES не хранит данные как таковые. То есть она не хранит данные конкретного справочника, документа и т.д. Как сказано в описании данной таблицы, она хранит так сказать техническую информацию, например, данные о хранилище конфигурации. Поэтому стало возможным заменить ее на не пустую, а соответствующую таблицу из пустой базы такой же конфигурации. Естественно, после всех этих плясок, необходимо провести физическое тестирование и тестирование исправление.
Так что решения в принципе два, только ВыгрузкаЗагрузкаXML не всегда корректно работает. Да и долго, если база большая.
3. for-elenak 8 05.06.14 07:23 Сейчас в теме
Может быть я чего-то не понимаю....А нельзя ли было обойтись только заменой "косячной" таблицы без пункта ВыгрузкаЗагрузкаXML?
4. iskan 24 05.06.14 08:56 Сейчас в теме
Как оказалось, можно было. Однако, не стал переделывать статью и убирать из нее второе решение, так как: первое, два решения лучше чем одно; второе, решение с заменой было найдено после написания статьи; третье, данный случай описан для таблицы FILES, возможно, для других основных таблиц(таблиц, хранящих техническую информацию) оно не подойдет, ради интереса, можно потренироваться и на других.
6. for-elenak 8 06.06.14 09:44 Сейчас в теме
(4) iskan, Когда-то очень давно делали замену таблицы со структурой конфигурации. Но это было еще на 7.7...Попыхтеть пришлось. В каждом конкретном случае задачу приходится решать по-своему.
5. alyaev.a.v 05.06.14 16:45 Сейчас в теме
Методы научного тыка, одинэсина как всегда на высоте.
7. yrachka 27.02.15 07:51 Сейчас в теме
Пытаюсь создать и импортировать ранее выгруженную таблицу FILES (с другой базы с аналогичной конфой) следующим образом: указываю путь, жму "создание и импорт таблицы".Пишет, что таблица создана и импортирована, но при следующем открытии базы пишет, что таблица не найдена. В этой базе таблица была удалена tool_1cd кнопкой удаление текущей таблицы. В чем может быть проблема? Спасибо!
Прикрепленные файлы:
Прикрепленные файлы:
8. пользователь 27.02.15 07:51
Сообщение было скрыто модератором.
...
9. arthur2003 24.05.18 15:48 Сейчас в теме
я решил так (на маленькой базе БП 3.0):
1. программно отключил использование итогов
2. распровел и провел проблемные документы
3. включил использование итогов
4 проверил что в ОСВ ничего не изменилось
10. sergathome 4 24.05.18 16:56 Сейчас в теме
А тупо пересоздать индекс на таблице Files никак не прокатило ?
Для отправки сообщения требуется регистрация/авторизация