Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Гигиена базы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Lefer
Есть такие пакостные вещи, как битые ссылки на объекты базы. Какие есть возможности по предотвращению их появления? (есть статья на мисте - необходимо зарегистрироваться для просмотра ссылки - подробно, но как функционально это применять??). Как часто надо проводить проверку на ссылочную целостность и когда вставлять вот эти вот самые проверки?
logist
Цитата(Lefer @ 15.12.10, 12:27) необходимо зарегистрироваться для просмотра ссылки
Есть такие пакостные вещи, как битые ссылки на объекты базы.

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


Работаю я меньше, чем вы, но битые ссылки у клиентов видел. Откуда они у них появились - не могу сказать. Хорошо, а неслучайные битые ссылки за 6 лет Вам встречались?
logist
Цитата(Lefer @ 15.12.10, 13:09) необходимо зарегистрироваться для просмотра ссылки
а неслучайные битые ссылки за 6 лет Вам встречались?

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


То есть их можно избежать установкой прав на отмену удаления? Да, согласен, а если у пользователя все же есть права на интерактивное удаление, к примеру, элемента справочника? Проверять не используется ли этот элемент принудительно? Если да, то как можно быстро проверить использование элемента справочника в документе, допустим?
zetovich
1) есть обработка "Удаление помеченных объектов.epf" (универсальные обработки...на ИТС есть)
2) в ней есть процедура "вКонтроль"
3) а там есть что то типа "НайтиПоСсылкам"
а ваще запретить нужно интерактивное удаление....для таких вещей лучше регистр использовать.
logist
Цитата(Lefer @ 15.12.10, 13:19) необходимо зарегистрироваться для просмотра ссылки
а если у пользователя все же есть права на интерактивное удаление, к примеру, элемента справочника?

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


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


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

Как вы это собираетесь делать?
logist
Цитата(Lefer @ 15.12.10, 14:30) необходимо зарегистрироваться для просмотра ссылки
стоит ли в запросах

Не грузите запросы разной фигней, это не такая большая необходимость.
Lefer
Цитата(Vofka @ 15.12.10, 14:37) необходимо зарегистрироваться для просмотра ссылки
Как вы это собираетесь делать?


Примерно так

"Объект.РеквизитОбъекта ЕСТЬ NULL И Не Объект=&ПустаяСсылкаОбъекта"
World1С
Позвольте вставить свои 5-ть копеек.
Такие ссылки появляются только если есть право непосредственного удаления, других случаев мне не бывает. Система сама контролирует ссылочню целостность.
Batchir
Цитата(World1С @ 15.12.10, 17:33) необходимо зарегистрироваться для просмотра ссылки
Позвольте вставить свои 5-ть копеек.
Такие ссылки появляются только если есть право непосредственного удаления, других случаев мне не бывает. Система сама контролирует ссылочню целостность.

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

Ну не знаю, моего опыта маловато, но я бы реализовал так: пропустил бы документы и движения, а на уровне RLS ограничил бы доступ к объекту, докумет. И всячески постарался бы не допускать "битых ссылок".
logist
Цитата(World1С @ 16.12.10, 12:02) необходимо зарегистрироваться для просмотра ссылки
пропустил бы документы и движения, а на уровне RLS ограничил бы доступ к объекту, докумет.

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

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

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