Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Удаление битых ссылок на удаленный объект (http://forums.kuban.ru/f1040/udalenie_bityh_ssylok_na_udalennyj_ob-ekt-2749817.html)

Stella12 22.06.2012 10:51

Удаление битых ссылок на удаленный объект
 
Ситуация такая. Был удален документ, я так подозреваю, некорректно. В базе остались на него ссылки типа "объект не найден ...".
Нужно собственно получить список объектов, содержащих эту ссылку и очистить поле, которое ссылается на эту ссылку. Либо же удалить объекты (смотреть буду по ситуации).
Возможно ли это сделать без восстановления удаленного объекта? В 7.7 это можно было сделать SQL запросом. В 8.2 - не знаю. У меня на руках только идентификатор ссылки. Ну и собственно ИБ.

Uho 22.06.2012 11:11

1. Новый ДокументСсылка.<Имя документа>(<УникальныйИдентификатор>)

2. НайтиПоСсылкам(<СписокСсылок>)

roma n 22.06.2012 11:33

0-Stella12 > в сторону: а точно ссылка битая? Может RLS представление зарубает?

Stella12 22.06.2012 12:30

Главбух утверждает, что ссылка на приходный документ, который она удаляла, причем по ее словам через удаление помеченных объектов. Они создали новые приходники, но в ОСВ висит ссылка на старые которые вроде как удалены. При записи какого-то там из документов повисла 1с, сеанс зарубили. Вроде как-то так.
А как проверить то, что написано в (2)?

Uho 22.06.2012 12:34

3-Stella12 > зайти под полными правами

Stella12 22.06.2012 21:32

Помогло банальное штатное тестирование ИБ. Решила поглядеть, на что ссылается удаленный объект - база не выругалась, запускаю предприятие - ссылки ушли. :)

GreenDragon 23.06.2012 18:46

ИМХО. Ссылка появилась так: Когда работали бухи, моргнул свет/сглючил роутер/сетевые пакеты были бухими. База косякнулась. Документ сказал: "Чао!", оставив после себя тока идентификатор.

Сегодня лечил следующую проблему:
База 8.2 в один прекрасный день с гига увеличилась до 2 с копейками. При попытках тестить или выгружать её - вываливалась с Runtime Error. Помогла следующая процедура:
1. chdbfl (база резко уменьшилась до 700 с копейками метров. Было восстановлено почти 30к записей в одной таблице, и 4к в другой)
2. Тестирование и исправление с удалением пустых ссылок.
В итоге сальдо в норме. Обороты за полугодие на незначительную сумму не сходится. Но это ужо проблемс главбуха.
Причём, база была больше гига уже месяца 3 как. Т.е. битые ссылки росли, как снежный ком. Выяснил, что свет у них моргает периодически.
В итоге решили ставить сервак (скорее всего Foundation), бесперебойник, нормально настраивать архивирование и пускать юзверей через терминал.

P.S. Пригласили туда, так как штатная программерша возилась с этой канителью 3 дня, и уже не знала - что делать.

Billi 23.06.2012 19:17

6-GreenDragon >А не проще ли было из ночного бэкапа поднять?

Billi 23.06.2012 19:19

+(7)кстати, есть мнение, что восьмёрка в терминале, это моветон (это же не семёрка, там тонкий клиент имеется :D )

GreenDragon 23.06.2012 19:38

(7) А не делают они этих самых "ночных" бэкапов ) Тем более, что косяк появился давно, но окончательно он добил базу только несколько дней назад.
(8) Мне фиолетово - что моветон, а что мэйнстрим.
Что мне надо, чтобы поднять бухгалтерию на тонком клиенте:
1. Вешать всё это на скуль (деньги на сукль плюс 42 или 72 т.р. на покупку сервера 1С)
либо
2. Управляемые формы (не вариоз, ибо бух ред. 2.0, а не 3.0)

Или я что-то путаю?

Stella12 25.06.2012 08:27

Ну конкретно в моем случае загрузка/выгрузка не помогла. А вот после тестирования ИБ документ ушел. Причем даже исправления не потребовалось.
Не делать бэкапов это жесть... но знакомо :)

Morrison 27.06.2012 19:12

2(5) На будущее. Получаешь запросом битую ссылку из объекта, который на нее ссылается, кладешь во временную таблицу, в следующем запросе пакета используешь оператор "В" ко всем объектам, которые могли ссылаться на убитый объект.

Uho 28.06.2012 09:17

[quote=Моррисон;25714353] в следующем запросе пакета используешь оператор "В" ко всем объектам, которые могли ссылаться на убитый объект. [/quote]чем это лучше, чем (1)?

Morrison 28.06.2012 20:34

2(1) Извини, не обратил внимания.

Morrison 28.06.2012 20:35

+(13) Точнее (12) :)


Текущее время: 00:12. Часовой пояс GMT +3.