Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) База в состоянии присмерти. Может посоветуете что? (число прочтений - 7780 )
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #30 - 22. Марта 2010 :: 15:27
Печать  
Запуск базы без переиндексации.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #31 - 22. Марта 2010 :: 16:10
Печать  
Andrew писал(а) 22. Марта 2010 :: 15:22:
Ну.. Вроде по картинке видно - что у выбранного договора с владельцем все Гут. А вот у подчиненных ему - проблемма.
И именно на этот договор программа ссылается при проверке на ПустоеЗначение.

Хотя я немного не понимаю (совсем не понимаю) как это так??? - элемент есть, Я его даже открыть могу (вот только изменить не могу ни программно ни руками...) а по утверждению системы его нет???

А откуда следует что приложение принадлежит именно этому договору ? Ведь иерархия вообще снята.
Т.к всего одно приложение к договору то наверное
можно удалить справочник "Приложения к договорам"
и затем снова создать его заново.


  
Наверх
 
IP записан
 
shmalevoz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 23. Апреля 2009
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #32 - 22. Марта 2010 :: 17:00
Печать  
Навскидку - выборка неуникальных и пустых id из таблицы справочника. Для sql, но средств для работы с dbf должно хватать.
Код
Выбрать все
select row_id, [id] from scXXX
 where scXXX.[id] in
 (
  select sb.[id] from
   (select distinct scXXX.[id] as [id], count(scXXX.id) as cnt from scXXX group by [id])
  as sb
  where sb.cnt > 1
 )
 or
 (scXXX.[id] = '         ')
 -- or (scXXX.parentid = '         ') -- раскомментировать, если есть уровень > 1 в конфигурации : выборка пустого родителя
 -- or (scXXX.parentext = '         ') -- раскомментировать, если есть владелец : выборка пустого владельца
 order by [id]
 


Дальше можно попробовать физически поудалять неуникальные/пустые записи
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #33 - 23. Марта 2010 :: 05:52
Печать  
shmalevoz писал(а) 22. Марта 2010 :: 17:00:
Навскидку - выборка неуникальных и пустых id из таблицы справочника. Для sql, но средств для работы с dbf должно хватать.
Код
Выбрать все
select row_id, [id] from scXXX
 where scXXX.[id] in
 (
  select sb.[id] from
   (select distinct scXXX.[id] as [id], count(scXXX.id) as cnt from scXXX group by [id])
  as sb
  where sb.cnt > 1
 )
 or
 (scXXX.[id] = '         ')
 -- or (scXXX.parentid = '         ') -- раскомментировать, если есть уровень > 1 в конфигурации : выборка пустого родителя
 -- or (scXXX.parentext = '         ') -- раскомментировать, если есть владелец : выборка пустого владельца
 order by [id]
 


Дальше можно попробовать физически поудалять неуникальные/пустые записи


Вот это я совсем не понял...
Я пытаюсь сейчас изучать 1С++ на пока даже не все мануалы нашел. А этот код мне совсем не понятен...


Вот что дала система при проверке после удаления этих битых элементов справочников (вложение)
  

Posle_Udal_Ref.txt ( 4 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #34 - 23. Марта 2010 :: 07:47
Печать  
Сделать из архивов несколько копий базы.
и на основании Posle_Udal_Ref.txt   находить iddoc
и восстанавливать недостающие записи таблиц
из баз с архивными копиями.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #35 - 23. Марта 2010 :: 07:53
Печать  
Andrew писал(а) 22. Марта 2010 :: 15:25:
И что еще более интересно - что могло послужить причиной такого нарушения данных???

Если комп где база просто взять и перезагрузить (зачем не обсуждаем) то вполне можно получить subj.
  
Наверх
 
IP записан
 
shmalevoz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 23. Апреля 2009
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #36 - 23. Марта 2010 :: 10:35
Печать  
При таком количестве ошибок плюс минус элемент большой роли не сыграют. Так быть может физически прибить этот договор ?
Код
Выбрать все
delete from scXXX where scXXX.code='000062' 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать