gifts2017

Выборочное удаление помеченных объектов (управляемые формы 1С 8.2)

Опубликовал Арсений Гришаев (Pro-tone) в раздел Администрирование

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

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

http://infostart.ru/public/148771/ где реализован рекурсивный обход подчиненных объектов с возможностью выборочной отметки

дочерних и корневых объектов, чего нет в этой версии.


Обновил версию до 1.5


           Добавлена возможность авторегистрации обработки в справочнике "Дополнительные отчеты и обработки"


Обновил версию до 1.4


           Добавлена автоматическая очистка подчиненных записей регистров сведений 1го уровня вложенности.


Обновил версию до 1.3


          Добавил кнопки простановки/снятия флагов обработки в дереве метаданных (по просьбе Samarin)


Обновил версию до 1.2

  • Теперь в дерево объектов включены все ссылочные объекты метаданных 
  • Отображаются картинки всех объектов в дереве метаданных

Версия 1.1


         Метаданные и найденные объекты с пометками удаления представлены в форме дерева значений.

         Подходит для управляемого приложения и клиентов любой толщины.

         Пока сделал только для документов,справочников и ПВХ. Пишите если нужно какие другие объекты. Можно выбирать               определенный вид объекта метаданных перед обработкой. Это большой плюс в сравнении с типовой обработкой при большом кол-ве данных.

         Один из главных плюсов (а также отличий) обработки в реализации в ней т.н. "порционного удаления" объектов. Это крайне       полезно при большой нагрузке на сервер 1С с большим количеством пользователей при большом объеме удаляемых объектов. Дабы не "подвешивать" сервер на долгое время можно назначить кол-во удаляемых объектов в порции, а также время следущего вызова процедуры удаления. 

         Рассматриваю пожелания на доработку кроме рекурсии (пока нет на нее времени).

Скачать файлы

Наименование Файл Версия Размер
Выборочное удаление помеченных объектов (для управляемых форм 1С 8.2) 599
.epf 23,10Kb
05.04.13
599
.epf 23,10Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Сергей Ожерельев (Поручик) 30.07.12 23:40
(0) Для большей универсальности все остальные ссылочные объекты тоже добавить.
2. Арсений Гришаев (Pro-tone) 30.07.12 23:46
(1) угу, сделаю, просто делал под свои цели - мне только 3 объекта были нужны
3. Александр Журавлев (apostal86) 08.08.12 09:23
Вы пишете в описании: "Это крайне полезно при большой нагрузке на сервер 1С с большим количеством пользователей при большом объеме удаляемых объектов. Дабы не "подвешивать" сервер на долгое время можно назначить кол-во удаляемых объектов в порции, а также время следущего вызова процедуры удаления" - подразумеваете удаление не в монопольном режиме?
4. Арсений Гришаев (Pro-tone) 18.08.12 22:04
(3) apostal86, все верно, не в монопольном режиме обработка удаления может очень сильно грузить сервер 1С особенно при большом кол-ве помеченных на удаление объектов, такое наблюдалось и не раз. Пакетное удаление решает эту проблему.
5. Сергей Самарин (Samarin) 06.09.12 09:43
Спасибо за обработку - полезная!
Что я изменил:
1) Поменял местами кнопки "Контроль" и "Удаление", так интуитивней - юзеры быстрее разберутся.
2) Флажки "Использование" в дереве - по умолчнию Истина, при открытии формы обработки. Чтобы сразу можно после запуска нажимать кнопку "Контроля", без лишних телодвижений.
Очень не хватает перехода по ссылкам на те объекты, из-за которых нельзя удалить.
6. Арсений Гришаев (Pro-tone) 06.09.12 09:53
(5) спасибо за комментарий.

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

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

Вы имеете виду поиск ссылок с рекурсией. Это сделано в моей публикации http://infostart.ru/public/148771/ Рекомендую ознакомиться. Там еще много нового и полезного, но она не бесплатная.
7. Олег Коваленко (OleGazz) 06.09.12 11:39
спасибо за обработку, очень интересная вещь
8. Сергей Самарин (Samarin) 06.09.12 16:38
(6) Pro-tone, В моем случае - это база с небольшим документооборотом, поэтому я смело включил все флажки. Если это все обсуждаемо и спорно - тогда сделать кнопку вкл/выкл флагов всей колонки.
9. Арсений Гришаев (Pro-tone) 06.09.12 16:43
Samarin, это совершенно несложно, и без проблем могу сделать тогда в самое ближайшее время.
10. Арсений Гришаев (Pro-tone) 07.09.12 10:46
Samarin, сделал кнопки по вашей просьбе =)
11. Павел Ладейщиков (flack) 27.09.12 18:03
При "Контроле удаления" в список выводятся только те объекты, которые нельзя удалить!
Кнопка "Удалить" неактивна.
Платформа: 8.2.15.310
Конфигурация: ЗУП, редакция 2.5.
12. Арсений Гришаев (Pro-tone) 27.09.12 22:22
(11) все верно, так и должно быть. Если нельзя удалить, значит есть подчиненные объекты. Хотите их видеть и легко удалять тоже в виде дерева? Рекомендую купить http://infostart.ru/public/148771/
13. Павел Ладейщиков (flack) 28.09.12 09:44
Дело в том, что есть объекты, которые ни с чем ни связаны.
Стандартная обработка УдалениеПомеченныхОбъектов с контролем целостности спокойно удаляет несвязанные.
А в данной обработке те объекты, которые можно удалить вообще не выводятся. В итоге получаем очень сильно урезанный список объектов.
14. Арсений Гришаев (Pro-tone) 28.09.12 11:23
(13) моя обработка имеет проверку контроля еще и по подчиненным записям регистрам сведений, чего не имеет типовая. Поэтому вы и думаете, что Стандартная обработка УдалениеПомеченныхОбъектов с контролем целостности спокойно удаляет несвязанные. Потому что в ней нет проверки на подчиненные записи РС.

Если вы напишите простой код для проверки наличия ссылок тех объектов, которые моя обработка не дает удалить, то увидите записи РС. При удалении объекта типовой обработкой, если он имеет свои ссылки в записях РС и записи не подчинены регистратору, а просто содержат поле со ссылкой на удаляемый объект, то скорее всего после удаления объекта останется запись, в поле которой будет такая вещь как "<Объект не найден>" (например, когда включено версионирование). Что не есть гуд. Данная моя обработка просто не даст такое допустить, а коммерческая в (12) дает возможность удалять любые подчиненные объекты, включая записи РС.
15. Павел Ладейщиков (flack) 28.09.12 11:53
В конфигурации Документооборот (1С:Документооборот 8 КОРП, редакция 1.1 (1.1.4.1)) обработка УдалениеПомеченныхОбъектов работает с контролем целостности как с РС, так и с остальными объектами как положено.
Прикрепленные файлы:
16. Арсений Гришаев (Pro-tone) 28.09.12 11:58
(15) ОК, хорошая иллюстрация! Стало быть типовая автоматически чистит записи РС если нет других подчиненных объектов. Без проблем - могу это так сделать, чтоб записи тоже вычищались.
17. Павел Ладейщиков (flack) 28.09.12 12:10
Неплохо было бы сделать функционал, позволяющий выбирать:
1.Удаляем с контролем целостности (мягкий)
2.Удаляем без контроля целостности (грубый)
3.Удаляем объект и все связанные с ним объекты (очень грубый =))
demart-omsk; elenko1; +2 Ответить 1
18. Арсений Гришаев (Pro-tone) 28.09.12 12:27
(17)

1. Уже есть
2. Зачем это надо? Ошибки плодить в базе?
3. Речь идет о рекурсии. К тому же не видя, что удаляем - это плохо. А чтобы сделать видимым полное дерево подчиненных ссылок - это надо писать рекурсию с заполнением дерева ссылок.
В данной обработке ее делать не буду - слишком трудоемко.

Хотя поддерживаю сделать удаление автоматически подч. записей РС.
19. Евгений Сивов (bird21) 02.04.13 11:16
Для большего удобства было бы здорово добавить стандартный функционал, позволяющий добавлять обработку в базу на управляемых формах как дополнительную обработку.
А-то возникает ошибка "Ошибка получения сведений о внешней обработке такой-то при ее загрузке: Метод объекта не обнаружен (СведенияОВнешнейОбработке)".
20. Арсений Гришаев (Pro-tone) 05.04.13 15:36
(19) Сделано. Обновил до 1.5. Там уже есть авторегистрация доп.обработки.
21. Евгения + (zhenya17) 12.08.13 21:20
Поставила плюсик.
Из пожеланий: хочется, чтобы можно было открывать на просмотр те объекты, из-за которых невозможно удалить исходный. Сейчас ссылки отображаются, но чтобы понять, что в них, приходится дополнительно лезть в журналы документов, справочники и т.п.
22. Лия кремлёва (Liah82) 19.11.13 14:53
На платформе 8.2.18.109 конфигурации Бух. предприятия 2.0.52.6 почему-то вообще не запускается
23. Арсений Гришаев (Pro-tone) 20.11.13 01:28
(21) принято
(22) потому что это обработка для управляемого приложения. В обычном работать не будет.
24. Сергей Михаев (Eskimos) 25.12.13 11:20
{Форма.Форма.Форма(76)}: Значение не является значением объектного типа (ПолноеИмя)
СтрокаПодчиненныеНайденныеСсылки.ТипОбъектаСтр = Метаданные.НайтиПоТипу(ТипЗнч(ТекСтрока.Данные)).ПолноеИмя();

Вот такая ошибка вылазит.
1С 8.2.18.61 База 1С:Розница
25. Попов Николай (Putin_VV) 07.01.14 11:07
не открывается обработка ни одной УТ ни БП
Прикрепленные файлы:
26. Арсений Гришаев (Pro-tone) 07.01.14 16:39
(25) Потому что ваши УТ и БП на обычном приложении, а эта обработка для управляемого.
27. Иван Титов (Ibrogim) 16.01.14 10:19
1) Не плохо бы вставить ОписаниеОшибки() в попытку удаления объекта
А то в случае фэйла просто краснеет текст "можно удалить" и непонятно, что произошло или не произошло.

УТ11.1.2.27 не удаляет объекты, которые спокойно удаляет типовая обработка
Ошибка:
{Форма.Форма.Форма(197)}: Ошибка при вызове метода контекста (Удалить): Нарушение прав доступа!

Обработка запущена под полными правами.
2) Рядом с большой кнопкой "плюсануть разработку" можно сделать небольшую "минусануть".
28. Арсений Гришаев (Pro-tone) 16.01.14 10:42
(27) под полными правами запускайте
29. Иван Титов (Ibrogim) 16.01.14 11:04
(28) Pro-tone, Если вы внимательно прочитаете моё сообщение, то увидите :
Обработка запущена под полными правами.
30. Арсений Гришаев (Pro-tone) 16.01.14 11:07
(29) Значит RLS наложен, в запросе к метаданным нужно довесить ВЫБРАТЬ РАЗРЕШЕННЫЕ
31. Иван Титов (Ibrogim) 16.01.14 11:12
(30) Pro-tone, На выбранный объект RLS не наложены. Связанных объектов или РС нет (уже всё удалил)
+ повторюсь, что типовая обработка объект удаляет без проблем.

У вас есть под рукой УТ11? Попробуйте удалить реализацию вашей обработкой (предварительно почистив связанные объекты и РС)
32. Арсений Гришаев (Pro-tone) 16.01.14 11:17
(31) На работе нет под рукой УТ, дома гляну.
33. Евгений Сивов (bird21) 21.01.14 11:10
Пользуюсь уже некоторое время версией 1.5.
На БП 3.0 возникла проблема: обработка не удаляет объекты помеченные на удаление, но ссылающиеся друг на друга, при этом стандартное удаление помеченных объектов спокойно их удаляет.
Прикрепленные файлы:
34. Евгения + (zhenya17) 22.01.14 03:40
(33) bird21, +1
Это не проблема в Бух 3.0, это проблема обработки :)
Мне тоже приходится удалять такие объекты в монопольном режиме стандартной обработкой...
36. Алексей Наумов (Naumov) 12.03.14 15:06
Из обработки невозможно открыть объекты, отображаемые в списке.
37. Klesk666 Klesk666 (Klesk666) 29.03.14 06:13
в УТ 11 не удаляет документ "Передача товаров между организациями", пишет "нельзя удалить", в раскрываемом списке документа (я предполагаю что там показывается объект, который содержит ссылку на удаляемый) показывается этот же документ.
38. Klesk666 Klesk666 (Klesk666) 06.08.14 23:30
(27)
УстановитьПривилегированныйРежим(Истина);
ТекОбъект.Удалить();
УстановитьПривилегированныйРежим(Ложь);


(37)

Для Каждого ТекСтрока Из ТабСсылокНаОбъект Цикл
//Klesk666
Если ТекСтрока.Ссылка=Выборка.Ссылка и Выборка.Ссылка.ПолучитьОбъект().Метаданные()=ТекСтрока.Метаданные Тогда
Продолжить;
КонецЕсли;
//Klesk666