![]() |
![]() |
![]() |
|
v7: как найти ошибку преобразования в число в таблице документа | ☑ | ||
---|---|---|---|---|
0
vde69
10.01.13
✎
08:56
|
есть база 7.7 SQL, у нее есть табличная часть DT1320
без этой таблицы база нормально выгружается, с таблицей валится и не выгружается. что уже смотрел 1. индекс есть и правильный iddoc+lineno_ 2. визуально таблица нормальная (размер примерно 10 000 записей) 3. дублей нет, запрос возвращает пусто SELECT aaa.* FROM (SELECT a1.IDDOC, a1.lineno_, SUM(1) AS cou FROM DT1320 AS a1 GROUP BY a1.IDDOC, a1.lineno_) aaa WHERE (cou <> 1) 4. все значения lineno лежа в дипазоне 1...999 куды дальше копать? |
|||
1
Ёпрст
гуру
10.01.13
✎
08:59
|
ну, либо есть задвоенные iddoc (чего не видит твой запрос)
либо есть записи с iddoc, которых нема в 1sjourn |
|||
2
vde69
10.01.13
✎
09:02
|
(1) в журнале все есть, запрос ничего не возвращает
SELECT a1.* FROM DT1320 a1 LEFT OUTER JOIN _1SJOURN a2 ON a1.IDDOC = a2.IDDOC WHERE (a2.IDDOC IS NULL) |
|||
3
vde69
10.01.13
✎
09:03
|
(1) по поводу "не видит дубля", не понял, ведь индекс клатерный по нему с уникальностью...
|
|||
4
КонецЦикла
10.01.13
✎
09:03
|
удали все индексы, в т.ч. ПК
потом выполни поиск дублей и подозрительных записей создай индексы |
|||
5
mikecool
10.01.13
✎
09:04
|
null на неправильном месте?
|
|||
6
Ёпрст
гуру
10.01.13
✎
09:05
|
а так ?
SELECT IDDOC FROM DT1320 GROUP BY IDDOC having count(*)>1 |
|||
7
Ёпрст
гуру
10.01.13
✎
09:07
|
тьфу блин, ты же dt смотришь..
|
|||
8
vde69
10.01.13
✎
09:12
|
(4) ничего подозрительного,
выполняю 3 запроса, все пустые -------------------------------------- SELECT *, LINENO_ AS Expr1 FROM DT1320 WHERE (NOT (LINENO_ > 0 AND LINENO_ < 999)) -------------------------------------- SELECT a1.* FROM DT1320 a1 LEFT OUTER JOIN _1SJOURN a2 ON a1.IDDOC = a2.IDDOC WHERE (a2.IDDOC IS NULL) -------------------------------------- SELECT aaa.* FROM (SELECT a1.IDDOC, a1.lineno_, SUM(1) AS cou FROM DT1320 AS a1 GROUP BY a1.IDDOC, a1.lineno_) aaa WHERE (cou <> 1) -------------------------------------- |
|||
9
vde69
10.01.13
✎
09:13
|
(6)
SELECT IDDOC, LINENO_ FROM DT1320 GROUP BY IDDOC, LINENO_ HAVING (COUNT(*) > 1) пусто.... |
|||
10
Ёпрст
гуру
10.01.13
✎
09:14
|
Это, размер базы то какой ?
И есть уверенность, что она в dat без всяких приблуд ромикса выгрузится ? |
|||
11
vde69
10.01.13
✎
09:16
|
(5)
пусто SELECT *, LINENO_ AS Expr1 FROM DT1320 WHERE (LINENO_ IS NULL) OR (LINENO_ IS NULL) |
|||
12
mikecool
10.01.13
✎
09:17
|
(11) я имел ввиду не только номер строки, но и везде, где по структуре запрещено незаполненное значение
|
|||
13
Ёпрст
гуру
10.01.13
✎
09:17
|
(11) ага, хорошее условие
:) |
|||
14
vde69
10.01.13
✎
09:17
|
(10) легко, скулевский файл чуть больше гига, кроме того без этой таблички (а она маленькая) все выгружается и работает
|
|||
15
dk
10.01.13
✎
09:17
|
а ТиИ запустить в режиме без исправлений?
|
|||
16
Ёпрст
гуру
10.01.13
✎
09:18
|
(14) общие реквизиты дока, с типом строка неогр длины, последние хоть в дереве метаданных ?
|
|||
17
Ёпрст
гуру
10.01.13
✎
09:19
|
+16 если прибить записи в 1scrdoc, тоже болт ?
|
|||
18
vde69
10.01.13
✎
09:25
|
(12) пусто
SELECT * FROM DT1320 WHERE (IDDOC IS NULL) OR (LINENO_ IS NULL) OR (SP1337 IS NULL) OR (SP1338 IS NULL) OR (SP1339 IS NULL) OR (SP1340 IS NULL) OR (SP1343 IS NULL) OR (TSP1343 IS NULL) OR (SP1344 IS NULL) OR (SP1345 IS NULL) OR (TSP1345 IS NULL) OR (SP1346 IS NULL) OR (SP1346 IS NULL) OR (SP1348 IS NULL) OR (SP1347 IS NULL) OR (SP1349 IS NULL) (17) давно прибиты (15) без исправления видит ошибки но не относящиеся к этой таблице после выгрузки в файловую делал ТИИ - все нормально |
|||
19
mikecool
10.01.13
✎
09:28
|
(18) некорректные символы в полях?
|
|||
20
Ёпрст
гуру
10.01.13
✎
09:28
|
(18) словарик хоть соответствует этому мд ?
|
|||
21
vde69
10.01.13
✎
09:29
|
(19) визуально - вроде нет (хотя конечно глазами не пробежишь нормально), а как проверить?
|
|||
22
Ёпрст
гуру
10.01.13
✎
09:30
|
а на 16 ?
|
|||
23
Ёпрст
гуру
10.01.13
✎
09:32
|
можешь еще и проапдейтить последовательно все реквизиты таб части, занося туда пустойИД
|
|||
24
Ёпрст
гуру
10.01.13
✎
09:32
|
+23 если это ссылочный тип
|
|||
25
vde69
10.01.13
✎
09:33
|
(20) как получена текущая база
1. выгрузил в файл (без таблицы) 2. загрузил в файловую, сделал ТИИ 3. созранил в выгрузку 4. очистил скуль базу 5. загрузил в нее файловую 6. экспортом из копии базы перелил табличку должно все соответсвтовать... экспорт не ругался, по этому индексы и дубли нолжны быть в норме.... я склоняюсь к кривому символу где-то, только как найти? |
|||
26
dk
10.01.13
✎
09:34
|
прибей все табличные реквизиты по одному - найдешь проблемную колонку
|
|||
27
dk
10.01.13
✎
09:36
|
либо не найдешь, тогда дело не в ней )
|
|||
28
vde69
10.01.13
✎
09:36
|
(16) это табличная часть, ты уверен что там это общие реквизиты?
|
|||
29
Ёпрст
гуру
10.01.13
✎
09:43
|
(25) ну дык, проверь все реквизиты , правильнаяч ли в них ссылка
|
|||
30
1Сергей
10.01.13
✎
09:43
|
удивительно, что главный восстановитель баз спрашивает что-то :)
В качестве бреда: Создать новую табличку и скопировать в неё всё из DT1320. удалить первую. вторую переименовать в первую |
|||
31
Ёпрст
гуру
10.01.13
✎
09:43
|
можешь по-очереди их прибивать (тупо апдейтом и выгружать)
|
|||
32
Ёпрст
гуру
10.01.13
✎
09:45
|
тем более, у тебя в dt есть реквизиты неопределенного типа - в начале, прибей их..
это поди выписка какая-нить ? |
|||
33
Ёпрст
гуру
10.01.13
✎
09:46
|
т.е первым делом прибей SP1343 и SP1345
|
|||
34
vde69
10.01.13
✎
09:48
|
это КассовыйДень из бюджетки...
счас буду исключением колонок искать... |
|||
35
mikecool
10.01.13
✎
10:02
|
(25) "я склоняюсь к кривому символу где-то, только как найти?" я вот даже хз (
|
|||
36
monsterZE
10.01.13
✎
10:07
|
я ищу кривые символы так.. =) тока это не в скл, но мож поможет..
Для м=1 по ДлинаТ Цикл Если КодСимв(Сред(т,м,1))<32 Тогда Сообщить(""+Док.Вид()+" "+СокрЛП(Док.НомерДок)+" / "+т); КонецЕсли; Если (КодСимв(Сред(т,м,1))>122) и (КодСимв(Сред(т,м,1))<192) Тогда Если КодСимв(Сред(т,м,1))<>185 Тогда Сообщить(""+Док.Вид()+" "+СокрЛП(Док.НомерДок)+" / "+т); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
37
vde69
10.01.13
✎
10:13
|
ошибка в одной из числовых колонках
СуммаДО, ВалСуммаДО, СуммаКО, ВалСуммаКО. добавление реквизита через конфигуратор не проходит... |
|||
38
vde69
10.01.13
✎
10:27
|
нашел кривую строку запросом
SELECT * FROM DT1320 WHERE (SP1347 <> 0) OR (SP1349 <> 0) |
|||
39
Ёпрст
гуру
10.01.13
✎
10:32
|
и че там было ?
|
|||
40
mikecool
10.01.13
✎
10:34
|
а у меня как то не задавался заголовок колонки ТЧ на форме
ругался, что он неправильный если прописывал реквизиту такой синоним - то добавлялся заголовок, но при попытке исправить - снова ругался ) |
|||
41
КонецЦикла
10.01.13
✎
11:05
|
(39) +1 :)
|
|||
42
mikecool
10.01.13
✎
11:07
|
я провидец!!!! )))
(41) +1 |
|||
43
КонецЦикла
10.01.13
✎
11:11
|
(42) Ну обо как бы логично :)
Если нет дублей, то либо null... а что там еще может быть интересно? |
|||
44
vde69
10.01.13
✎
11:13
|
(41) (39)
одна строка с мусором в 3х колонках, при этом ключ был нормальный |
|||
45
Ёпрст
гуру
10.01.13
✎
11:15
|
мусор то как выглядел и в каких колонках ?
|
|||
46
mikecool
10.01.13
✎
11:15
|
(45) теперь клещами бум вытягивать правду )
|
|||
47
vde69
10.01.13
✎
11:22
|
кракозябры в числовых колонках и один уид сдвинут в поле
|
|||
48
КонецЦикла
10.01.13
✎
11:23
|
Представляю сколько дерьма там в НЕчисловых колонках :)
|
|||
49
vde69
10.01.13
✎
11:25
|
наверно есть :) хотя ссылочную целостность - проходит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |