Имя: Пароль:
1C
1С v8
Битые ссылки после ТИИ
0 slafor
 
21.08.22
11:54
БП. У клиента после проведения ТИИ появились "битые" ссылки на некоторые позиции номенклатуры. Могло такое быть, что раньше там была номенклатура, а потом она пропала? Он уверяет, что до ТИИ "битых" ссылок не было.
1 Winnie Buh
 
21.08.22
11:56
ТИИ обычно не просто так запускают, а при появлении каких-то проблем
2 shuhard
 
21.08.22
12:06
(0) с какими ключами ТиИ запускалась ?
3 alarm2020
 
21.08.22
12:52
(0) Могло такое быть, что раньше битые ссылки были не видны
4 Фрэнки
 
21.08.22
13:10
действительно, в ключах ТИИ можно так установить

При частичной потере данных объектов: удалять объект.

Теперь уже не докажешь клиенту, что он сдуру мог запустить с таким ключом и конечно не сделал архива базы перед ТИИ.
5 slafor
 
21.08.22
13:25
(4) А если архивная копия все же делалась - реально ли восстановить удаленные объекты?
6 Naumov
 
21.08.22
13:41
(5) реально. выгрузка/загрузка данных в формате XML из поставки Конвертации данных 2.0 перенесет объект полностью с той же ссылкой
7 Serg_1960
 
22.08.22
08:28
(4) "Теперь уже не докажешь клиенту..." - а если заглянуть в журнал действий пользователя, то можно увидеть много полезной информации. Например, непосредственного удаления объектов без пометки на удаление и контроля ссылочной целостности. Даже простая информация когда пользователи последний раз редактировали битую ссылку - полезна.
8 Фрэнки
 
22.08.22
08:30
(7) и откуда уверенность, что этот журнал у клиента включен?

подробности ТИИ не пишутся в ЖР
9 Kassern
 
22.08.22
09:21
(5) Битая ссылка, это просто объект, от которого у вас остался лишь гуид. Берете базу, где этот объект заполнен, выгружаете данные, а потом загружаете с установкой этого гуида. ВыгрузкаЗагрузкаДанных, как раз по этому принципу и работает.
10 Dmitrii
 
гуру
22.08.22
10:22
(0) >> Он уверяет, что до ТИИ "битых" ссылок не было.

Все врут.
В первую очередь проверить на копии. Убедиться, что битых ссылок не было.

>> Могло такое быть, что раньше там была номенклатура, а потом она пропала?

Могло. Например, См.(4).
Но более вероятно (7). "Например, непосредственного удаления объектов без пометки на удаление и контроля ссылочной целостности."
Скорее всего сделали каким-то образом непосредственное удаление объектов без контроля ссылочной целостности, а уже потом попытались запустить ТИИ.
Ещё один пример появления битых ссылок - кривой обмен данными или какой-либо сбой при обмене данными. В таком случаи концы следует искать в базе(ах), с которой делается обмен.

Если причина не в обмене, то единственный способ восстановления (если не считать ручной) - выгрузка/загрузка данных xml типовой универсальной обработкой из копии базы, где эти данные ещё есть.
Альтернатива - запускать ТИИ с ключом "Проверка ссылочной целостности ИБ" и При наличии ссылок на несуществующие объекты "Создавать объекты". Тогда будут созданы новые объекты, которые потом придётся заполнить вручную. Вариант может подойти, если таких объектов не много и есть понимание что это за объекты и как (чем) их заполнять.

В журнале регистрации (ЖР), если он есть за тот период, когда убитые объекты ещё были в базе и с ними что-либо делали (создавали или изменяли), можно увидеть представление битых ссылок. В записях ЖР в поле Данные будет "Объект не найден" или УИД в виде 36-тизначной абракадабры (точно не помню), а в поле "Представление данных" будет текстовое представление данных (например, для элемента справочника Номенклатура его наименование "Клизма для программиста").
11 nodrama
 
22.08.22
10:48
(0) что бы не гадать. нужно взять копию до ТИИ и посмотреть. возможно клиент еще и врет ;) что частенько бывает.. либо просто не помнит и фантазирует
12 nodrama
 
22.08.22
11:18
Сотни раз было.. что ты что то делаешь.. а потом "заказчик" говорит.. ой а вот тут стало вот так.. или ой а тут цифры стали не правильные.. ой или еще что-то.. типо вы виноваты, чините...
Берешь копию показываешь что так и было до вашей работы.. а они такие с невинными глазами... да ?? ой а мы и не заметили... типо такого...
13 Dmitrii
 
гуру
22.08.22
11:39
(12) Поэтому первое что должен сделать любой специалист (неважно - программист или консультант), подойдя к базе заказчика, - копия. Даже до того, как просто открыть базу данных.
Все остальные действия строго потом.
И ещё желательно делать копию(и) перед каждой манипуляцией с данными в продуктиве. И лучше, чтобы в продуктиве заказчик делал всё сам.
14 AAA
 
22.08.22
12:02
Слабо верится, что ТИИ привело к битым ссылкам. Эти ссылки уже были, просто никто не обращал внимания. Если нет актуальной копии (хотя за это надо больно бить). возьмите самую последнюю и почти наверняка в ней будет какая то часть обсуждаемых битых ссылок
Вот откуда они берутся. Вероятнее всего, после пользования какими то обработками, где есть непосредственное удаление
15 Naumov
 
23.08.22
16:22
(10) Врут все, но сам тут наткнулся что если в ТИИ частично утраченные объекты удаляются, то могут появиться "битые ссылки".
Такими частично утраченными объектами в частности ТИИ признает элементы справочника, для которых должны указываться владельцы, но не указаны. и ТИИ без разницы, что объект присутствует в реально существующих объектах
16 Naumov
 
23.08.22
16:24
+(15) И такая ситуация может быть корректной с точки зрения данных. В КА, например, справочник "упаковки и единицы" может не иметь заполненного владельца. Так выглядят общие единицы измерения. Владелец заполняется только для индивидуальных. Вот их мне ТИИ и потерло
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший