Принудительное удаление документа / справочника / плана видов характеристик / плана счетов / плана видов расчёта / бизнес процесса / задачи без контроля ссылочной целостности



Принудительное удаление документа / справочника / плана видов характеристик / плана счетов / плана видов расчёта / бизнес процесса / задачи без контроля ссылочной целостности. Обработка работает в обычном приложение и в управляемом (УФ).
Эта обработка необходима когда не получается удалить объект из-за того, что на него ссылаются другие объекты.

Это обработка может избавить пользователя от тупиковой ситуации — когда нужно удалить объект, а с помощью стандартной операции «Удаление помеченных объектов» это не получается сделать из-за того, что на удаляемый объект ссылаются другие объекты. Т.к. обработка //infostart.ru/public/150083/ была востребованна и у пользователей была просьба создать такую же под управляемые формы, а так же добавить другие объекты для удаления, то решил создать и выложить эту обработку.

Сразу предупреждаю, что пользоваться обработкой нужно со знанием дела, не зря же в конфигурации сделан контроль ссылок на удаляемый объект. Я думаю, что у кого возникла необходимость скачать эту обработку знают как и для чего ее использовать.

Как бы не было, но всегда желательно делать резервную копию, не забывайте об этом!

23 Comments

  1. Zigor1964

    Удалить объект и наделать дырки в базе ? Это зачем ?

    Обоснование » пользователями востребовано» не прокатывает , так как пользователи , как наркоманы, не отвечают за свои действия, так как не понимают, хотя думают, что понимают.

    Reply ↓
  2. spezc

    (1) ну подозреваю, что обработка все таки не для простых смертных.

    Reply ↓
  3. echo77

    Кому: Программист

    Reply ↓
  4. KillerMann

    (1), Игорь Игоревич, во-первых, дырки не делаются, все происходит иначе — удаляется объект, если на него другие объекты не ссылаются, то никаких нюансов не возникает, если же есть ссылка на удаленный объект, то получается битая ссылка в объекте который ссылается на объект который уже удален — вместо читаемого объекта появляются буквы и цифры, пример: c5055797-6d3f-11e7-9d9a-000c29ab2989 , но и это тоже не является критичным, но есть одно исключение — это когда в конфигурации прописан код в котором идет обращение к этому удаленному объекту.

    Во-вторых, я в описание предупредил: «Сразу предупреждаю, что пользоваться обработкой нужно со знанием дела, не зря же в конфигурации сделан контроль ссылок на удаляемый объект. Я думаю, что у кого возникла необходимость скачать эту обработку знают как и для чего ее использовать». А пользователи если не думают своей головой, то могут наделать таких «дыр» в учетных данных, что они будут похуже чем, если бы они воспользовались обработкой.

    В-третьих, я специально отнёс эту обработку к программистам, т.к. нужно не бездумно использовать её, а с осознанием дела.

    Приведу пример: Ко мне обратился клиент, у него в одной информационной базе находилось две организации, которые нужно было разнести, многие бы начали делать перенос данных, а с учетом того, что не бывает гладкого учета, то этот процесс был бы затяжной, т.к. нужно не только перенести данные, но и потом выравнять учёт. Я же поступил иначе — скопировал ИБ, в одной удалил одну организация с помощью принудительного удаления, а во второй другую, потом сделал тестирование и исправление обоих баз, таким образом я разнес организации по отдельным ИБ.

    Reply ↓
  5. eskor

    (3) мельчают программисты.

    Написать одну строчку кода не могут, обработку качают.

    <Ссылка>.ПолучитьОбъект().Удалить()

    Я так подозреваю, что качают пользователи и бездумно удаляют, то что не надо удалять.

    Reply ↓
  6. KillerMann

    (5) Сергей, а чем Вас это так раздражает? 🙂

    Кроме программистов еще существуют администраторы которые и не знают программного кода 1С. А многим проще скачать, чем открывать конфигуратор, создавать обработку, добавлять реквизит и «написать одну строчку кода». Тем более для УФ не очень удобен выбор объекта при выпадающем списке, когда ссылка составного типа, так что одной строчкой не обойтись 😉

    И Вы не забывайте, что есть много работников франчайзи, которые не всегда знают даже основ программирования, а в арсенале такую обработку нужно иметь.

    Reply ↓
  7. eskor

    (6)

    …а в арсенале такую обработку нужно иметь

    Зачем? И кому?

    За 17 лет работы с 1С я твердо усвоил, что пользователю нельзя давать свободу действий. Мало того, оставлять в базе битые ссылки — это косяк программиста.

    Если мне надо что-то быстро прибить, я первым делом устанавливаю критерии отбора, очищаю ссылки (если надо) и только потом удаляю объекты. Причем никаких ручных безусловных действий, надо страховать и свои же собственные ошибки.

    А уж конечным пользователям такие операции никогда в жизни не доверял и не доверю.

    Reply ↓
  8. KillerMann

    Вы меня конечно удивили насчет 17 лет работы и дальнейших размышлений.

    Если бы Вы не поленились прочитать комментарии и кому она предназначена, то поняли, что она для Администраторов и Программистов, а если они используют данную обработку, то наверняка подходят со знанием дела.

    Так же в комментариях я привел яркий пример как можно использовать данную обработку, я даже не представляю как бы Вы обошлись заменой на пустые ссылки и по каким отборам бы действовали.

    Ну и насчёт битых ссылок — я не хочу сказать, что это хорошо, но назовите мне отрицательные стороны того, когда они имеются и на них нет обращений программного кода? Возьмите несколько баз в которых учётные данные за несколько лет, особенно те в которых происходил перенос(обмен) данных и сделайте «Тестирование и исправление», думаю результаты Вас удивят(это я насчет 17 лет работы и боязни к битым ссылкам).

    Тем более эта обработка была написана по просьбе людей, которые скачивали подобную, но менее универсальную.И это их право как избавляться от объектов которые им не нужны. А то что программист скачал её, а не захотел сам писать обработку, не говорит о том, что его нужно принижать словом «мельчают». Я сам иногда качаю шаблоны печатных форм, чтобы не тратить время, хотя для меня нет сложности создать этот шаблон.

    P.S Насчёт 17 лет не в обиду, просто реально удивило.

    Reply ↓
  9. eskor

    Александр. Давайте начистоту, очень хочется срубить SM-чиков?

    А как иначе назвать выкладывание 1-строчной обработки, за которую любой практикующий программист готов шпалить до посинения?

    В прошлом посте, я четко расписал, что для программиста эта обработка, как дохлому ослу уши.

    Вот кроме шуток, весь код — одна строка. Может конечно плюсуются строки по перебросу с клиента на сервер, и их будет тогда 10 🙂

    Вот только зачем ставит тэг «ДЛЯ ПРОГРАММИСТА» ???

    Reply ↓
  10. KillerMann

    (9) Сергей К., если Вы про $m, то считайте свои, а не чужие. $m мне и так идут с прошлой обработке по удалению объектов и намного больше чем вся сумма ваших $m за скачивание в ваших публикациях. Может Вас это гложет? Еще раз повторюсь — меня попросили добавить функционал, я это сделал и выложил для тех, кому эта обработка необходима. Вам не нужна, проходите мимо, незачем засорять ветку и форум своими домыслами. Если очень хочется пообщаться, то пишите в личку.

    И фраза «Может конечно плюсуются строки по перебросу с клиента на сервер, и их будет тогда 10 » подчеркивает то, что Вы или придуриваетесь, или у Вас не такие уж большие познания в программирование в 1С, т.к. по первому скрину уже видно, что это не так.

    Reply ↓
  11. Zigor1964

    (4) Александр, у вас в Аннотации написано БЕЗ Контроля Ссылочной целостности. Обоснование, что она удалит только битые ссылки не очень убедительна. У большинства пользователей она наоборот, наделает битых ссылок.

    Вы не поверите — 95% пользователей 1С работают с базой практически как с чёрным ящиком.

    В том числе и большинство программистов.

    Было бы лучше — восстанавливать битые ссылки, потому как если они используются в документах, то они там должны быть заполнены.

    Или второй вариант — найти все цепочки взаимосвязей и проанализировать можно ли удалить объект.

    Как то так.

    Reply ↓
  12. Zigor1964

    Сергей, Обработка спорная, но ваш упрёк, что Александр хочет заработать SM-чиков действительно не к месту. Он правильно хочет заработать. Все тут хотят заработать и не только тут. Давайте лучше убедим Александра доработать свою обработку ))

    Reply ↓
  13. Zhilyakovdr

    За такие обработки и высказывания типа «пример: c5055797-6d3f-11e7-9d9a-000c29ab2989 , но и это тоже не является критичным» я бы уволил)))

    Reply ↓
  14. KillerMann

    (12) Игорь Игоревич, эта обработка специфическая, кто ее качает, тот знает как ее применить. Обработок для удаления объектов с контролем ссылочной целостности на Инфостарте хватает и их очень много. Зачем заниматься плагиатом?

    Reply ↓
  15. KillerMann

    (13) Дмитрий Жиляков, я сам являюсь Начальником отдела разработок и когда слышу подобную ерунду, то становится страшно, что есть такие специалисты. Давайте Вы ответите за свои слова и протестируете базы на контроль ссылочной целостности, а потом, когда увидите результат, то уволите штаты программистов.

    И перед тем как разводить ля-ля, задайтесь вопросом как удалить организацию в базе, а потом поведайте нам?!

    Reply ↓
  16. nvv1970

    (13) а я бы нет. Объект легко восстановить в базе. И битые ссылки превращаются… превращаются… превращаются в нормальные. И делать ничего не нужно.

    Вообще-то в многих консолях запросов можно выполнять код по строкам результата: запросом нашел — написал удалить. И все. Одна строка кода без конфигуратора.

    Принудительное программное удаление оправданно, если штатная обработка уже бессильна. А она бессильна в любом продакшене.

    Reply ↓
  17. nvv1970

    (15) если деление на организации нужно — значит база совсем мелкая. Иначе задачи удалением не решаются. Я бы глянул как вы на сотне Гб будете тестирование делать)) месяц операция будет выполняться.

    Проще и эффективнее написать на 1с по метаданным сборный скрипт и выполнить его.

    Reply ↓
  18. Zhilyakovdr

    (15) Удалите таким образом какой нибудь полуфабрикат в УПП на РАУЗ и вам действительно станет страшно)))

    Reply ↓
  19. Zhilyakovdr

    (16) Легко восстановить когда такие ссылки вовремя найдены, а если появилась тьма дублей(например при обмене) и прошло пару недель , а у вас в день по несколько тысяч документов……

    Не просто так существует контроль ссылочной целостности.

    По поводу удаления организаций, удаляли и не раз и без непосредственного удаления.

    «И перед тем как разводить ля-ля, задайтесь вопросом как удалить организацию в базе, а потом поведайте нам?!» — на инфостарте есть несколько вариантов как это сделать.

    Хотите удалять непосредственно, ваше право, но не надо давать такие инструменты людям которые не понимают последствия

    Reply ↓
  20. Zhilyakovdr

    (17) «если деление на организации нужно — значит база совсем мелкая.» — не очень понял зависимость между необходимостью деления базы на организации и размером базы….

    «Иначе задачи удалением не решаются.» — допустим есть задача вывести одну организацию из бизнеса и передать ее новым собственникам, при этом зачистить все следы, как вы будете решать эту задачу?

    Reply ↓
  21. nvv1970

    (20) Буду решать точно не только через методы 1с. Возьмите 500 Гб базу. 24/7. Окно в неделю — 20 минут. Критичный максимум — час.

    Ну снимете вы копию для кого-то и с ней будете играться хоть пол года. Согласен…

    А из работающей базы как вы все через ТиИ собираетесь удалять — я не понял. Или это вообще не нужно? Несколько дней будет выполняться такая процедура при монопольном доступе.

    Удаление документов и записей регистров по известному отбору почему нельзя произвести в скуле? Это не сложно, в тысячи раз быстрее и без монопольного доступа. Какие-то сложные взаимосвязи можно оставить на 1с. Но точно не весь объем данных.

    Reply ↓
  22. Zhilyakovdr

    (21)

    через ТиИ собираетесь удалять

    — не понял причем здесь ТиИ…. Если надо полностью вычистить организацию из базы то это решается простым удалением без всяких монопольных режимов.

    (21)

    Удаление документов и записей регистров по известному отбору почему нельзя произвести в скуле?

    — Если у вас на проходной идет бой между местной охраной и фсб(точнее уже вся охрана изучает пол) то даже скорость скуля вас не спасет))), а если у вас нет жесткого ограничения по времени то смысла возиться напрямую со скулем нет, да и потом откуда гарантии что вы вычистите все. Если бы речь шла о 7ке то можно было бы и со скулем повозиться.

    (21)

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

    — и скорее всего не выполнится

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

    п.с. не забывайте что ваши советы могут читать новички не умеющие нормально писать запросы которые после прочтения полезут резать базу в скуле даже не сделав перед этим бекап…..

    Reply ↓
  23. VendMart

    Добрый день. А есть возможность сделать так что бы сразу много документов добавить в обработку?

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *