Довжина ключа індексу перевищує максимально допустиму

User Rating: 0 / 5

Якщо Вам це цікаво, то говорити "Доброго дня" - недоречно.

Ситуація, про яку йдеться, може виникати у різних випадках. Наприклад, при завантаженні у файлову базу вивантаження з SQL варіанта бази. Так само це може статися і за спроби оновити конфігурацію БД. Починається все з незрозумілого повідомлення:

довжина

Власне, насамперед натисніть кнопку "Докладніше.".

перевищує

Тут ми починаємо скролити повідомлення з метою зрозуміти причину страшної події. Але ніфіга, окрім незрозумілих латинських символів, ми не бачимо.

ключа

Насправді ці латинські символи - єдина зачіпка, але вона настільки нечітка, що доведеться добряче попрацювати, щоб знайти ВОРОГА.

Отже, помилку виявлено, і тепер нам треба щось робити.

Якщо помилка вилазить у процесі оновлення конфігурації ІБ, сценарій - простий. Порівняйте основну конфігурацію із конфігурацією ІБ. Звертайте увагу на нові виміри регістрів, зміну індексації реквізитів. Швидше за все, уважно оглянувши порівняння, Ви швидко зрозумієте, де треба виправити. Виправляємо просто: зменшуємо довжину рядкових полів, забираємо індексацію, забираємо вимірювання в реквізити. Звичайно, це може спричинити проблеми з логікою системи, адже не просто так Ви додали вимір або включили індексацію, але іншого варіанта немає.

Складніше під час завантаження dt файлу. Тут порівнювати нема чого. Найкраще, що у повідомленні немає імені метаданих, у повідомленні лише ім'я фізичної таблиці в СУБД. Як дізнатися де косяк?

Першим помічником буде обробкаStrukturaHraneniaBazyDannyh_Xr8v.epf (вона є у вкладенні). Заснована обробка на методі платформи Отримати Структуру Зберігання Бази Даних (). Цей метод повертає таблицю з відповідністюфізичних таблиць та метаданих. Тобто. якщо Ви знаєте ім'я таблиці, то Ви легко знайдете ім'я довідника або регістра відомостей.

Отже, відкриваємо серверну базу і запускаємо в ній обробку.

Але рано радіти. імена фізичним таблицям присвоюються на момент створення чи реструктуризації бази. І вони різні в різних копіях однієї й тієї бази.

Грубо кажучи свої _InfoR15768_ByNodeMsg_RNRSRSSS - в таблиці не знайшов. Що ж робити? А нічого, шукати методом тику.

Є одна особливість, що різні у імен таблиць лише цифри, а префікс та постфікс – однакові. Таким чином я знайшов всі індекси, що містять рядокByNodeMsg_RNRSRSSS. В результаті залишилося 5 регістрів відомостей. Далі методично, по черзі, у кожному їх гуркотимо вимірювання, зберігаємося, вивантажуємося, завантажуємося у файлову. завантажилося – УРА, ні – наступний.

StrukturaHraneniaBazyDannyh_Xr8v.epf у мене трохи доопрацьована, я для зручності вирішення цього завдання виводжу всі імена індексів на окремій закладці.

Ще вона у мене конвертована під 8.3

І ще:) вона для звичайної програми, а зараз у всіх керовані форми. Запускаємо 1С з ключем / RunModeOrdinaryApplication.