![]() |
![]() |
|
Удаление объекта метаданных средствами SQL | ☑ | ||
---|---|---|---|---|
0
unTonee
05.03.09
✎
11:27
|
Возможно ли такое...
Мне необходимо удалить ДОКУМЕНТ_А средствами SQL, причем так же удалить все ссылки на это ДОКУМЕНТ_А в других документах на него. Ознакомился с докой на ИТС "Размещение данных 1С:Предприятия 8.1", особо не помогла, смог только вяснить в таблице с каим именем на sql храниться документ и соотвественно выцепить его табличные части. Как я понимаю необходимо произвести манипуляции еще и с таблицей config... Друзья, кто сталкивался с такой проблемой - расскажите как и возможно ли это. |
|||
1
mikecool
05.03.09
✎
11:29
|
(0) ничего не трогай
|
|||
2
sanches2
05.03.09
✎
11:31
|
А стандартными средствами удалить нельзя чтоли?
|
|||
3
unTonee
05.03.09
✎
11:31
|
(1) Я не спрашивал разрешения потрогать. Давайте обойдемся без делинтанских постов - проще говоря флуда.
|
|||
4
ДенисЧ
05.03.09
✎
11:33
|
Любитель нетрадиционного секса? Так это на других форумах...
|
|||
5
los_hooliganos
05.03.09
✎
11:33
|
DELETE
FROM WHERE Возможно все, но надо не забывать про ссылки в журналах и кое-где еще. Лучше ИМХО поставить пометку на удаление ср-вами sql, а удалять уже 1ской. |
|||
6
unTonee
05.03.09
✎
11:33
|
(2) При реструктуризации возникает ошибка. Каким-то образом при получении конифгурации из Хранилища, завелись некорректные таблицы. Которые при реструктуризации не позволяют выполнить её...
|
|||
7
los_hooliganos
05.03.09
✎
11:34
|
Так удали некорректные таблицы из базы и из таблицы конфигурации.
|
|||
8
unTonee
05.03.09
✎
11:35
|
(5) Вы меня не поняли ДОКУМЕНТ - это объект метаданных. А не запись в таблице, как вы посчитали
|
|||
9
unTonee
05.03.09
✎
11:36
|
(7) Если сделать простой delete валятся ошибки при реиндексации на удаленные объекты. Нужно глубже копнуть удалить все ссылки на эти объекты.
|
|||
10
Я не курил
05.03.09
✎
11:37
|
Через SQL md можно править? О_о
|
|||
11
mikecool
05.03.09
✎
11:37
|
тогда тебе еще и в master таблицы лезть нада будет, syscolumns или systables
где то там перечисление полей всех таблиц всех БД... геморрно больно |
|||
12
unTonee
05.03.09
✎
11:37
|
Ну вот ссылка к примеру в Роли, должна быть удалена, ссылка в измерении регистра на объект тоже должна быть удалена.
|
|||
13
mikecool
05.03.09
✎
11:39
|
может проще найти "правильную" конфигу, обновить хранилище и вытянуть по новой?
может прокатить такой вариант? |
|||
14
unTonee
05.03.09
✎
11:41
|
(13) Самый не плохой вариант был использовать стандартную обработку ИТС, которая позволяет выгрузить конфу в XML
И залить ей в новую НОРМАЛЬНУЮ конфу - но по непнятным причинам обработка при выгрузке зависает. |
|||
15
unTonee
05.03.09
✎
11:42
|
Как еще можно выгрузить данные из конфигурации? не выгружая саму конфу?
|
|||
16
unTonee
05.03.09
✎
11:45
|
(11) А где эти таблицы находятся? Про них так же ничего не сказано в доке по размещению данных...
|
|||
17
hhhh
05.03.09
✎
11:50
|
(9) ну так запусти ТИИ или chdbfl
|
|||
18
unTonee
05.03.09
✎
11:52
|
(17) что такое ТИИ ?
|
|||
19
Serg_1960
05.03.09
✎
11:53
|
Конфигурация - Администрирование - Тестирование и исправление...
|
|||
20
unTonee
05.03.09
✎
11:54
|
(17) chdbfl - для файлового варианта
|
|||
21
unTonee
05.03.09
✎
11:55
|
(19) Не помогает
Конфигурация - Администрирование - Тестирование и исправление... |
|||
22
fisher
05.03.09
✎
12:21
|
Чисто средствами SQL вы объект МЕТАДАННЫХ удалить не сможете. Потому как сама конфа хранится в SQL в виде бинарных данных, а не набора связанных таблиц (таблицы config, поле BinaryData).
Задача решаемая, но её адекватность вызывает громадные сомнения. Прийдется анализировать и использовать очень большой объем недокументированной информации, со всеми вытекающими. |
|||
23
unTonee
05.03.09
✎
12:31
|
(22) Если честно, задавая вопрос в (0), думал, что кто-нибудь поможет расшифровать именно поле binarydata . Если я правильно понял, весь корень зла именно в нем.
|
|||
24
fisher
05.03.09
✎
12:41
|
(23) Корень зла в том, что недокументированные способы работы с данными и метаданными чреваты своей непредсказуемостью. Не отследив все взаимосвязи (а так оно и будет), вы рискуете заложить в свою базу ряд мин замедленного действия.
Может, вы снизойдете до объяснения конечной цели своих манипуляций? ЗАЧЕМ это делать и почему делать это ИМЕННО ТАК? Может, коллективный разум сможет предложить разумную альтернативу? |
|||
25
Serg_1960
05.03.09
✎
12:52
|
Имхо, такой глюк надо в несколько "этапов" вычищать. Сначало удалить ссылки на документ в тех объектах, которые не "валят" реструктуризацию. Потом (средствами SQL) удалить данные в тех таблицах, которые "валятся". И повторить первый пункт...
|
|||
26
Serg_1960
05.03.09
✎
12:59
|
(24) +1 С "разбегу" проблему не получилось решить - автор, колись подробностями :)
|
|||
27
unTonee
05.03.09
✎
13:05
|
Поясню ситуацию:
Работаем мы вот так: РАБОЧАЯ БАЗА - хранилище конфигурации - ПРОГРАММИСТЫ При добавлении в РАБОЧУЮ БАЗУ документов - произошел глюк какой-то глюк - на следующий день работы вываливалось сообщение relation _document4990 does not exist... Выяснилось что document4990 - это документ ЗаданиеНаПриозводство, который делает обороты по регистру ПартииТоваров. И это ошибка вылетала, потому, что не было проставлено право доступа на чтение документа ЗаданиеНаПриозводство у всех ролей, которым необходимо работать с регистром. Далее все было нормально БАЗА работала, но 3-мя документами никто не пользовался. Когда начала захотели полпользощваться, началаи вылетать сообщения типа relation ТАКОЙ-ТО does not exist и т.п. Решили, что эти документы надо удалить из рабочей базы, обойдя хранилище, удалить объекты в хранилище и заоить из по новой... Вообщем теперь при попытке удаления в РАБОЧЕЙ базе этих документов выдается сообщение: В процессе обновления информационной базы произошла критическая ошибка. по причине: Ошибка СУБД: ERROR: relation "_docume4990_vt5206_intkeyind" does not exist |
|||
28
unTonee
05.03.09
✎
13:58
|
(27) В посте не точно описал: При добавлении в При добавлении в РАБОЧУЮ БАЗУ трёх документов
Во время выполнения ТИИ (Тестирование и исправление ИБ) вылетает ошибка : Ошибка СУБД: ERROR: relation "_document4990_vt5206" does not exist |
|||
29
unTonee
05.03.09
✎
14:31
|
На наверно все обед ушли?
|
|||
30
unTonee
05.03.09
✎
15:54
|
uppp.
|
|||
31
fisher
05.03.09
✎
16:41
|
Сложно что-то посоветовать. Никогда с подобной ошибкой не сталкивался...
Если я правильно понял смысл ругательств 1С - структура метаданных не совпадает со структурой данных БД. Причем в БД нет кой-чего, чего там быть должно в соответствии с текущей версией метаданных. Чтобы попробовал сделать я в подобной ситуации (ессно, на копии): Выгрузил из рабочей базы cf и поднял под ним пустую базу. Потом очень внимательно сравнил структуры пустой базы и рабочей (или можно отталкиваться от ругательств). Т.е. чего не хватает (полей, таблиц, индексов и т.д.) - создать в рабочей 1:1 как в пустой. Когда ругаться перестанет, лучше всего штатно удалить из рабочей эти объекты метаданных и потом штатно создать их по новой (чтобы 1С корректно разобралась со всеми хвостами). |
|||
32
Vippi
05.03.09
✎
16:51
|
(29) На наверно.
Делинтанты, мля. С ЗаданиеНаПрИОзводство справиться не могут. |
|||
33
unTonee
05.03.09
✎
17:17
|
(31)
Вы абсолютно верно вникли в проблему.... Проблема в том - что Ваш совет я уже пробовал. НО при загрузке CF файла имена документов , реквизитов, заводятся в БД каждый раз с другими именами... -) Есть еще один вариант, если получится отпишусь... |
|||
34
unTonee
05.03.09
✎
17:18
|
(32) Проверка орфографии выполнена ? -))
Ваши предложения? |
|||
35
fisher
05.03.09
✎
17:42
|
(33) Вы хотите сказать, что при загрузке одного и того же cf в пустую базу несколько раз подряд, каждый раз генерятся разные имена таблиц и полей??
|
|||
36
Immortal
05.03.09
✎
17:46
|
(35) ну не каждый раз, но что разные могут быть это да
|
|||
37
unTonee
05.03.09
✎
17:47
|
(35) Я хотел сказать, что при выгрузке CF файл-бэкапа с нормально работающей БД, т.е. вчерашщнего бэкапа - при заведении в новой БД и загрузки CF в новую БД - имена таблиц и полей - заводятся по-новому т.е. имеют другие имена.
Я не пробовал в пустую БД заливать насколько раз один и тот же CF файл. |
|||
38
unTonee
05.03.09
✎
17:54
|
Интересно бы было узнать как связаны записи в таблицу config
с названиями таблиц документов. Фактически проблема: в таблицу config попали записи на таблицы _documentXXXX_vtXXXX которые не существую, но как их удалить из config - неизвестно... Пока неизвестно.... Как расшифровать поле binarydata (22)(23) |
|||
39
Vippi
05.03.09
✎
17:56
|
(34) Мои предложения - пригласить специалиста.
Нельзя методом тыка работать с данными, не владея нужными знаниями. И советчики в этой ветке примерно такого же уровня. Доступно и всерьез (с) |
|||
40
unTonee
05.03.09
✎
18:09
|
(39) Контакты достойного спеца подскажите ?
|
|||
41
fisher
05.03.09
✎
18:09
|
(37) Блин, хреново...
Можно попробовать создавать таблицы/поля методом научного тыка - на что ругается, то и создавать. Изначально стараясь придерживаться структуры схожих объектов конфигурации, чтоб уменьшить количество итераций... |
|||
42
unTonee
05.03.09
✎
18:12
|
(41) пробовал пробема с типами
|
|||
43
unTonee
05.03.09
✎
18:12
|
(41) и долго
|
|||
44
Serg_1960
05.03.09
✎
18:16
|
(29) Сорри, на работе озадачили проблемой - не могу Вам уделить и грамма внимания :( Обсудите без меня варианты:
- выгрузить конфу БД (Конфигурация - Конфигурация базы данных - Сохранить конфигурация БД в файл) и сравнить с рабочей конфой - нужно уточнить расхождения; - вернуться к конфе БД (Конфигурация - Конфигурация базы данных - Вернуться к конфигурации БД) - если рабочая конфа и конфа БД различны. |
|||
45
unTonee
05.03.09
✎
18:18
|
(44) Пробовал не катит... -)
|
|||
46
LamerSuper
05.03.09
✎
18:18
|
Варианты починки базы пр всяких сбоях вроде такие
1) Выгрузка cf и загрузка в чистую (это уже было тут) 2) Выгрузка dt и загрузка обратно 3)Выгрузка XML и загрузка в чистую созданную с помощью CF 4)Создание образа узла и установка для него что он центральный. Больше я не знаю. |
|||
47
fisher
05.03.09
✎
18:19
|
(42) Понял. Погодь.
Кажись, была программка, умеющая выдавать физическую структуру БД по метаданным. Счас повспоминаю/пороюсь... |
|||
48
unTonee
05.03.09
✎
18:19
|
(46) 3) Выгрузка в XML - подвисает... -((((
|
|||
49
unTonee
05.03.09
✎
18:19
|
(47) У меня есть... Это внешняя обработка
|
|||
50
Serg_1960
05.03.09
✎
18:21
|
(45) Что именно не катит? Конфа БД выгружается или это тоже глючит?
(49) StrBaseSQL.epf |
|||
51
LamerSuper
05.03.09
✎
18:22
|
+(46) Наверно можно еще извратиться поставить чистую БД из cf.
Установить конвертацию данных. Создать правила все возможные. И с помощью этого выгружать /загружать. |
|||
52
unTonee
05.03.09
✎
18:22
|
(50) Выгружается в CF, но в DT не выгружается...
|
|||
53
unTonee
05.03.09
✎
18:23
|
(51) На крайний случай попробуем
|
|||
54
unTonee
05.03.09
✎
18:25
|
Сейчас родилась сумасшедшая идея... Попробуем...
|
|||
55
LamerSuper
05.03.09
✎
18:25
|
Озвуч
|
|||
56
Serg_1960
05.03.09
✎
18:26
|
(52) Конфа БД выгружается в CF и загружается в рабочую (Конфигурация - Загрузить конфигурацию из файла) - можно сделать ТиИ и начинать удалять...
Вернусь через пол-часа - час, - сорри |
|||
57
unTonee
05.03.09
✎
18:28
|
(56) Пробовал - Х/У\Й! 1С:Предприятие вылетает, с ошибкой отправить сообщение в майкрасофт - даже ругнуться не успевает! -))
|
|||
58
LamerSuper
05.03.09
✎
18:29
|
Попробуй 4 из (46).Должно.
|
|||
59
unTonee
05.03.09
✎
18:31
|
(4) Я вот не понял как это можно сделать?
|
|||
60
unTonee
05.03.09
✎
18:31
|
(58) Я вот не понял как это можно сделать?
|
|||
61
LamerSuper
05.03.09
✎
18:33
|
В планах обмена Полный создаешь узел распределенной БД. Потом входишь в эту созданную базу конфигуратором и запускаешь внешнюю обработку
УстановитьГлавныйУзел(Неопределено). В итоге новая копия твоей базы. Ее можно в dt |
|||
62
unTonee
05.03.09
✎
18:37
|
(61) Ок... Сейчас закончу свой эксперимент - если не по прет тогда - по-вашему сделаю...
|
|||
63
LamerSuper
05.03.09
✎
18:37
|
(62) А свой то озвуч.
Мне интересно. |
|||
64
unTonee
05.03.09
✎
18:43
|
Сейчас у нас физически нет этих таблиц, но есть бэкап, который имеет имена таблиц в SQL, но они (имена таблиц) не верные на конце имеют дописку ng.
Пример: _document4990_vt5206ng а 1С:Предприятие при выгрузке .dt файла ругается что не может найти таблицу _document4990_vt5206 (т.е. без ng) и так порядок действий таков: 1) из бэкапа создаю в SQL таблицы - CREATE table - и понеслась - благо с скуэль много работал 2) далее убираю а них дописку ng и пробую выгрузить в файл 1CD всю конфу 3) прохожу выгруженную конфу утилитой chdbfl 4) Загружаю обратно на сервак |
|||
65
LamerSuper
05.03.09
✎
18:44
|
Сильно.
Получилось? |
|||
66
unTonee
05.03.09
✎
18:44
|
(65) пробую - обязательно отпишусь -)))
|
|||
67
LamerSuper
05.03.09
✎
18:45
|
Хорошо что в асемблере не работал:)
|
|||
68
unTonee
05.03.09
✎
18:47
|
(67) Кто сказал ???? =))))
|
|||
69
unTonee
05.03.09
✎
18:56
|
Вот только не могу найти как выгрузить конфигурацию в файл формата 1CD ??
|
|||
70
fisher
05.03.09
✎
19:07
|
(49) Так в чем проблема? Смотрим, какая должна быть структура недостающей хни и создаем её.
|
|||
71
Мелкий бес
05.03.09
✎
19:09
|
в явном виде ссылка на документ может и отсутствовать - попробуй заменить тип ДокументСсылка на конкретные типы без вирусного документа
|
|||
72
eklmn
гуру
05.03.09
✎
19:14
|
(69) для этого надо выгрузить в 1см8.dt, создать ситую в файле и залить дтшник
|
|||
73
eklmn
гуру
05.03.09
✎
19:16
|
я так понимаю ты обновился и у тебя началась такая фигня?
|
|||
74
unTonee
05.03.09
✎
19:17
|
нее.. Жто произошло после залития новых доков из хранилища...
или что ты имел ввиду под - обновился? |
|||
75
unTonee
05.03.09
✎
19:18
|
(72) Ок спасибо...
А как потом опять перенести в .dt из .1CD ? |
|||
76
eklmn
гуру
05.03.09
✎
19:20
|
выгрузить так же :))
|
|||
77
eklmn
гуру
05.03.09
✎
19:21
|
(74) я имею ввиду платформу на 13 не обновляли?
|
|||
78
unTonee
05.03.09
✎
19:22
|
(77) Обновляли! У нас сейчас самая последняя стоит 1С:Предприятие 8.1 (8.1.13.41)
А что в этом глюк - кстати знаю еще один конкретный глюк платформы - но ни как не могу написать в 1С... |
|||
79
eklmn
гуру
05.03.09
✎
19:30
|
(78) я заметил это у многих, да и сам столкнулся.
У меня была запара на СФвыданных, точнее на её проводках 76.АВ, везде где фигурировал 76.АВ валило 1Ску, молча. Ошибка другая правда, но диагноз тот же. просто перед тем как обновиться, расправел все СФ, закрытие месяца, книгу и т.д. потом только обновлял, вроде пока фурычит. Правда после обновления он мне все СФ убил нахрен собака :) |
|||
80
unTonee
05.03.09
✎
19:31
|
(79) ЖЕСТЬ! Вот за это я и не люблю 1С - кривота. Я раньше с банковским бэкофисом работал - системки покруче были! А здесь как из говна и пыли все слепили...
|
|||
81
eklmn
гуру
05.03.09
✎
19:34
|
(80) тоже хотел скулем, как ты кстати, почикать, ан нет, не получиться, даже не парься.
|
|||
82
SnarkHunter
05.03.09
✎
19:37
|
Я сегодня не такой как вчера -
Я вчера был ростом выше на метр И в плечах гораздо шире был я, Да и был шишками покрыт, словно кедр... |
|||
83
SnarkHunter
05.03.09
✎
19:38
|
Затвра тоже сильно я изменюсь -
Буду я горбатый и с бородой, Вот такой я, понимаете, гусь, Вот такой вот я мужик заводной... |
|||
84
unTonee
05.03.09
✎
19:40
|
(82)(83) -)))) Стебайтесь - стебайтесь а я все-равно все сделаю -)))
|
|||
85
unTonee
05.03.09
✎
19:41
|
(81) Я думаю все будет - ОК!
|
|||
86
SnarkHunter
05.03.09
✎
19:43
|
Я не хвастаюсь вам, но у меня
Изменяется набор хромосом Лишь намедни я был белым конем, А сегодня я - Буденный на нем! Но не я один на свете таков Нынче может измениться любой А вот припрется к вам сейчас unTonee - Вы, ведь, хрен поймете кто он такой... |
|||
87
unTonee
05.03.09
✎
19:52
|
(86)
Жил в Москве один товарищ, Трубку крепкую курил Вот и умер, потому что За здоровьем не следил... |
|||
88
unTonee
05.03.09
✎
20:04
|
(81) А как вы вышли из сложившейся ситуации ?
|
|||
89
unTonee
05.03.09
✎
20:04
|
(81) поподробнее...
|
|||
90
eklmn
гуру
05.03.09
✎
20:51
|
(88) см (79)
|
|||
91
unTonee
05.03.09
✎
21:19
|
Полёт - нормальный!
Уже chdbfl проверяет 1CD файл! УРА! |
|||
92
unTonee
05.03.09
✎
21:58
|
Проверка окончена - идет выгрузка в .dt файл -)
|
|||
93
eklmn
гуру
05.03.09
✎
22:07
|
рано радуешься,chdbfl может сказать что ошибок не обнаружено, а диагноз останется :)
|
|||
94
Мимохожий Однако
05.03.09
✎
22:08
|
||||
95
unTonee
05.03.09
✎
22:17
|
(93) Да ладноо... -(((
|
|||
97
bahmet
06.03.09
✎
00:28
|
посодют, всех вас нах посодют...
|
|||
98
Serg_1960
06.03.09
✎
08:41
|
(0) Как дела? Проверка структуры chdbfl, имхо, не помогла сбойные данные восстановить?
|
|||
99
unTonee
06.03.09
✎
09:35
|
(98) Вроде все - ок. Возможно действительно chdbfl и не помогла, ща проверю - что и как...
|
|||
100
КапЛей
06.03.09
✎
09:36
|
100
|
|||
101
unTonee
06.03.09
✎
10:00
|
Ситуация такая была:
Все таблицы SQL существовали(часть из бэкапа, где система работала более-менее нормально), которые необходимы для документов 1С:Предприятия, но названы были не верно. Методом тестирования - было выявлено отсутствие записи ключа. В результате был создан руками на SQL. Таблицы были либо перименованы, либо заведено по новой. Все глючные имена таблиц были поправлены на правильные (те которые ругался 1С), старые таблицы не удалялись(заведенные с ошибочными именами). В результате получилось перегнать SQK версию ИБ в .dt файл. После был создана новая ИБ и загружен .dt файл. Потом файловый вариант ИБ был проверен chdbfl - ошибок - нет. Проверена работоспособность документов, которые были глючные - вск ОК, но на всякий случай их удалили, т.к. они не использовались в системе (в дальнейшем их зальем). 1CD - загружена в SQL. Все работает - как надо! Понятно что помог - просто перегон БД из файла - в SQL. После просомтра SQL-структуры вновь загруженной ИБ - на первый взгляд все выглядит - работоспособным и на деле тоже работоспособно. |
|||
102
unTonee
06.03.09
✎
10:07
|
Всем .Б.А.Л.Ь.Ш.О.Е. спасибо - кто помогал! -)
А особенно: mikecool fisher LamerSuper Serg_1960 hhhh eklmn Мелкий бес За песни спасибо: SnarkHunter - творческая личность -) И КапЛей за сотый пост - респект - успел! |
|||
103
Serg_1960
06.03.09
✎
10:11
|
Круто Вы с базой, однако... Успехов Вам :)
|
|||
104
fisher
06.03.09
✎
10:44
|
(101) Ну, вот...
Нет, чтобы пригласить специалиста... :))) ЗЫ. Спасибо за подробный отчет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |