|
Вылетает 1С | ☑ | ||
|---|---|---|---|---|
|
0
Nikz
09.03.04
✎
17:16
|
У меня возникла какая то бяка. Если кто сталкивался пожалуйста помогите советом.
Создан справочник, у него 15 реквизитов. В форме списка нарисована кнопка "удалить", а к ней процедура Спр.НайтиЭлемент(ТекущийЭлемент); Спр.Удалить(); Все хорошо, процедура работает идеально, когда удаляем один элемент из справочника. Но когда таким образом нужно удалить порядка 10 элементов одновременно, 1С вылетает с сообщением "Программа выполнила недопустимую операцию и будет закрыта". Начинается самое интересное. При попытке вновь запустить базу, что вполне логично, возникает предложение ее переиндексировать. Отвечаем Да. 1С начинает переиндексацию таблиц, но как только доходит до переиндексации этого справочника опять вылетает "Программа выполнила недопустимую операцию и будет закрыта". Бяка наблюдалась на всех доступных мне операционках - 98,Me,2000,XP. К слову удаление нескольких элементов справочника реализовано следующим образом: Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0); Пока Спр.ПолучитьЭлемент()=1 Цикл Спр.Удалить(); КонецЦикла; Вот. Проблема в том, что если в выборку попадает более 10 элементов то возникает вышеописаная бяка. Если кто нибудь знает, как можно это вылечить PLEASE HELP, а то я потихоньку в депресняк входить начинаю. |
|||
|
1
shura
09.03.04
✎
17:21
|
Попробуй Спр.Удалить(0) а потом непосредственное удаление средствами 1С. Может где ссылки есть на эти элементы?
|
|||
|
2
shura
09.03.04
✎
17:23
|
Еще попробуй сделать в конфигураторе "Выгрузить данные", потом на чистом каталоге "Загрузить данные". Может дбф покалечился когда?
|
|||
|
3
SnarkHunter
09.03.04
✎
17:24
|
(0)Как насчет ссылочной целостности? Известно сие словосочетание?
|
|||
|
4
Nikz
09.03.04
✎
17:32
|
Спасибо за совет, но такое решение "Удалить(0)" не подходит. Дело в том что необходимо оперативно добавлять и удалять достаточно большое количество элементов, и пометка на удаление не прокатывает, хотя идея такая уже приходила.
Выгрузка и загрузка то же не помогает. Там я вообще долго смеялся что происходит. Создаю чистую базу, и объединяю ее с проблемной. Соответственно чистая база совершенно пустая. Потом в конфигураторе "Администрирование/Тестирование и исправление БД/Реиндексация" доходит до проблемного справочника и вылетает с теми же симптомами. А я в это время тихо вешаюсь. |
|||
|
5
romix
09.03.04
✎
17:32
|
В Администраторе 1С надо запустить Тестирование и Исправление ИБ.
После удаления каждого элемента имхо надо опять начинать выборку: ок=1; Пока ок=1 цикл Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0); Если Спр.ПолучитьЭлемент()=1 Тогда Спр.Удалить(); ок=1; Иначе ок=0; КонецЕсли; КонецЦикла; |
|||
|
6
SnarkHunter
09.03.04
✎
17:35
|
(4)И все-таки... Элементы этого справочника используются в других объектах?
|
|||
|
7
Nikz
09.03.04
✎
17:36
|
Точно нет.
|
|||
|
8
SnarkHunter
09.03.04
✎
17:39
|
(5)Можно и без ок...
Пока Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0)=1 цикл Спр.ПолучитьЭлемент(); Спр.Удалить(); КонецЦикла; |
|||
|
9
Nikz
09.03.04
✎
17:42
|
Сейчас попробую...
|
|||
|
10
skunk
09.03.04
✎
17:42
|
Спр.ПолучитьЭлемент(); - ???
|
|||
|
11
SnarkHunter
09.03.04
✎
17:47
|
ЖКК
|
|||
|
12
romix
09.03.04
✎
17:48
|
(8) Да, так лучше.
|
|||
|
13
skunk
09.03.04
✎
17:50
|
(11)сорри... все понял... сразу не вкурил...
|
|||
|
14
Nikz
09.03.04
✎
17:59
|
Он мне сейчас новый прикол выдал
я скопировал MD в чистый каталог. Вошел через конфигуратор. Оттуда запустил 1С:Предприятие. Только начала конфа подниматься как вылетает окно "невосстановимая ошибка базы данных Код: -10 Ошибка открытия словаря базы данных" Может это из-за того что проблемный справочник является подчиненным 3 уровня (т.е. у него есть владелец у которого тоже есть владелец). |
|||
|
15
skunk
09.03.04
✎
18:01
|
есть два решения одно скопируй от куда коил md файл dd
|
|||
|
16
Nikz
09.03.04
✎
18:04
|
Спасибо, скопировал DD база вроде поднялась. Надо будет пропробовать то что писал SnarkHunter.
|
|||
|
17
SnarkHunter
09.03.04
✎
18:05
|
(14)Сначала "загрузи как изменный" свой мд-шник... Тогда словарь создастся...
|
|||
|
18
Nikz
09.03.04
✎
18:06
|
Блин, при переиндексации опять вылетает...
|
|||
|
19
skunk
09.03.04
✎
18:19
|
18 способ два сказал (17)
способ три в конфигураторе в любом модуле поставь пробел а потом удали... запусти 1с прям из конфигуратора |
|||
|
20
Nikz
09.03.04
✎
18:48
|
Вобщем проблема следующая:
Имеем справочник 3 уровня подчиненности. При переиндексации 1С вылетает. Вылетает так, что впоследствии поднять конфу можно только копированием MD и DD в чистый каталог. Но при этом остается проблема того, что конфа имела внутри себя информацию (порядка 200 метров). Может есть у кого какие идеи как эту гадость исправить, потому что (как показали последние испытания)дело даже не в убитых ДБФ, так как реиндексация не проходит даже в чистой базе. PLEASE HELP !!!!!!!!!!! |
|||
|
21
327
09.03.04
✎
19:32
|
Собери все удаляемые элементы в ТЗ, затем удаляй... Так будет корректнее
Если база дбф-ная, у тя битая ДВФ, 1С в таком режиме колет винду, у ней прокалывается кэш.. Это особенность CodeBase Код ошибки в студию... |
|||
|
22
Леонид
10.03.04
✎
09:40
|
Есть такая дос-утилита dbview Несмотря на название
это редактор ДБФ файлов. Запускаешь с параметром "имя файла", она ругается "поврежден заголовок, восстановить?" Гришь "да" и выходишь. Попробуй, вдруг поможет. Я этой прогой пользуюсь еще с 6-ой 1эски. |
|||
|
23
Леонид
10.03.04
✎
09:41
|
(22) Ну и ЦДХ файлы е-сно грохнуть сначала, ручками.
|
|||
|
24
Nikz
10.03.04
✎
13:17
|
А что может убить ДБФ если база чистая, запускается из каталога в котором только MD и DD.
|
|||
|
25
skunk
10.03.04
✎
13:23
|
тебе их надо сперва создать... см 17 или 19
|
|||
|
26
Nikz
10.03.04
✎
13:35
|
Копирую MD и DD в чистый каталог. Захожу через конфигуратор и ставлю пробел в глобальном модуле. Сохраняю изменения. ДБФ создались. Запускаю конфу - поднимается. Начинаю переиндексацию из конфигуратора - доходит до проблемного справочника и вылетает.
|
|||
|
27
romix
10.03.04
✎
18:55
|
(26) Тестирование и исправление запускал?
|
|||
|
28
skunk
10.03.04
✎
19:03
|
(27)Сохраняю изменения. ДБФ создались. - о чем нить говорит
|
|||
|
29
romix
10.03.04
✎
19:19
|
(28) Да кто их знает, насколько он ЧИСТЫЙ. Скорее всего что ему надо запустить Конфигуратор - Администрирование - Тестирование и исправление, и после этого уже говорить, помогает это или нет, и тогда уже DBF сносить.
|
|||
|
30
romix
10.03.04
✎
19:21
|
+29 ес-но все это делать в копии базы, а не в рабочей базе 1С.
|
|||
|
31
skunk
10.03.04
✎
19:26
|
внимательно (26) читай...
|
|||
|
32
romix
10.03.04
✎
19:42
|
(31) Мы понимаем так, а юзеры под "чистым" каталогом могут понять совсем другое.
|
|||
|
33
skunk
10.03.04
✎
19:48
|
(32)ну тогда внимательно всю ветку читай... особено (14)
|
|||
|
34
GrayT
10.03.04
✎
21:58
|
for Nikz
Дай МД-шник поэксперементировать grayt<DOG>front.ru Что за справочник? Может в нем реквизит какой как-нить "криво" обозван? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |