| 
    
            
         
         | 
    
    
  | 
Для знатоков SQL | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        pochemu    
     18.12.12 
            ✎
    16:55 
 | 
         
        Обновлял как-то базу динамически - нарушилась целостность структуры... Из бэкапа восстановил таблицу dbschema и база заработала. Но потом оказалось, что если в один документ добавить реквизит, то база не обновлялась, вылетает ошибка. Скорее всего это из-за того, что в dbnames прописан столбец в этом документе, которого на самом деле не существует.. Вот я и хочу прочитать в таблице Params бинарную запись dbnames, изменить что мне надо и засунуть изменения обратно. Как это можно осуществить?     
         | 
|||
| 
    1
    
        Defender aka LINN    
     18.12.12 
            ✎
    16:59 
 | 
         
        (0) Рекомендую предварительно закупить пару банок вазелина     
         | 
|||
| 
    2
    
        mikecool    
     18.12.12 
            ✎
    17:01 
 | 
         
        рискну предположить, что бинарник там - это хмл, но не факт
  
        а в обчем - не с той стороны ты начал бутерброд есть, дядя Федор, имхо  | 
|||
| 
    3
    
        pochemu    
     18.12.12 
            ✎
    17:01 
 | 
         
        (1) База работает нормально, все данные на месте. Проблема только в одном столбце одного документа, не дает метеданные этого дока менять..     
         | 
|||
| 
    4
    
        pochemu    
     18.12.12 
            ✎
    17:03 
 | 
         
        (2) С какой надо? Находил на форумах, что доставали данные и заменяли их. Но не раскрывалась сам механизм.. Читал, что данные надо разархивировать еще.     
         | 
|||
| 
    5
    
        samozvanec    
     18.12.12 
            ✎
    17:04 
 | 
         
        тестирование исправление? просто выгрузить-загрузить дт? что-то из этого пробовал?     
         | 
|||
| 
    6
    
        pochemu    
     18.12.12 
            ✎
    17:05 
 | 
         
        (5) Тестирование-исправление не помогло, всю ночь делалось. ДТ - выгружать - загружать, слишком долгая тема, да и места на  диске мало сейчас (оставлю на последок).     
         | 
|||
| 
    7
    
        samozvanec    
     18.12.12 
            ✎
    17:08 
 | 
         
        (6) с цфкой из бекапа можно попробовать объединить полностью. я бы такие действия в первую очередь попробовал, так как алгоритмы закрытые, что конкретно делают - хз. может возьмет и сформирует тебе dbnames по структуре базы, мало ли, что разрабы курили     
         | 
|||
| 
    8
    
        Evg    
     18.12.12 
            ✎
    17:09 
 | 
         
        (0) тут не нужно особых знаний sql, топик неправильный.     
         | 
|||
| 
    9
    
        Hipernate    
     18.12.12 
            ✎
    17:10 
 | 
         
        тут SQL и не пахнет, причем тут знатоки SQL??     
         | 
|||
| 
    10
    
        pochemu    
     18.12.12 
            ✎
    17:12 
 | 
         
        (7) Хм, я вначале просто попробовал - выгрузил cf из бэкапа, загрузил на касячную базу - не помогло. Но это было до того, как я структуры таблиц SQL синхронизировал и заменил dbschema. Сейчас еще разок попробую. Но читать данные из SQL и записывать обратно - это было бы круто даже если бы и небыло у меня проблемы с базой..     
         | 
|||
| 
    11
    
        pochemu    
     18.12.12 
            ✎
    17:17 
 | 
         
        (9) Как не пахнет? Есть запись в SQL.... читать её, записать её, 1С... Те кто SQL 1С-овской постоянно зависает - наверняка знают как читать и записывать бинарные файлы..     
         | 
|||
| 
    12
    
        МихаилМ    
     18.12.12 
            ✎
    17:20 
 | 
         
        (0)
  
        запись dbnames сжата алгоритмом deflate http://msdn.microsoft.com/ru-ru/library/system.io.compression.deflatestream.aspx  | 
|||
| 
    13
    
        pochemu    
     18.12.12 
            ✎
    17:25 
 | 
         
        (12) Спасибо. А в 1С-ке или delphi не находил примеров использования?     
         | 
|||
| 
    14
    
        Hipernate    
     18.12.12 
            ✎
    17:25 
 | 
         
        сначала пробуй простые способы потом используй лом и молоток(6)     
         | 
|||
| 
    15
    
        pochemu    
     18.12.12 
            ✎
    17:28 
 | 
         
        (14) Мне интереснее научиться читать-записывать, да и время не жмет (документ не типовой)     
         | 
|||
| 
    16
    
        sda553    
     18.12.12 
            ✎
    17:41 
 | 
         
        А что хоть за ошибка то вылетает при обновлении? Какой текст?     
         | 
|||
| 
    17
    
        samozvanec    
     18.12.12 
            ✎
    17:43 
 | 
         
        (16) вопрос по сути гениален, поддерживаю)     
         | 
|||
| 
    18
    
        pochemu    
     18.12.12 
            ✎
    17:44 
 | 
         
        В процессе обновления информационной базы произошла критическая ошибка.
  
        по причине: Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Не удалось вставить значение NULL в столбец "_Fld28219", таблицы "StalTestZUP.dbo._Document22276NG"; в столбце запрещены значения NULL. Ошибка в INSERT. HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=2, Severity=10, native=515, line=1  | 
|||
| 
    19
    
        pochemu    
     18.12.12 
            ✎
    17:45 
 | 
         
        (17) Ну я вопрос задавал в форме, которая по сути знания текста ошибки не требует..     
         | 
|||
| 
    20
    
        pochemu    
     18.12.12 
            ✎
    17:46 
 | 
         
        (16) Вот мне и надо этот столбец "_Fld28219" (18) Удалить...     
         | 
|||
| 
    21
    
        olegves    
     18.12.12 
            ✎
    17:50 
 | 
         
        (18) у тебя похоже описание конфигурации не содержит инфы по полю _fld28219, так что придется лом брать.
  
        Спрашивается: зачем ломал конфу средствами скуля? Получил приключений на свою ж*пу  | 
|||
| 
    22
    
        olegves    
     18.12.12 
            ✎
    17:52 
 | 
         
        (20) кури ALTER TABLE     
         | 
|||
| 
    23
    
        pochemu    
     18.12.12 
            ✎
    17:53 
 | 
         
        (21) я структуры синхронизировал, только данные о структуре не синхронизировались до конца, вот и хочу досинхронизировать. Ничего тут страшного нет, данные не теряются. Это всего-то проблема с парой записей, которые надо удалить.     
         | 
|||
| 
    24
    
        stix2010    
     18.12.12 
            ✎
    17:54 
 | 
         
        (0) вообще то надо начинать с ConfigSave     
         | 
|||
| 
    25
    
        pochemu    
     18.12.12 
            ✎
    17:55 
 | 
         
        (22) Ты не понял. Есть таблица Params, в ней есть запись DBNames, в этой записи есть данные бинарные, в этих бинарных данных содержится инфа о конфе. Вот мне эти данные и надо поправить, а не удалить столбец..     
         | 
|||
| 
    26
    
        pochemu    
     18.12.12 
            ✎
    17:56 
 | 
         
        (24) С этого было начато, но не помогло, поскольку структура базы данных поменялась. Я конечное решение привел.     
         | 
|||
| 
    27
    
        pochemu    
     18.12.12 
            ✎
    17:57 
 | 
         
        (22) Как тут уже было сказано (12) Надо мне научиться пользоваться алгоритмом сжатия, да и всё.     
         | 
|||
| 
    28
    
        vmv    
     18.12.12 
            ✎
    17:57 
 | 
         
        (0) загрузи в файловую, выполнни все операции по профилактике(утилита ремонта таблиц, крушение битых ссылок, и т.д. в режиме тестирования/исправления)
  
        потом закугрузи в скуль "хорошую" другой путь копаться в дебрях скуля, но это путь когда вариант 1 не дал результата и последний на порядок гемморойней  | 
|||
| 
    29
    
        samozvanec    
     18.12.12 
            ✎
    17:59 
 | 
         
        (18) я, конечно, может, глупость скажу, но пробовал ли ты ставить флаг нулл у столбца? и есть ли столбец?     
         | 
|||
| 
    30
    
        pochemu    
     18.12.12 
            ✎
    18:00 
 | 
         
        (28) Это я использую, если забью на SQL. Мне так интереснее, да и на будущее пригодится.     
         | 
|||
| 
    31
    
        pochemu    
     18.12.12 
            ✎
    18:00 
 | 
         
        (29) - (25)     
         | 
|||
| 
    32
    
        pochemu    
     18.12.12 
            ✎
    18:01 
 | 
         
        (29) Инфа о наличии столбца находится в бинарных данных, в самой-же реальной структуре его просто нет.     
         | 
|||
| 
    33
    
        vmv    
     18.12.12 
            ✎
    18:04 
 | 
         
        (30) организация таблиц и связей структур данных 1С в классических реляционных СУБД понятна только разработчикам платформы и людям, которые для них собирали грибы - удачи)     
         | 
|||
| 
    34
    
        stix2010    
     18.12.12 
            ✎
    18:08 
 | 
         
        реквизит переименуй в конфигураторе и сохранись и обратно     
         | 
|||
| 
    35
    
        Serginio1    
     18.12.12 
            ✎
    18:11 
 | 
         
        (0) Интересно это ноги растут отсюда v8: Тем кто в SQL шарит
  
        или зайцы плакали но ели кактус?  | 
|||
| 
    36
    
        MaxS    
     18.12.12 
            ✎
    18:15 
 | 
         
        Сделать копию базы без данных и экспериментировать на ней. Если получится починить, из копии перенести конфигурацию в рабочую базу.     
         | 
|||
| 
    37
    
        Serginio1    
     18.12.12 
            ✎
    18:27 
 | 
||||
| 
    38
    
        denfil    
     18.12.12 
            ✎
    20:05 
 | 
         
        У меня такая шляпа произошла когда при обновлении файловой базы вырубили свет.
  
        2 недели попыток, восстановления этой таблицы прошли зря. Связей и структуры этой таблицы мне мне понять не дано. Хотя структура файла аналогична ALS-файлу. Но связи с другими таблицами я не нашел. Тестирование и прочие типовые средства либо ни чего не находят либо вываливаються с ощибкой. Не помню точно как победил. Но косяк был с недавно добавленным реквизитом. Поэтому вставил в файл cf-ник и DBSchema из копии, а потом тестирование и исправление.  | 
|||
| 
    39
    
        Ferz    
     18.12.12 
            ✎
    23:22 
 | 
         
        (0)в Ei это можно сделать. Да действительно отсутствующий столбец  описанный в DBNames может приводить к ошибке. Но не единым DBNames,,,,
  
        более подробнее тут http://blog.1c-ei.ru/2012/12/blog-post.html  | 
|||
| 
    40
    
        _Demos_    
     18.12.12 
            ✎
    23:56 
 | 
         
        DROP TABLE AdventureWorks2012.dbo.SalesPerson2 ; 
  
        как пример смотри ничего не перепутай)))  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |