Версия для печати темы (https://pro1c.org.ua/index.php?s=ddcaf41ffad908c3ca50e5d6f9a9009b&showtopic=2300)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Гигиена базы

Автор: Lefer 15.12.10, 11:27

Есть такие пакостные вещи, как битые ссылки на объекты базы. Какие есть возможности по предотвращению их появления? (есть статья на мисте - http://pro1c.org.ua/redirect.php?http://www.kb.mista.ru/article.php?id=21& - подробно, но как функционально это применять??). Как часто надо проводить проверку на ссылочную целостность и когда вставлять вот эти вот самые проверки?

Автор: logist 15.12.10, 11:59

Цитата(Lefer @ 15.12.10, 12:27) *
Есть такие пакостные вещи, как битые ссылки на объекты базы.

Не понятно какое отношение это имеет к гигиене? Вы так говорите как буд-то это явление повсеместное и с ним надо чуть ли не ежедневно бороться....
За почти 6 лет работы с 1С, я никогда не встречал "случайно (самостоятельно)" битых ссылок.

Автор: Lefer 15.12.10, 12:09

Цитата(logist @ 15.12.10, 12:59) *
Не понятно какое отношение это имеет к гигиене? Вы так говорите как буд-то это явление повсеместное и с ним надо чуть ли не ежедневно бороться....
За почти 6 лет работы с 1С, я никогда не встречал "случайно (самостоятельно)" битых ссылок.


Работаю я меньше, чем вы, но битые ссылки у клиентов видел. Откуда они у них появились - не могу сказать. Хорошо, а неслучайные битые ссылки за 6 лет Вам встречались?

Автор: logist 15.12.10, 12:15

Цитата(Lefer @ 15.12.10, 13:09) *
а неслучайные битые ссылки за 6 лет Вам встречались?

Не случайные да (хотя наверное нельзя сказать что они битые) - но это результат непосредственного удаления, с которым можно бороться на уровне прав.

Автор: Lefer 15.12.10, 12:19

Цитата(logist @ 15.12.10, 13:15) *
Не случайные да (хотя наверное нельзя сказать что они битые) - но это результат непосредственного удаления, с которым можно бороться на уровне прав.


То есть их можно избежать установкой прав на отмену удаления? Да, согласен, а если у пользователя все же есть права на интерактивное удаление, к примеру, элемента справочника? Проверять не используется ли этот элемент принудительно? Если да, то как можно быстро проверить использование элемента справочника в документе, допустим?

Автор: zetovich 15.12.10, 12:51

1) есть обработка "Удаление помеченных объектов.epf" (универсальные обработки...на ИТС есть)
2) в ней есть процедура "вКонтроль"
3) а там есть что то типа "НайтиПоСсылкам"
а ваще запретить нужно интерактивное удаление....для таких вещей лучше регистр использовать.

Автор: logist 15.12.10, 13:14

Цитата(Lefer @ 15.12.10, 13:19) *
а если у пользователя все же есть права на интерактивное удаление, к примеру, элемента справочника?

Надо избегать таких возможностей. У меня везде (даже в полных правах) отключено удаление.

Автор: Lefer 15.12.10, 13:24

Цитата(zetovich @ 15.12.10, 13:51) *
а ваще запретить нужно интерактивное удаление....для таких вещей лучше регистр использовать.


Можно про регистр по подробнее,пожалуйста.

Автор: Lefer 15.12.10, 13:30

Цитата(logist @ 15.12.10, 14:14) *
Надо избегать таких возможностей. У меня везде (даже в полных правах) отключено удаление.


Спасибо за разъяснения с правами. Тогда вот ещё по ссылкам вопрос: стоит ли в запросах (к примеру запрос к остаткам) проверять на пустую/битую ссылку?

Автор: Vofka 15.12.10, 13:37

Цитата
стоит ли в запросах (к примеру запрос к остаткам) проверять на пустую/битую ссылку?

Как вы это собираетесь делать?

Автор: logist 15.12.10, 14:07

Цитата(Lefer @ 15.12.10, 14:30) *
стоит ли в запросах

Не грузите запросы разной фигней, это не такая большая необходимость.

Автор: Lefer 15.12.10, 15:34

Цитата(Vofka @ 15.12.10, 14:37) *
Как вы это собираетесь делать?


Примерно так

"Объект.РеквизитОбъекта ЕСТЬ NULL И Не Объект=&ПустаяСсылкаОбъекта"

Автор: World1С 15.12.10, 16:33

Позвольте вставить свои 5-ть копеек.
Такие ссылки появляются только если есть право непосредственного удаления, других случаев мне не бывает. Система сама контролирует ссылочню целостность.

Автор: Batchir 15.12.10, 22:32

Цитата(World1С @ 15.12.10, 17:33) *
Позвольте вставить свои 5-ть копеек.
Такие ссылки появляются только если есть право непосредственного удаления, других случаев мне не бывает. Система сама контролирует ссылочню целостность.

Опровергну этот факт.Например, есть центральная база и куча периферийных. Требования к системе - в цб должны быть все документы, в перефирийной - физически только свои, чтобы никто ни каким образом не мог просмотреть, распечатать и т.д. (даже пользователи с полными правами), но движения должны присутствовать все.
Вариант решения - в модуле плана обмена фильтровать документы по складской принадлежности, а движения пропускать как есть. В итоге мы осознанно пропускаем все движения и в перефирийных базах в качестве регистратора (и других ссылок) будет "Объект не найден".

Автор: World1С 16.12.10, 11:02

Цитата
Вариант решения - в модуле плана обмена фильтровать документы по складской принадлежности, а движения пропускать как есть.

Ну не знаю, моего опыта маловато, но я бы реализовал так: пропустил бы документы и движения, а на уровне RLS ограничил бы доступ к объекту, докумет. И всячески постарался бы не допускать "битых ссылок".

Автор: logist 16.12.10, 11:10

Цитата(World1С @ 16.12.10, 12:02) *
пропустил бы документы и движения, а на уровне RLS ограничил бы доступ к объекту, докумет.

+1

Автор: zetovich 16.12.10, 11:11

Цитата(Batchir @ 15.12.10, 23:32) *
Опровергну этот факт.Например, есть центральная база и куча периферийных. Требования к системе - в цб должны быть все документы, в перефирийной - физически только свои, чтобы никто ни каким образом не мог просмотреть, распечатать и т.д. (даже пользователи с полными правами), но движения должны присутствовать все.
Вариант решения - в модуле плана обмена фильтровать документы по складской принадлежности, а движения пропускать как есть. В итоге мы осознанно пропускаем все движения и в перефирийных базах в качестве регистратора (и других ссылок) будет "Объект не найден".

есть камни.
1) сегодня документ со складом "Склад1"...он попал в узел1 (все как и предпорлогалось). Девочка исправила на "Склад2"...он улетает в узел2, вродь все хорошо, да не очень.....в узле 1 так он и остался.. (это все относительно центраьлной базы и девачка правит ее же)
2) тот же регистр накопления при отправке смотреть на нужный реквизит Регистратора, как бы и меньше данных будет...

Автор: Batchir 16.12.10, 12:00

Не, ну я просто описал вариант возникновения битых ссылок не только непосредственным удалением.

Хотя у меня были клиенты которые требовали что бы из главного офиса никакие документы на торговые точки не шли, вся информация о суммах не передавалсь ни в коем случае (была большая текучка и вероятность того что база уйдет в зрительный зал, а там информации на N-лет с конфискацией имущества biggrin.gif). т.е. на точках была только информация об остатках (причем об остатках всех точек) и текущих ценах на товар и вели они только продажи.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua