Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) База в состоянии присмерти. Может посоветуете что? (число прочтений - 7809 )
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
База в состоянии присмерти. Может посоветуете что?
18. Марта 2010 :: 14:47
Печать  
Итак БД Бух 77. Уже давно (около года) она не выгружается. Веренее как - она выгружается, но после этого не загружается. Выпадает на ошибке с красным крестом. Т.е. для сохранения данных возможно использование только сохранения (архивирования).
А на 01.02.10 появилась еще одна трабла - перестала работать ОСВ. Вернее ОСВ работает, но странно. Если ставлю галочку - развернутое сальдо - то пропадают обороты. но сальдо разворачивается. И при клике по ячейке с цифрой оборота - то же дает запрашиваемую расшифровку. А если снять галку - развернутое сальдо - то отчет выходит корректно.
Тестирование и исправление не работает - зависает навечно. Вернее так - Тестирование и исправление отрабатывает без ошибок по всем вариантам, за исключением "Проверка логической целостности". Хотя и этот вариант в режиме тестирование выдал инфу - но пройдя по указанным ошибкам я в реалии ( в рабочей программе) их подтвердить не смог.
Сейчас принято решение - сделать новую чистую БД и переносом (универсамом) перенести туда доки за текущий год.

Мож я чего упускаю? Может еще какое решение есть? Уж очень не хочется данные терять... Т.е. обрезать не хочется. БД размером 6 гигоф. ДБФ версия.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #1 - 18. Марта 2010 :: 16:31
Печать  
Выгрузи и попробуй загрузить в sql базу.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #2 - 18. Марта 2010 :: 16:35
Печать  
Цитата:
Тестирование и исправление отрабатывает без ошибок по всем вариантам, за исключением "Проверка логической целостности".

Что точно пишет 1с ?

Какой релиз 1с ? (и одинаковый ли он на всех компьютерах)
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #3 - 22. Марта 2010 :: 11:02
Печать  
Релиз 27.
Вроде как везде одинаковый.

Загрузка не работает (в самом начале моего сабжа). Пробовал и в SQL и в DBF.

П.с. я уже писал ответ но он почему то пропал...
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #4 - 22. Марта 2010 :: 11:37
Печать  
Andrew писал(а) 22. Марта 2010 :: 11:02:
Релиз 27.
Вроде как везде одинаковый.

Загрузка не работает (в самом начале моего сабжа). Пробовал и в SQL и в DBF.

П.с. я уже писал ответ но он почему то пропал...

нет нужно что пишет база при загрузке (   желательно в sql) .
а не при проверке.
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #5 - 22. Марта 2010 :: 11:51
Печать  
Только ПринтСкрин...
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #6 - 22. Марта 2010 :: 12:01
Печать  
Можно попробовать сделать ( сначала сделать копию тек.базы)
1.загрузить конфигурацию саму в себя
2.Удалить все cdx
3.Переидексировать базу
4.Выгрузить и загрузить.

Хотя очень сомнительно что поможет.
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #7 - 22. Марта 2010 :: 12:03
Печать  
Это делалось уже - результата нет....
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #8 - 22. Марта 2010 :: 12:55
Печать  
тогда надо загружать в sql и смотреть что при этом происходит в профайлере.
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #9 - 22. Марта 2010 :: 12:58
Печать  
А это как? Дай ссылочку... где почитать..
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #10 - 22. Марта 2010 :: 12:58
Печать  
А по-моему все очевидно - в справочнике материалов имеется циклическая ссылка.
Вариантов два:
1) В элементе указан родителем сам же элемент;
2) Нарушение структуры подчиненности - когда у элемента с уровнем 1 родитель имеет уровень 2 например.
Проверяется обработкой на языке 1С - прямой перебор и проверка на описанные условия.
Перед открытием выборки указать ПорядокНаименований(1);
  
Наверх
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #11 - 22. Марта 2010 :: 13:04
Печать  
Пробую.
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #12 - 22. Марта 2010 :: 13:15
Печать  
2 Leshik
Не, результата проверка не дала. Сравнивал уровни на >=
Ни одного такого нет.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #13 - 22. Марта 2010 :: 13:16
Печать  
Вышли на
a.kamenets@dionissk.ru
файл таблицы материалов - только запакуй.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #14 - 22. Марта 2010 :: 13:16
Печать  
leshik писал(а) 22. Марта 2010 :: 12:58:
А по-моему все очевидно - в справочнике материалов имеется циклическая ссылка.
Вариантов два:
1) В элементе указан родителем сам же элемент;
2) Нарушение структуры подчиненности - когда у элемента с уровнем 1 родитель имеет уровень 2 например.
Проверяется обработкой на языке 1С - прямой перебор и проверка на описанные условия.
Перед открытием выборки указать ПорядокНаименований(1);

тогда если ты прав то при загрузке в sql должны получить dublikate key
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #15 - 22. Марта 2010 :: 13:18
Печать  
Andrew писал(а) 22. Марта 2010 :: 13:15:
2 Leshik
Не, результата проверка не дала. Сравнивал уровни на >=
Ни одного такого нет.

наверное в обработке ошибся.
если leshik прав то и Уровень() может некоректно работать.
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #16 - 22. Марта 2010 :: 13:33
Печать  
Запустил такую штуку....

//*******************************************
Процедура Сформировать()
     Для СчСправочников = 1 По Метаданные.Справочник() Цикл
           СпрВид      =      Метаданные.Справочник(СчСправочников).Идентификатор;
           
           СпрМат = СоздатьОбъект("Справочник."+СпрВид);
           СпрМат.ПорядокНаименований();
           СпрМат.ВыбратьЭлементы();
           Пока СпрМат.ПолучитьЭлемент() = 1 Цикл
                 Если СпрМат.Уровень() <= СпрМат.Родитель.Уровень() Тогда
                       Сообщить("Элемент с кодом " + СпрМат.Вид()+ " з з "+ СпрМат.Код);
                 КонецЕсли;
           КонецЦикла;
     КонецЦикла;
КонецПроцедуры
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #17 - 22. Марта 2010 :: 13:40
Печать  
ТОже - не дало результата. Печаль
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #18 - 22. Марта 2010 :: 13:41
Печать  
А
Если СпрМат.Родитель.ТекущийЭлемент() = СпрМат.ТекущийЭлемент()
?
  
Наверх
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #19 - 22. Марта 2010 :: 13:44
Печать  
Ща...
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #20 - 22. Марта 2010 :: 13:48
Печать  
Не, то же тишина...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #21 - 22. Марта 2010 :: 13:48
Печать  
И еще рекомендуется
СпрМат.ВыбратьЭлементы(0); //Без учета подчиненности.
  
Наверх
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #22 - 22. Марта 2010 :: 14:01
Печать  
А вот так дал мне уже 2 договора. Что только теперь с ними делать...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #23 - 22. Марта 2010 :: 14:04
Печать  
Ну как что - конечно же исправить программно. Назначить нужного родителя.
  
Наверх
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #24 - 22. Марта 2010 :: 14:48
Печать  
А с родителем там все нормально...
Это этих двух элементов справочника нет...
ПустоеЗначение = 1.
А так как родителей там нет ни у кого то поетому они и получились равны между собой - Пустота = Пустоте...
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #25 - 22. Марта 2010 :: 14:57
Печать  
Вот что там на самом деле:
Справочник Приложения к договорам подчинен договорам.

Вопрос - как оживить этот элемент - договор. Никакие способы перезаписать его не помогают...
  

N_L_O.JPG ( 156 KB | Загрузки )
N_L_O.JPG
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #26 - 22. Марта 2010 :: 15:03
Печать  
Проверил все справочники на ПустоеЗначение -
1 Материал.
2 Договора.

Гут. Уже проблема проявилась. Осталось придумать - как ее решить...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



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


1C++ rocks!

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

Хотя я немного не понимаю (совсем не понимаю) как это так??? - элемент есть, Я его даже открыть могу (вот только изменить не могу ни программно ни руками...) а по утверждению системы его нет???
  
Наверх
 
IP записан
 
Andrew
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 04. Марта 2010
Re: База в состоянии присмерти. Может посоветуете что?
Ответ #29 - 22. Марта 2010 :: 15:25
Печать  
И что еще более интересно - что могло послужить причиной такого нарушения данных???
  
Наверх
 
IP записан
 
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] 
ОтправитьПечать