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



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

Это обработка может избавить пользователя от тупиковой ситуации — когда нужно удалить объект, а с помощью стандартной операции «Удаление помеченных объектов» это не получается сделать из-за того, что на удаляемый объект ссылаются другие объекты. Т.к. обработка //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 не будет опубликован. Обязательные поля помечены *