|
Битые записи в регистре сведений/накопления с пустой ссылкой на регистратор | ☑ | ||
---|---|---|---|---|
0
erdos
21.10.09
✎
20:25
|
Добрый день.
После объединения конфигурации в регистре сведений и в регистре накопления появилось по одной битой записи. Вот их описание: - пустая ссылка на регистратор (регистратора нет, а записи подченены регистратору и удаляются регистратором) - данные пустые - в периодическом регистре сведений - период равен "01.01.1900 0:00:00", - значок записи регистра сведения - серая диаграмма, вместо голубой - в регистре накопления активность равно "Ложь" - значок записи регистра накопления - серый кругляшек, вместо красного кругляшка Попытался провести от Тестировани и исправление ИБ с удаление/востановлением объектов. Выходит сообщение: "Тестирование начато Проверка логической целостности. РегистрСведений.ОстаткиТоплива 01.01.1900 0:00:00: Не определена ссылка Проверка логической целостности. РегистрНакопления.ПутевыеЛисты :0 Не определена ссылка Тестирование закончено" Но битые записи не удалены, и объекты для битых ссылок не созданы. Как решать такую проблему? |
|||
1
ТелепатБот
гуру
21.10.09
✎
20:25
|
||||
2
erdos
21.10.09
✎
20:32
|
Спасибо ТелепатБот. Оперативно работает :)
|
|||
3
Ygich
21.10.09
✎
21:07
|
база самописка? попробуй полное перепроведение. попробуй отменить проведение всех документов регистраторов этого регистра и ТиИ. если остались битые записи то удали их программно. или просто программно удали записи с пустым регистратором.
|
|||
4
Ygich
21.10.09
✎
21:08
|
еще неплохо было бы вычислить причину ошибки. надо проверить модули проведения доков а может быть регистр редактировался программно некорректной обработкой
|
|||
5
erdos
21.10.09
✎
21:32
|
База самописная. Очень простая. битых записей немного всего две.
После ТиИ - битые записи вместо "битых ссылок" теперь имеютт "пустыми ссылки". Воспользовался обработкой из "Книга знаний: Пустые ссылки" Процедура УдалениеБитыхСсылок(ИмяРегистра,ТипРегистра,ТипРегистраЗ) МенеджерРегистра = ТипРегистра[ИмяРегистра]; Запрос = Новый Запрос(" |ВЫБРАТЬ Регистратор |ИЗ "+ТипРегистраЗ+"."+ИмяРегистра+" |ГДЕ Регистратор.Номер ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента"); Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Набор = ТипРегистра[ИмяРегистра].СоздатьНаборЗаписей(); Набор.Отбор.Регистратор.Установить(Выборка.Регистратор); Набор.Записать(); ОбработкаПрерыванияПользователя(); Состояние(""+ТипРегистра+" "+ИмяРегистра); КонецЦикла; КонецПроцедуры Выводит: "{Форма.Форма(35)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Путевые листы) НЗ.Записать(); по причине: Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Путевые листы)" Получается для записей с "пустыми" ссылками нужен другой способ удаления в отличии от записей с "битыми" ссылками. Возникает вопрос: как удалить запись регистра, в которой регистратор - "пустая ссылка"? |
|||
6
Secret
21.10.09
✎
21:52
|
||||
7
erdos
21.10.09
✎
22:21
|
(6) не помогает.
|
|||
8
erdos
21.10.09
✎
22:23
|
Пришел к такому коду:
НЗ = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей(); НЗ.Отбор.Регистратор.Установить(Документы.ПутевыеЛисты.ПустаяСсылка()); НЗ.Записать(ИСТИНА); При выполнении "НЗ.Записать(ИСТИНА)" выдает ошибку "{Форма.Форма(40)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Путевые листы) НЗ.Записать(ИСТИНА); по причине: Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Путевые листы)" |
|||
9
hhhh
21.10.09
✎
22:38
|
(8) ТИИ попробуй
|
|||
10
erdos
21.10.09
✎
22:42
|
Уже пробывал. выбирал режим исправления. С удалением. И с созданием новых объектов.
Каждый раз выводит. "Тестирование начато Проверка логической целостности. РегистрСведений.ОстаткиТоплива 01.01.1900 0:00:00: Не определена ссылка Проверка логической целостности. РегистрНакопления.ПутевыеЛисты :0 Не определена ссылка Тестирование закончено" В регистре остается пустая запись. Поле регистратор - ПУСТАЯ ССЫЛКА. НЗ = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей(); НЗ.Отбор.Регистратор.Установить(Документы.ПутевыеЛисты.ПустаяСсылка()); НЗ.Прочитать(); Сообщить(НЗ.Количество()); выводит "1" Как удалить эту запись? Регистр накопления подчинен регистратору, а регистратор у той записи пустая ссылка. |
|||
11
erdos
21.10.09
✎
22:57
|
Запрос = Новый Запрос(
"ВЫБРАТЬ | Регистр.Регистратор |ИЗ | РегистрНакопления." + ИмяРегистра + " КАК Регистр |ГДЕ | Регистр.Регистратор.Номер ЕСТЬ NULL | |СГРУППИРОВАТЬ ПО | Регистр.Регистратор"); Выборка = Запрос.Выполнить().Выбрать(); Сообщить(Выборка.Регистратор.УникальныйИдентификатор()); Выводит "00000000-0000-0000-0000-000000000000" т.е. Это запись с пустой ссылкой. Как удалить эту запись? |
|||
12
Ygich
21.10.09
✎
23:04
|
(11) удали реестр. заново создай. и перепроведи все.
|
|||
13
erdos
21.10.09
✎
23:16
|
Что такое реестр и как его удалить?
|
|||
14
erdos
21.10.09
✎
23:17
|
В конфигурации удалить регистр?
|
|||
15
Ygich
21.10.09
✎
23:18
|
бр... регистр с неудаляемой записью. потом сохрани ИБ. потом создай его заново со всеми регистраторами. перепроведи документы.
|
|||
16
Ygich
21.10.09
✎
23:18
|
(14) да
|
|||
17
Ygich
21.10.09
✎
23:19
|
это конечно как удаление аппендицита тупым зазубренным топором, но сработает
|
|||
18
erdos
21.10.09
✎
23:23
|
Помогло. Спасибо Ygich!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |