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

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 Попытка вставки СУБД

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    3006    15    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3634    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177829    1074    0    

852

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    27413    79    146    

60

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61324    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

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

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11752    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31120    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10994    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 11 05.06.14 07:23 Сейчас в теме
Может быть я чего-то не понимаю....А нельзя ли было обойтись только заменой "косячной" таблицы без пункта ВыгрузкаЗагрузкаXML?
4. iskan 24 05.06.14 08:56 Сейчас в теме
Как оказалось, можно было. Однако, не стал переделывать статью и убирать из нее второе решение, так как: первое, два решения лучше чем одно; второе, решение с заменой было найдено после написания статьи; третье, данный случай описан для таблицы FILES, возможно, для других основных таблиц(таблиц, хранящих техническую информацию) оно не подойдет, ради интереса, можно потренироваться и на других.
6. for-elenak 11 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 никак не прокатило ?
Оставьте свое сообщение