Для знатоков SQL #644358


#0 by pochemu
Обновлял как-то базу динамически - нарушилась целостность структуры... Из бэкапа восстановил таблицу dbschema и база заработала. Но потом оказалось, что если в один документ добавить реквизит, то база не обновлялась, вылетает ошибка. Скорее всего это из-за того, что в dbnames прописан столбец в этом документе, которого на самом деле не существует.. Вот я и хочу прочитать в таблице Params бинарную запись dbnames, изменить что мне надо и засунуть изменения обратно. Как это можно осуществить?
#1 by Defender aka LINN
Рекомендую предварительно закупить пару банок вазелина
#2 by mikecool
рискну предположить, что бинарник там - это хмл, но не факт а в обчем - не с той стороны ты начал бутерброд есть, дядя Федор, имхо
#3 by pochemu
База работает нормально, все данные на месте. Проблема только в одном столбце одного документа, не дает метеданные этого дока менять..
#4 by pochemu
С какой надо? Находил на форумах, что доставали данные и заменяли их. Но не раскрывалась сам механизм.. Читал, что данные надо разархивировать еще.
#5 by samozvanec
тестирование исправление? просто выгрузить-загрузить дт? что-то из этого пробовал?
#6 by pochemu
Тестирование-исправление не помогло, всю ночь делалось. ДТ - выгружать - загружать, слишком долгая тема, да и места на  диске мало сейчас (оставлю на последок).
#7 by samozvanec
с цфкой из бекапа можно попробовать объединить полностью. я бы такие действия в первую очередь попробовал, так как алгоритмы закрытые, что конкретно делают - хз. может возьмет и сформирует тебе dbnames по структуре базы, мало ли, что разрабы курили
#8 by Evg
тут не нужно особых знаний sql, топик неправильный.
#9 by Hipernate
тут SQL и не пахнет, причем тут знатоки SQL??
#10 by pochemu
Хм, я вначале просто попробовал - выгрузил cf из бэкапа, загрузил на касячную базу - не помогло. Но это было до того, как я структуры таблиц SQL синхронизировал и заменил dbschema. Сейчас еще разок попробую. Но читать данные из SQL и записывать обратно - это было бы круто даже если бы и небыло у меня проблемы с базой..
#11 by pochemu
Как не пахнет? Есть запись в SQL.... читать её, записать её, 1С... Те кто SQL 1С-овской постоянно зависает - наверняка знают как читать и записывать бинарные файлы..
#12 by МихаилМ
запись dbnames сжата алгоритмом deflate
#13 by pochemu
Спасибо. А в 1С-ке или delphi не находил примеров использования?
#14 by Hipernate
сначала пробуй простые способы потом используй лом и молоток
#15 by pochemu
Мне интереснее научиться читать-записывать, да и время не жмет (документ не типовой)
#16 by sda553
А что хоть за ошибка то вылетает при обновлении? Какой текст?
#17 by samozvanec
вопрос по сути гениален, поддерживаю)
#18 by pochemu
В процессе обновления информационной базы произошла критическая ошибка. по причине: Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Не удалось вставить значение NULL в столбец "_Fld28219", таблицы "StalTestZUP.dbo._Document22276NG"; в столбце запрещены значения NULL. Ошибка в INSERT.
#19 by pochemu
Ну я вопрос задавал в форме, которая по сути знания текста ошибки не требует..
#20 by pochemu
Вот мне и надо этот столбец "_Fld28219" Удалить...
#21 by olegves
у тебя похоже описание конфигурации не содержит инфы по полю _fld28219, так что придется лом брать. Спрашивается: зачем ломал конфу средствами скуля? Получил приключений на свою ж*пу
#22 by olegves
кури ALTER TABLE
#23 by pochemu
я структуры синхронизировал, только данные о структуре не синхронизировались до конца, вот и хочу досинхронизировать. Ничего тут страшного нет, данные не теряются. Это всего-то проблема с парой записей, которые надо удалить.
#24 by stix2010
вообще то надо начинать с ConfigSave
#25 by pochemu
Ты не понял. Есть таблица Params, в ней есть запись DBNames, в этой записи есть данные бинарные, в этих бинарных данных содержится инфа о конфе. Вот мне эти данные и надо поправить, а не удалить столбец..
#26 by pochemu
С этого было начато, но не помогло, поскольку структура базы данных поменялась. Я конечное решение привел.
#27 by pochemu
Как тут уже было сказано Надо мне научиться пользоваться алгоритмом сжатия, да и всё.
#28 by vmv
загрузи в файловую, выполнни все операции по профилактике(утилита ремонта таблиц, крушение битых ссылок, и т.д. в режиме тестирования/исправления) потом закугрузи в скуль "хорошую" другой путь копаться в дебрях скуля, но это путь когда вариант 1 не дал результата и последний на порядок гемморойней
#29 by samozvanec
я, конечно, может, глупость скажу, но пробовал ли ты ставить флаг нулл у столбца? и есть ли столбец?
#30 by pochemu
Это я использую, если забью на SQL. Мне так интереснее, да и на будущее пригодится.
#31 by pochemu
-
#32 by pochemu
Инфа о наличии столбца находится в бинарных данных, в самой-же реальной структуре его просто нет.
#33 by vmv
организация таблиц и связей структур данных 1С в классических реляционных СУБД понятна только разработчикам платформы и людям, которые для них собирали грибы - удачи)
#34 by stix2010
реквизит переименуй в конфигураторе и сохранись и обратно
#35 by Serginio1
Интересно это ноги растут отсюда или зайцы плакали но ели кактус?
#36 by MaxS
Сделать копию базы без данных и экспериментировать на ней. Если получится починить, из копии перенести конфигурацию в рабочую базу.
#37 by Serginio1
Посмотри
#38 by denfil
У меня такая шляпа произошла когда при обновлении файловой базы вырубили свет. 2 недели попыток, восстановления этой таблицы прошли зря. Связей и структуры этой таблицы мне мне понять не дано. Хотя структура файла аналогична ALS-файлу. Но связи с другими таблицами я не нашел. Тестирование и  прочие типовые средства либо ни чего не находят либо вываливаються с ощибкой. Не помню   точно как победил. Но косяк был с недавно добавленным реквизитом. Поэтому вставил в файл cf-ник и DBSchema из копии, а потом тестирование и  исправление.
#39 by Ferz
в Ei это можно сделать. Да действительно отсутствующий столбец  описанный в DBNames может приводить к ошибке. Но не единым DBNames,,,, более подробнее тут
#40 by _Demos_
DROP TABLE AdventureWorks2012.dbo.SalesPerson2 ; как пример смотри ничего  не перепутай)))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С