Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/180: Рейтинг темы: голосов - 180, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
1

Несовместимая версия файла базы данных

04.11.2011, 19:36. Показов 35039. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, возникла такая проблема.
Имеется обработка, которая подключается к другой базе и вытаскивает нужные данные.
У меня развернута база на платформе 8.2 и я из другой базы развернутой на той же платформе пытаюсь подключиться, выдается сообщение об ошибке: Несовместимая версия файла базы данных 'D:\тря-ля-ля/1Cv8.1CD'.
Сама база, к которой я пытаюсь подключиться когда то была на 8.1 и ныне переконвертированная под 8.2.
Не подскажите ли в чем проблема, и как ее устранить?

Заранее огромнейшее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2011, 19:36
Ответы с готовыми решениями:

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

DacFX несовместимая версия
Всем привет, помогите решить проблему, когда пытаюсь редактировать таблицу БД в VS2012 пишет...

Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных)
Вообщем не понятно после чего перестал открываться файл базы данных с ошибкой - "database disk...

Редактирование файла базы данных
Здравствуйте, есть файл формата .db3 в нем нужно изменить определенное значение, как это возможно...

24
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.11.2011, 01:41 2
Через конфигуратор всё получится.

Добавлено через 2 минуты
Ну, то есть, открыть эту обработку в конфигураторе. А он кроме сообщения о чужой платформе предложит конвертнуть. Согласиться, и после сохранения обработки можно открывать её в ентерпрайзе.
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
05.11.2011, 23:57  [ТС] 3
Цитата Сообщение от duk337 Посмотреть сообщение
Через конфигуратор всё получится.

Добавлено через 2 минуты
Ну, то есть, открыть эту обработку в конфигураторе. А он кроме сообщения о чужой платформе предложит конвертнуть. Согласиться, и после сохранения обработки можно открывать её в ентерпрайзе.

Открывала, он мне такого не предлагал.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
06.11.2011, 00:51 4
А, да. Извини. Невнимательно читаю. База-источник в 8.2, а обработка из базы-приёмника ловит её как 8.1? База-источник работает? Конфы аналогичные? Попробуй сархивировать её, а потом восстановить в чистом месте.

Ещё поэкспериментировать - выгрузить данные в xml типовой обработкой "выгрузки в аналогичную конфу". Конфигурацию сохранить в файл и загрузить в пустую базу, а потом типовой же обработкой "Загрузка..." загрузить из xml данные. Это типа протирки стёкол и пинания по покрышкам.
А вообще, по-игроцки, в отладчике отловить место, где обработка анализирует версию базы и действовать по ситуации. Есть всякие уголочки, где прописана эта версия. Может, в этом дело. Где-то зависло "8.1" вместо "8.2" или тупо версия конфы считается несовместимой? Вернее всего разобраться с программным кодом.
0
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
06.11.2011, 19:09 5
Если OLE, тогда проблем быть не должно
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
06.11.2011, 20:13 6
Похоже, что OLE, и что якобы ошибка - дело рук программиста.
Глянуть бы в эту обработку на точку ошибки.
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
07.11.2011, 20:16  [ТС] 7
Я не знаю как обработка ее ловит, я написала ошибку, там вроде бы открытого заявление про 8.1 нет.
База источник работает, конфы... ну вроде бы аналогичные.
И эта обработка работала, когда конфигурации были такие же, только тогда подключение было к версии 8.1. (в обработке строчка исправлена и подключаемся уже к приложению 8.2)
Спасибо за совет, попробую так поймать ошибку)
0
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
07.11.2011, 20:38 8
возникла идея, верно ли в обработке стоит ComКонектор?
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
07.11.2011, 23:17 9
Ну похоже на то что комКоннектор создается по текущей базе и ломиться в 8.1 через V82.ComConnector. или же наоборот. Короче - Давайте обработку в студию, разберемся.

Добавлено через 15 минут
duk337, И я бы не стал винить в этой ошибке программиста!
Во первых - если бы все программисты продумавали код на будующее у нас бы не было работы)))
Во вторых - Скорее всего ему заплатили копейки за эту обработку, ты бы стал сидеть продумывать если подключение по КОМ не доступено тогда пробывать подключение через NATIV или ODBC и писать для этих подключений свой алгоритм??? Думаю за небольшие деньги нет!!!

Zmeyuga, Попробуйте закоментировать строчку где встречается такое слово -
C
1
ПеременнаяКом = Новый ComОбъект("ТутЧтоТоНаписано"); или ПеременнаяКом = New ComObject("Тут что то написано");
Ниже добасить
C
1
2
3
4
5
6
7
8
9
Попытка
ПеременнаяКом = Новый ComОбъект("V82.ComConnector");
Исключение
Попытка
ПеременнаяКом = Новый ComОбъект("V81.ComConnector");
Исключение
ВызватьИсключение "Вызовите программиста он вам поможет за небольшую плату";
КонецПопытки;
КоннецПопытки;
Добавлено через 2 минуты
"ПеременнаяКом = Новый ComОбъект("ТутЧтоТоНаписано"); или ПеременнаяКом = New ComObject("Тут что то написано");"
Это пример, дословно по ctrl+F искть не надо!!!
1
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
07.11.2011, 23:38 10
Цитата Сообщение от Dethmontt Посмотреть сообщение
duk337, И я бы не стал винить в этой ошибке программиста!
Согласен, не виню. Имелось в виду - это не есть трабл в базе. Это в тексте. А баг это или фича - надо было посмотреть. А когда узнал, что обработка заточена под базу 81, а напускают её на базу 82 - даже и комментить не стал: разгадка и так близка.
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
07.11.2011, 23:49  [ТС] 11
Ну это писал не совсем даже программист,а начинающий студент ( то есть я).
И про такие страшные вещи даже и не знала(

У меня стоит так:
C
1
УТ = новый COMобъект("V82.Application");



Попробовала вышеописанный вариант, вроде бы мы смогли подключиться, огромнейшее спасибо.

А обращение к объектам базы источника можно писать так:
C
1
ПромПерем=КомПеременная.ИмяМодуля.ИмяПроцедуры();
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
08.11.2011, 00:03 12
Это простительно :)
0
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
08.11.2011, 00:15 13
Цитата Сообщение от duk337 Посмотреть сообщение
Согласен, не виню. Имелось в виду - это не есть трабл в базе. Это в тексте. А баг это или фича - надо было посмотреть. А когда узнал, что обработка заточена под базу 81, а напускают её на базу 82 - даже и комментить не стал: разгадка и так близка.
действительно, комментить не стали.
наверное потому что отгадка не вам пришла в голову, увы...
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
08.11.2011, 10:45  [ТС] 14
ну-ну, не фырчитесь))

Извините пожалуйста, но можно объяснить почему та строчка кода не срабатывала, из-за чего?

Добавлено через 14 минут
Цитата Сообщение от duk337 Посмотреть сообщение
Отдельное и огромное спасибо за снисходительность и ссылку.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
08.11.2011, 11:59 15
Цитата Сообщение от fimbulwinter Посмотреть сообщение
действительно, комментить не стали.
наверное потому что отгадка не вам пришла в голову, увы...
Увы

зме 1с8 прописывается в системном реестре по-другому чем 1с7, поэтому и обращение к оле-серверам 1с81 и 1с82 стало "ComConnector". Понятно, что ошибки синтакс контроль не выдаёт, поскольку параметр символьный, а винда не находит приложение по этому параметру. Если интересно по-взрослому, в командной строке винды набрать regedit, а там поиском по ^F "ComConnector" пройти их все. И да раскроются кое-какие тайны . Кроме 1сников таких идентификаторов никто не придумал.
0
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
08.11.2011, 12:35 16
вообще все совсем не так. Есть такие понятия как CLSID и ProcID.
Ну да это выходит за рамки текущей темы.
И ошибок выдавать обработка тоже не будет потому как установлено две платформы, следовательно ProcID зарегистрирован в реестре для обеих платформ и совсем не важно какой идентификатор.
Не верно то, что топикстартер берет механизм одной платформы и пытается открыть совсершенно другой по структуре и метаданным, все равно что ложкой банку варенья открывать.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
08.11.2011, 13:42 17
Цитата Сообщение от fimbulwinter Посмотреть сообщение
вообще все совсем не так. Есть такие понятия как CLSID и ProcID.
Ну да это выходит за рамки текущей темы.
Правильно. Я для людей. Поскольку сам дилетант.

Цитата Сообщение от fimbulwinter Посмотреть сообщение
И ошибок выдавать обработка тоже не будет потому как установлено две платформы, следовательно ProcID зарегистрирован в реестре для обеих платформ и совсем не важно какой идентификатор.
Абсолютно верно. Но какой идентификатор всё-таки важно. Просто все идентификаторы есть - тут я криво написал, согласен. И "аппликейшн" есть. Он, наверное, просто для других целей, раз нужен "коннектор". Да?

Цитата Сообщение от fimbulwinter Посмотреть сообщение
Не верно то, что топикстартер берет механизм одной платформы и пытается открыть совсершенно другой по структуре и метаданным, все равно что ложкой банку варенья открывать.
Тут мне самому интересно. Я так понял, что сначала в обработке запускалось ядро 81 и открывалась база 81. Потом базу конвертнули в 82 и ядро 81 выдало штатное сообщение. Потом в тексте поменяли 81 на 82 с сохранением обращения к оле "Application". Да? А чем отличается "Application" от "ComConnector" я не очень знаю. На первый взгляд, "Application" д.б. шире и "ComConnector" как бы его фрагмент. Надо полазить по текстам обработок обмена.
PS. Я ведь ни на что не претендую. Кроме жажды познания мною ничего не движет
Открываем раздел реестра HKEY_CLASSES_ROOT. Находим любимые сочетания типа "1CV82 Application", там есть параметр CLSID примерно такой : {5CD98F13-1050-4b43-84F2-33AD97CFC287}.
В HKEY_CLASSES_ROOT.CLSID находим этот класс. Там и екзешник (дээлелька), и тип, ну и т.д. - это уже совсем не моя грядка
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
08.11.2011, 18:15  [ТС] 18
Во жуть, обманули меня молодую и неопытную просто таки ужасно, подсунули не ясно что с соединением(

Цитата Сообщение от duk337 Посмотреть сообщение
Тут мне самому интересно. Я так понял, что сначала в обработке запускалось ядро 81 и открывалась база 81. Потом базу конвертнули в 82 и ядро 81 выдало штатное сообщение. Потом в тексте поменяли 81 на 82 с сохранением обращения к оле "Application". Да? А чем отличается "Application" от "ComConnector" я не очень знаю. На первый взгляд, "Application" д.б. шире и "ComConnector" как бы его фрагмент. Надо полазить по текстам обработок обмена.
Сначала открывалась обработкой 8.1, потом открывалась 8.2, а на третий раз (но уже с другой базой) ничего не открылось.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
08.11.2011, 19:30 19
Цитата Сообщение от Zmeyuga Посмотреть сообщение
Во жуть, обманули меня молодую и неопытную просто таки ужасно, подсунули не ясно что с соединением(

Сначала открывалась обработкой 8.1, потом открывалась 8.2, а на третий раз (но уже с другой базой) ничего не открылось.
Я понял, что оба раза из 82. Обращение сначала к 81, потом к 82. К 82 к одной базе удачно, а к другой не удачно? Что-то тут не вяжется. Поюзать бы фрагмент программного текста, где идёт соединение с базой. От инициализации оле до обращения к метаданным.
Но если были удачные соединения с какой-то базой, то в другой базе могло не оказаться объекта какого-нибудь, флажка, там, процедурки... Опять же о возможном сообщении об ошибке можно только гадать. Коннектор м.б. не оснащён механизмом обработки ошибок, как аппликейшн... Так работает или нет? Если нет, то информации для диагноза малость не хватает. Весь анамнез нужен, а лучше обработка. моя почтуха duk337@gmail.com
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
08.11.2011, 20:20  [ТС] 20
Цитата Сообщение от duk337 Посмотреть сообщение
Я понял, что оба раза из 82. Обращение сначала к 81, потом к 82. К 82 к одной базе удачно, а к другой не удачно? Что-то тут не вяжется. Поюзать бы фрагмент программного текста, где идёт соединение с базой. От инициализации оле до обращения к метаданным.
Но если были удачные соединения с какой-то базой, то в другой базе могло не оказаться объекта какого-нибудь, флажка, там, процедурки... Опять же о возможном сообщении об ошибке можно только гадать. Коннектор м.б. не оснащён механизмом обработки ошибок, как аппликейшн... Так работает или нет? Если нет, то информации для диагноза малость не хватает. Весь анамнез нужен, а лучше обработка. моя почтуха duk337@gmail.com
Именно так, и поэтому я была в печали, что вдруг перестало подключаться, вообщем то проблему я решила окружным путем и все нужные данные из базы в базу уже перетащила, осталось просто любопытство.
И до обращения к метаданным у меня не доходило, у меня уже не подключалось к базе. Сейчас через коннектор вроде бы подключается, но уже не идет с обращением. Сбегала в конфигурацию базы приемника, попялилась на модуль, лежит, название такое же, имя процедуры, к которой обращаюсь тоже...
0
08.11.2011, 20:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2011, 20:20
Помогаю со студенческими работами здесь

Вывод файла из базы данных
Добрый день! Пытаюсь вывести файл из б.д. mysql. Вместо этого скачивается сама страница. Ошибка...

Архивация файла базы данных
Добрый день проблема заключается в следующем. Надо сделать архивацию на windows 10 64 разряда....

Чтение базы данных из файла
База Данных “Студенты”. Данные БД хранятся в файле. Структура БД: - № (номер элемента) -...

Открытие файла из базы данных
Вопрос вот в чем, я просканировал локальную папку и записал адреса файлов в базу данных. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru