Версия для печати темы (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-лет с конфискацией имущества ). т.е. на точках была только информация об остатках (причем об остатках всех точек) и текущих ценах на товар и вели они только продажи.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua