|
Почему не находятся битые ссылки через ТИИ | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
18.11.14
✎
08:05
|
Добрый день. Делаю ТИИ базы, в которой абсолютно точно есть битые ссылки, но ТИИ говорит, что все ок. База файловая. Почему ТИИ не находит битые ссылки?
|
|||
1
Heckfy
18.11.14
✎
08:17
|
chdbfl.exe
Замути свою обработку (НайтиПоСсылкам(Массив)) А откуда такая уверенность, что битые ссылки есть? |
|||
2
Aleksey1989
18.11.14
✎
08:19
|
(1) Захожу в регистр "Права ролей", например, а там в колонке "Объект метаданных" - "Объект не найден".
|
|||
3
Heckfy
18.11.14
✎
08:21
|
Дык может у тебя такой элемент (Объект не найден) в справочнике есть.
|
|||
4
Aleksey1989
18.11.14
✎
08:29
|
(3) Нет, его там нет.
|
|||
5
Aleksey1989
18.11.14
✎
08:30
|
Подскажите, можно ли как-нибудь получить список записей в том же регистре, где то или иное измерение регистра содержит битые ссылки?
|
|||
6
User_Agronom
18.11.14
✎
08:31
|
(5) попробуй (1)chdbfl.exe
|
|||
7
Aleksey1989
18.11.14
✎
08:40
|
chdbfl.exe ошибок не находит.
|
|||
8
Галахад
гуру
18.11.14
✎
08:42
|
(5) Попробуй запросом.
|
|||
9
vde69
18.11.14
✎
08:43
|
(4) может он есть а у тебя просто прав маловато?
|
|||
10
Aleksey1989
18.11.14
✎
08:46
|
(8) Пробовал, не мог понять, что писать в условии. Нашел тему http://kb.mista.ru/article.php?id=21, там есть следующий код для определения битая ссылка или нет:
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда //битая ссылка КонецЕсли; (9) Права полные. |
|||
11
Ник второй
18.11.14
✎
08:47
|
(10) Как ты определил, что права у тебя полные?
Если ТИИ не нашла битые ссылки, то их нет. Ищи проблему в другом |
|||
12
Галахад
гуру
18.11.14
✎
08:48
|
(10) Типа такого:
ВЫБРАТЬ Валюты.Ссылка ИЗ Справочник.Валюты КАК Валюты ГДЕ Валюты.Код ЕСТЬ NULL |
|||
13
Шурик71
18.11.14
✎
08:53
|
(10)
выбрать ИзмерениеГдеБитыеСсылки из РегистрСведений.ТотРегистр КАК рег левое соединение справочник.ВКоторомБитаяСсылка как спр по рег.ИзмерениеГдеБитыеСсылки = спр.ссылка Где спр.ссылка есть NULL |
|||
14
Шурик71
18.11.14
✎
08:53
|
(12) так ничего не выберет
|
|||
15
Ник второй
18.11.14
✎
08:54
|
(14) Выберет
|
|||
16
Ник второй
18.11.14
✎
08:54
|
(13) Не обязательно, достаточно через точку тянуть
|
|||
17
StanleyMarsh
18.11.14
✎
09:00
|
Регистр сведений права ролей нужно обновлять - он содержит важные данные. Посмотри где в конфигурации процедура, которая его обновляет и запусти ее.
|
|||
18
vde69
18.11.14
✎
09:09
|
(15) не выберет.... битой ссылки в справочнике нет... нужно выбирать из регистра или документа...
|
|||
19
Ник второй
18.11.14
✎
09:30
|
(18) А разработчики 1С на партнерском форуме считают что найдется, они не правы? 0_о
|
|||
20
User_Agronom
18.11.14
✎
09:57
|
(18) Похоже на правду. Удалили объект, значит его в базе данных нет.
(19) Ссылку, где почитать можно. |
|||
21
Шурик71
18.11.14
✎
10:09
|
(19) разработчики такого не говорят. Либо ссылку в студию.
код из (12) может что-то выдать только в случае, когда по RLS запретили доступ к реквизиту "код", но оставили доступ к ссылке. Но это не тема вопроса. |
|||
22
Torquader
18.11.14
✎
11:01
|
А объект метаданных как хранится ?
Если мы задаём права на какой-то справочник в целом, то или будет пустая ссылка на этот справочник или строка с его именем в метаданных (Справочник.ВидСправочника). В случае строки, если справочника нет в базе, то будет "объект не найден", но ссылки как таковой вообще не будет. Строки-то, ТИИ не проверяет, так как даже имя несуществующего объекта всё равно будет правильной строкой. |
|||
23
Aleksey1989
18.11.14
✎
13:09
|
(22) В том-то и дело, что в базе реальные битые ссылки, а не наименования строкового типа.
|
|||
24
vde69
18.11.14
✎
13:37
|
(23) что такое "битая ссылка" ?
если упрощенно - это когда например в таблице документа стоит гуид, но в таблице справочника такого гуида нет... |
|||
25
Aleksey1989
18.11.14
✎
13:48
|
(24) И при чем тут определение битой ссылки? :))) Я прекрасно знаю, что это такое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |