Нарушение в базе, которое стандартно не исправляется

1. pavel06 2 26.10.20 14:04 Сейчас в теме
В файловой БП3 версии 8.3.83.37 chdbfl выдает ошибку:

" Обнаружены дублирующиеся ключи в уникальных индексах таблицы '_USERSWORKHISTORY' "

и ничего, не исправляя внизу:

" Обнаружены нарушения ограничений уникальности индексов. Продолжать работать можно. "

Запускаю тестирование и исправление с исправлением со всеми галочками, но оно проходит, перерегистрирует объекты и никаких сообщений об ошибках.
А chdbfl снова выдает ту же ошибку.

Как ее исправить? Иногда у пользователей база внезапно закрывается.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Torin 782 26.10.20 14:18 Сейчас в теме
(1)Произвести ТИ ( тестирование и исправление базы данных)
еще как вариант загрузить в SQL и DBCC CHECKTABLE (_UsersWorkHistory, repair_allow_data_loss)
3. pavel06 2 26.10.20 14:31 Сейчас в теме
(2)
Произвести ТИ ( тестирование и исправление базы данных)


Я же написал, что ТИ делал, оно ничего не дало.
4. Torin 782 26.10.20 14:32 Сейчас в теме
(3)"еще как вариант загрузить в SQL и DBCC CHECKTABLE (_UsersWorkHistory, repair_allow_data_loss)"
5. pavel06 2 26.10.20 14:35 Сейчас в теме
(4)
еще как вариант загрузить в SQL и DBCC CHECKTABLE (_UsersWorkHistory, repair_allow_data_loss)


Интересный вариант.
А эта команда в SQL даст сообщения об исправлениях?
Хотелось бы знать конкретнее причину такой ошибки.
6. Torin 782 26.10.20 14:38 Сейчас в теме
(5)_UsersWorkHistory - таблица истории работы пользователя.

DBCC CHECKTABLE Производит проверку целостности всех страниц и структур, составляющих таблицу или индексированное представление.
REPAIR_ALLOW_DATA_LOSS
Пытается устранить все обнаруженные ошибки. Эти исправления могут привести к частичной потере данных.

"Если необходимо использовать аргумент REPAIR, выполните инструкцию DBCC CHECKTABLE без параметра восстановления, чтобы узнать требуемый уровень восстановления. При использовании уровня REPAIR_ALLOW_DATA_LOSS рекомендуется создать резервную копию базы данных перед выполнением инструкции DBCC CHECKTABLE с этим параметром."
7. pavel06 2 26.10.20 14:44 Сейчас в теме
(6)
Пытается устранить все обнаруженные ошибки. Эти исправления могут привести к частичной потере данных.


Частичная потеря данных может привести к более серьезным ошибкам?

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

Или такая команда молча все выполнит?
8. Torin 782 26.10.20 14:45 Сейчас в теме
(7)
Не факт что вы установите кто пользователь!

"Если необходимо использовать аргумент REPAIR, выполните инструкцию DBCC CHECKTABLE без параметра восстановления, чтобы узнать требуемый уровень восстановления. При использовании уровня REPAIR_ALLOW_DATA_LOSS рекомендуется создать резервную копию базы данных перед выполнением инструкции DBCC CHECKTABLE с этим параметром."
9. pavel06 2 26.10.20 14:48 Сейчас в теме
(8)
выполните инструкцию DBCC CHECKTABLE без параметра восстановления


Это DBCC CHECKTABLE (_UsersWorkHistory) надо писать?
я никогда не работал с SQL командами
10. Torin 782 26.10.20 14:52 Сейчас в теме
(9)Да

"Как ее исправить? Иногда у пользователей база внезапно закрывается."
Вы задали вопрос как исправить :) "DBCC CHECKTABLE (_UsersWorkHistory, repair_allow_data_loss)".

Хотите заняться более глубоким анализом?

История работы пользователей
Таблица _UsersWorkHistory
_ID - Уникальный идентификатор пользователя информационной базы
_UserID - ID пользователя - владельца настройки
_URL - URL
_Date - Дата время
_URLHash - Хеш по URL
11. klom 26.10.20 15:26 Сейчас в теме
https://its.1c.ru/db/metod8dev/content/1798/hdoc
История работы пользователей
Таблица _UsersWorkHistory содержит следующие поля:

_ID - Уникальный идентификатор пользователя информационной базы;
_UserID - ID пользователя - владельца настройки;
_URL - URL;
_Date - Дата-время;
_URLHash - Хеш по URL;
_DataSeparationUse<n> – использование разделения данных;
_Fld<n> - общие реквизиты.

Ошибка на уникальность индексов данной таблицы возникала при попытке загрузки dt в SQL. Вылечилось загрузкой в файловую и правкой таблиц через ToolCD 1C.
mirrr; pavel06; +2 Ответить
12. pavel06 2 11.11.20 19:01 Сейчас в теме
(11)
Вылечилось загрузкой в файловую и правкой таблиц через ToolCD 1C


Последние скачки этого инструмента относятся к версии платформы 8.3.8. Сейчас непонятно, чем пользоваться.
13. klom 12.11.20 16:32 Сейчас в теме
(12) Если конвертация базы в более ранний формат для того чтобы использовать tollCD не катит,
то можно воспользоваться инструментом "Библиотека 1CDLib (с) andrewks"
https://infostart.ru/public/166557/

На текущий момент реализованы следующие

Возможности:
- получение массива таблиц БД;
- сохранение данных таблиц в файлы ("сырые" данные!);
- загрузка данных таблиц из файлов ("сырые" данные!);
- переименование таблиц, установка им новых описаний;
- создание, удаление таблиц;
- получение массива полей таблицы, подсчёт длины одной записи;
- навигация по записям таблицы, чтение/запись полей и BLOB-полей;

- сохранение/загрузка BLOB-полей в файл;

- добавление, удаление записей;

- получение примитивной информации по метаданным;

- поддержка разных целевых платформ - Windows32/64, Linux64.

Также возможна работа с базой данных (и, также, с произвольными двоичными файлами блочной структуры) на "низком" уровне: реализованы методы по чтению/записи числовых и строковых данных из блоков файла.
14. sasha-t-st 12.04.24 20:30 Сейчас в теме
Я с такой столкнулась ошибкой. Еще и на базовой версии бухгалтерии.
помогло так.(кончный релиз 3.0.150.33)
0. копия базы
1. тестирование файла с помощью chdbf
2. тестирование полностью в конфигураторе
потом все равно была ошибка в режиме предприятия при открытии.
3. открыла базовую в конфигураторе, открыла для редактиования (у меня еще ПРОФ базы есть и ключ, поэтому дало отредактировать). Открыла конфигурацию для изменения и сохранила.
4. загрузила .cf файл базовой конфигурации на 1-2 релиза старше.
5. получила базовую конфигурацию нового релиза, приняла изменения, запустила режим предприятия, ошибка исчезла, обновление прошло. Конфигурация осталась базовой.
Ошибка ушла.


Но на другой Проф версии так не прошло, там была конфигурация Бух Сельхоз Предприятия.
Там пришлось восстановить с архива на несколько дней назад.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот