|
v7: Битые записи регистра | ☑ | ||
---|---|---|---|---|
0
Bagirius
05.12.13
✎
12:07
|
Есть удаленный документ, по которому остались движения регистра. Понимаю, что нетипичная ситуация, но вот заставил я 1С глючить.
Ситуация такая: 1. Документ помечен на удаление, но движения в регистре остались 2. Принудительно удалил документ из базы, движения где-то остались. (Запросами дает данные, что есть резерв. Регистр.РезервыТоваров) 3. Если запускать тестирование и исправление, то все исправляется, но тестирование продолжается ОЧЕНЬ долго. База на SQL2K, конфигурация самописная. Как можно удалить битые записи в регистре не использую конфигуратор (тестирование и исправление) |
|||
1
mikecool
05.12.13
✎
12:08
|
найти записи по ид документа, удалить
|
|||
2
КонецЦикла
05.12.13
✎
12:09
|
delete from raxxxx where ...
Потом от той точки итоги пересчитать |
|||
3
КонецЦикла
05.12.13
✎
12:09
|
еще в журнале почистить если есть признаки проведенности
|
|||
4
Bagirius
05.12.13
✎
12:10
|
(1) вот как найти, и где найти? :-(. Может есть готовые решения?
|
|||
5
Bagirius
05.12.13
✎
12:11
|
(1) По идее, надо удалить все из движения регистра + из итогов регистра
|
|||
6
ДенисЧ
05.12.13
✎
12:11
|
(4) select iddoc
from ra**** r left join _1sjourn j on r.iddoc = j.iddoc where j.iddoc IS NULL |
|||
7
Bagirius
05.12.13
✎
12:12
|
что-бы база совсем не легла после таких манипуляций
|
|||
8
Bagirius
05.12.13
✎
12:12
|
(6) к сожалению далек я от SQL
|
|||
9
mikecool
05.12.13
✎
12:13
|
(8) тогда делай ТиИ и не парь мозг
|
|||
10
Bagirius
05.12.13
✎
12:13
|
Хотя есть у меня 1с++
может прямым запросам чикнуть все косяки |
|||
11
AeDen
05.12.13
✎
12:14
|
(10) А в (6) что написано?
|
|||
12
AeDen
05.12.13
✎
12:15
|
И, кстати, надо выяснить причину такого поведения базы, иначе рискуешь с каждым документом потом такое получить.
|
|||
13
КонецЦикла
05.12.13
✎
12:23
|
(10) Так у тебя SQL
Не обязательно 1С++, можно это в QA сделать Для начала найти документ типа как в (6) Попробуй на копии если боишься |
|||
14
Bagirius
05.12.13
✎
12:45
|
Какой иддок? если он удален
как его определить? |
|||
15
КонецЦикла
05.12.13
✎
12:48
|
Док помечен на удаление, значит в журнале он есть
select iddoc from _1sjourn where docno = '45454' and ismark = 1 and date_time_iddoc between '20131205' and '20131205Z' Если даст несколько записей - посмотреть и выбрать |
|||
16
Bagirius
05.12.13
✎
12:49
|
Такой вопрос?
Если я: 1. расформирую все резервы 2. зайду в таблицу raxxxx, и удалю от туда все записи (они по идее и есть битые) 3. удалю все записи в rgxxxx По идее все исправится. ЗЫ: Движений по регистру в прошлых периодах не бывает. При открытии периода все резервы переносятся в новый период. Глюк в регистре остатков "РезервыТоваров" |
|||
17
Bagirius
05.12.13
✎
12:49
|
(15) Я принудительно Удалить(1) удалил док, в надежде что поможет :-)
|
|||
18
КонецЦикла
05.12.13
✎
12:52
|
(17)
delete from raxxx where iddoc not in (select iddoc from _1sjourn (nolock)) потом пересчет итогов |
|||
19
МихаилМ
05.12.13
✎
12:54
|
(18)
проще пересчитать итоги при удалении запросом. |
|||
20
КонецЦикла
05.12.13
✎
12:55
|
(19) Да, но... принимая во внимание (8)
|
|||
21
Bagirius
05.12.13
✎
13:08
|
в (18) Сделал, удалилось 390 записей. СПАСИБО!!!
Пересчитать итоги не из конфигуратора, конкретно по 1 регистру можно? |
|||
22
ADirks
05.12.13
✎
13:17
|
(21) есть такая штука - УстановкаТА
http://www.1cpp.ru/forum/YaBB.pl?num=1200398366 |
|||
23
КонецЦикла
05.12.13
✎
13:18
|
(22) да, даже немонопольно можно
|
|||
24
Z1
05.12.13
✎
14:26
|
(0,4) на инфостарте есть моя обработка
"Поиск Ошибок в Регистрах" прогони через обработку базу. |
|||
25
Bagirius
05.12.13
✎
20:14
|
(18) - так и сделал, все ОК!!!
Спасибо |
|||
26
Z1
05.12.13
✎
22:20
|
(0) Проверь не должно быть также строк
select * from _1sjourn where rfxxx = 1 and iddoc not in (select iddoc from raxxx ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |