Вход | Регистрация


1С:Предприятие ::

Метки: 

Вылетает 1С

Я
   Nikz
 
09.03.04 - 17:16
У меня возникла какая то бяка. Если кто сталкивался пожалуйста помогите советом.
Создан справочник, у него 15 реквизитов. В форме списка нарисована кнопка "удалить", а к ней процедура
Спр.НайтиЭлемент(ТекущийЭлемент);
Спр.Удалить();
Все хорошо, процедура работает идеально, когда удаляем один элемент из справочника. Но когда таким образом нужно удалить порядка 10 элементов одновременно, 1С вылетает с сообщением "Программа выполнила недопустимую операцию и будет закрыта". Начинается самое интересное. При попытке вновь запустить базу, что вполне логично, возникает предложение ее переиндексировать. Отвечаем Да. 1С начинает переиндексацию таблиц, но как только доходит до переиндексации этого справочника опять вылетает "Программа выполнила недопустимую операцию и будет закрыта". Бяка наблюдалась на всех доступных мне операционках - 98,Me,2000,XP.
К слову удаление нескольких элементов справочника реализовано следующим образом:
Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0);
Пока Спр.ПолучитьЭлемент()=1 Цикл
Спр.Удалить();
КонецЦикла;
Вот. Проблема в том, что если в выборку попадает более 10 элементов то возникает вышеописаная бяка.
Если кто нибудь знает, как можно это вылечить PLEASE HELP, а то я потихоньку в депресняк входить начинаю.
 
  Рекламное место пустует
   shura
 
1 - 09.03.04 - 17:21
Попробуй Спр.Удалить(0) а потом непосредственное удаление средствами 1С. Может где ссылки есть на эти элементы?
   shura
 
2 - 09.03.04 - 17:23
Еще попробуй сделать в конфигураторе "Выгрузить данные", потом на чистом каталоге "Загрузить данные". Может дбф покалечился когда?
   SnarkHunter
 
3 - 09.03.04 - 17:24
(0)Как насчет ссылочной целостности? Известно сие словосочетание?
   Nikz
 
4 - 09.03.04 - 17:32
Спасибо за совет, но такое решение "Удалить(0)" не подходит. Дело в том что необходимо оперативно добавлять и удалять достаточно большое количество элементов, и пометка на удаление не прокатывает, хотя идея такая уже приходила.
Выгрузка и загрузка то же не помогает. Там я вообще долго смеялся что происходит. Создаю чистую базу, и объединяю ее с проблемной. Соответственно чистая база совершенно пустая. Потом в конфигураторе "Администрирование/Тестирование и исправление БД/Реиндексация" доходит до проблемного справочника и вылетает с теми же симптомами.
А я в это время тихо вешаюсь.
   romix
 
5 - 09.03.04 - 17:32
В Администраторе 1С надо запустить Тестирование и Исправление ИБ.

После удаления каждого элемента имхо надо опять начинать выборку:

ок=1;
Пока ок=1 цикл
Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0);
Если Спр.ПолучитьЭлемент()=1 Тогда
  Спр.Удалить();
  ок=1;
Иначе
  ок=0;
КонецЕсли;
КонецЦикла;
   SnarkHunter
 
6 - 09.03.04 - 17:35
(4)И все-таки... Элементы этого справочника используются в других объектах?
   Nikz
 
7 - 09.03.04 - 17:36
Точно нет.
   SnarkHunter
 
8 - 09.03.04 - 17:39
(5)Можно и без ок...

Пока Спр.ВыбратьЭлементыПоРеквизиту("Пометка",1,1,0)=1 цикл 
 Спр.ПолучитьЭлемент();
 Спр.Удалить(); 
КонецЦикла;
   Nikz
 
9 - 09.03.04 - 17:42
Сейчас попробую...
   skunk
 
10 - 09.03.04 - 17:42
Спр.ПолучитьЭлемент();  - ???
 
 
   SnarkHunter
 
11 - 09.03.04 - 17:47
ЖКК
   romix
 
12 - 09.03.04 - 17:48
(8) Да, так лучше.
   skunk
 
13 - 09.03.04 - 17:50
(11)сорри... все понял... сразу не вкурил...
   Nikz
 
14 - 09.03.04 - 17:59
Он мне сейчас новый прикол выдал 
я скопировал MD в чистый каталог. Вошел через конфигуратор. Оттуда запустил 1С:Предприятие. Только начала конфа подниматься как вылетает окно
"невосстановимая ошибка базы данных
Код: -10
Ошибка открытия словаря базы данных"
Может это из-за того что проблемный справочник является подчиненным 3 уровня (т.е. у него есть владелец у которого тоже есть владелец).
   skunk
 
15 - 09.03.04 - 18:01
есть два решения одно скопируй от куда коил md файл dd
   Nikz
 
16 - 09.03.04 - 18:04
Спасибо, скопировал DD база вроде поднялась. Надо будет пропробовать то что писал SnarkHunter.
   SnarkHunter
 
17 - 09.03.04 - 18:05
(14)Сначала "загрузи как изменный" свой мд-шник... Тогда словарь создастся...
   Nikz
 
18 - 09.03.04 - 18:06
Блин, при переиндексации опять вылетает...
   skunk
 
19 - 09.03.04 - 18:19
18 способ два сказал (17)
способ три в конфигураторе в любом модуле поставь пробел а потом удали... запусти 1с прям из конфигуратора
   Nikz
 
20 - 09.03.04 - 18:48
Вобщем проблема следующая:
Имеем справочник 3 уровня подчиненности.
При переиндексации 1С вылетает.
Вылетает так, что впоследствии поднять конфу можно только копированием MD и DD в чистый каталог. Но при этом остается проблема того, что конфа имела внутри себя информацию (порядка 200 метров). Может есть у кого какие идеи как эту гадость исправить, потому что (как показали последние испытания)дело даже не в убитых ДБФ, так как реиндексация не проходит даже в чистой базе.
PLEASE HELP !!!!!!!!!!!
   327
21 - 09.03.04 - 19:32
Собери все удаляемые элементы в ТЗ, затем удаляй... Так будет корректнее

Если база дбф-ная, у тя битая ДВФ, 
1С в таком режиме колет винду, у ней прокалывается кэш.. Это особенность CodeBase

Код ошибки в студию...
   Леонид
22 - 10.03.04 - 09:40
Есть такая дос-утилита dbview Несмотря на название
это редактор ДБФ файлов. Запускаешь с параметром
"имя файла", она ругается "поврежден заголовок, восстановить?" Гришь "да" и выходишь.
Попробуй, вдруг поможет. Я этой прогой пользуюсь еще
с 6-ой 1эски.
   Леонид
23 - 10.03.04 - 09:41
(22) Ну и ЦДХ файлы е-сно грохнуть сначала, ручками.
   Nikz
 
24 - 10.03.04 - 13:17
А что может убить ДБФ если база чистая, запускается из каталога в котором только MD и DD.
   skunk
 
25 - 10.03.04 - 13:23
тебе их надо сперва создать... см 17 или 19
   Nikz
 
26 - 10.03.04 - 13:35
Копирую MD и DD в чистый каталог. Захожу через конфигуратор и ставлю пробел в глобальном модуле. Сохраняю изменения. ДБФ создались. Запускаю конфу - поднимается. Начинаю переиндексацию из конфигуратора - доходит до проблемного справочника и вылетает.
   romix
 
27 - 10.03.04 - 18:55
(26) Тестирование и исправление запускал?
   skunk
 
28 - 10.03.04 - 19:03
(27)Сохраняю изменения. ДБФ создались. - о чем нить говорит
   romix
 
29 - 10.03.04 - 19:19
(28) Да кто их знает, насколько он ЧИСТЫЙ. Скорее всего что ему надо запустить Конфигуратор - Администрирование - Тестирование и исправление, и после этого уже говорить, помогает это или нет, и тогда уже DBF сносить.
   romix
 
30 - 10.03.04 - 19:21
+29 ес-но все это делать в копии базы, а не в рабочей базе 1С.
   skunk
 
31 - 10.03.04 - 19:26
внимательно (26) читай...
   romix
 
32 - 10.03.04 - 19:42
(31) Мы понимаем так, а юзеры под "чистым" каталогом могут понять совсем другое.
   skunk
 
33 - 10.03.04 - 19:48
(32)ну тогда внимательно всю ветку читай... особено (14)
 
  Рекламное место пустует
   GrayT
 
34 - 10.03.04 - 21:58
for Nikz
Дай МД-шник поэксперементировать
grayt<DOG>front.ru
Что за справочник? Может в нем реквизит какой как-нить "криво" обозван?



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует