Что мешает удалению объектов?

20.12.16

Разработка - Инструментарий разработчика

Обработка, позволяющая просмотреть цепочки объектов (как ссылочных, так и регистров), препятствующих удалению помеченных на удаление объектов. Платформа 8.3, обычные формы, управляемые формы, интерфейс такси, возможность работы в Web.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Обработка "Что мешает удалению?"
.epf 41,81Kb
146
146
1 SM
Скачать Купить за 1 850 руб.

Очень часто при работе с базой данных возникают сложности с удалением  объектов: с помеченным на удаление элементом справочника, документом, etc связаны другие объекты, тоже, возможно, помеченные на удаление, с ними - другие, и так далее. Цепочки таких связей могут быть очень большой длины, могут пересекаться, "зацикливаться", что вызывает трудности для анализа.

Эта проблема не избежала внимания сообщества, на просторах Инфостарта существует немало средств, помогающих в этой ситуации, например:

//infostart.ru/public/175028/

//infostart.ru/public/148771/

//infostart.ru/public/116386/ ,

однако по тем или иным причинам они не подошли для решения моих задач.

Предлагаю свой вариант, надеюсь что он будет небесполезен моим коллегам.

Основные возможности:

  • Построение дерева - цепочек объектов, связанных напрямую или опосредованно с объектами, помеченными на удаление. Для этого использовались стандартные механизмы платформы: НайтиПомеченныеНаУдаление(), НайтиПоСсылкам(). Отображается цепочка произвольной длины, при зацикливании построение цепочки прекращается на первом повторно встретившимся элементе. В дерево включаются все ссылочные объекты, константы и записи (а, точнее, ключи записей) независимых регистров сведений.

  • Одновременно с построением дерева происходит анализ, возможно ли удалить объект. При расчете предполагается, что ссылочный объект можно удалить, когда помечены на удаление все объекты, у которых есть на него ссылки; записи независимого регистра сведений могут быть удалены,если будет удален объект из состава ведущих измерений; а константу удалить нельзя :). В общем случае, это конечно же, не всегда соответствует действительности, так как разработчик в обработчиках ПриЗаписи и ПередУдалением может предусмотреть свои процедуры удаления связанных объектов или же запретить в обработчиках удаление, в зависимости от некоторых условий, но такие случаи выходят за рамки этой публикации. 

  • Есть возможность просмотреть список реквизитов, в которых встречается ссылка на объект. Корректно обрабатываются реквизиты, реквизиты табличных частей, движения документов.

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

  • В управляемой форме возможно открытие стандартного диалога для удаления помеченных объектов

  • Работает в режиме толстого клиента - обычные формы, тонкого клиента - управляемые формы, в том числе такси, веб-клиента. Не требует каких-либо библиотек.

Помеченные на удаление чистка базы

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    141506    777    391    

804

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    11762    31    6    

62

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

5400 руб.

17.05.2024    14443    36    29    

81

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    7406    27    4    

51

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2880 руб.

14.01.2013    182215    1105    0    

876

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    101261    243    97    

304

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы. Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение для 1С, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24580    17    15    

34

Инструментарий разработчика Программист Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    19535    7    8    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. V.Nikonov 120 21.12.16 13:21 Сейчас в теме
Связанные Предопределенные элементы учитываются?
2. Alxby 1107 21.12.16 16:12 Сейчас в теме
(1) Так как используются стандартные механизмы платформы: НайтиПомеченныеНаУдаление() и НайтиПоСсылкам(), то учитываются все объекты, учитываемые системой, в том числе предопределенные элементы. Операции с предопределенными элементами зависят от доступных пользователю прав.
3. zhuravlev_as 404 26.12.16 11:21 Сейчас в теме
В общем-то актуально - стандартной процедуре удаления этого как рази и не хватает, показывать, что еще мешает удалить кроме непосредственно тех объектов, которые уже мешают удалить.
4. kraynev-navi 653 28.12.16 17:57 Сейчас в теме
А пробовали обработку на 1С:Документообороте?
it@medipal-onko.ru; +1 Ответить
8. Alxby 1107 27.01.17 20:24 Сейчас в теме
(4) (7) В 1С:Документообороте я не пробовал обработку, но не вижу причин, по которой она может там не заработать. Если же все-таки будут проблемы в работе, сообщите, будем решать.
5. ZhokhovM 739 27.01.17 11:19 Сейчас в теме
Хорошая обработка, спасибо автор. Лучше да же, чем моя http://infostart.ru/public/104285/.
6. ZhokhovM 739 27.01.17 11:27 Сейчас в теме
Подскажите, автор, а у вас допилено построчное удаление и отмена удаления для подчиненных объектов?
Например:
1. Если в подчиненных был,например, документ установки цен - документ удаляется полностью, а не построчно.
2. Раз уж я увидел на первом шаге,что объект "тянет" за собой кучу подчиненных объектов и "передумал" его удалять, то как раз В КАЖДЫЙ подчиненный приходится заходить и с каждого СНИМАТЬ пометку на удаление.
Я обработку вашу скачал, но в код еще не лазил.
9. Alxby 1107 27.01.17 20:39 Сейчас в теме
(6) Основной функцией этой обработки предполагается просмотр цепочек связанных объектов. Удаление (пометка на удаление) сделано в качестве дополнительного функционала. Устранить помеху для удаления можно не только удалением связанных объектов, но и заменой этой связи на что-либо другое. В приведенном Вами первом примере при попытке удаления ненужной номенклатуры можно удалить документ установки цен, можно удалить соответствующую строку в ТЧ, а можно изменить значение реквизита ТЧ, выбрав там другую номенклатуру (тем самым "разорвав" связь с помеченной). В общем случае, только пользователь может выбрать наиболее подходящий вариант. Что касается второго примера, то я противник автоматического снятия пометки на удаление у всех связанных объектов, потому что тем самым мы можем ошибочно снять пометку с элемента, который был помечен ранее, может даже другим пользователем. Так что указанный Вами функционал не реализован, и сделано это специально.
7. it@medipal-onko.ru 27.01.17 18:09 Сейчас в теме
Автор, скажите, работает ли в 1с ДО?
10. Shalnov 148 25.10.18 18:22 Сейчас в теме
Если
	Для Каждого ИндексСтроки Из Элементы.Ссылки.ВыделенныеСтроки Цикл 
		
	 ТекДанные = Элементы.Ссылки.ДанныеСтроки(ИндексСтроки);


вместо

ТекДанные=Элементы.Ссылки.ТекущиеДанные;


то можно выделять несколько строк....
11. Alxby 1107 29.10.18 16:14 Сейчас в теме
(10)
Да, наверное так будет лучше. Постараюсь доработать в ближайшее время. Спасибо.
12. Shalnov 148 30.10.18 09:19 Сейчас в теме
(11) Хотел было быстро исправить, но не совсем просто.
Сообщите, если не сложно, как сделаете...
13. alexu 08.01.19 20:01 Сейчас в теме
Что-то пошло не так:

Зарплата и Управление Персоналом, редакция 2.5 (2.5.126.1)

{Форма.Форма_.Форма(1,2)}: Ожидается оператор препроцессора
#<<?>>Область ОбработчикиСобытийФормы
{Форма.Форма_.Форма(2,2)}: Ожидается оператор препроцессора
#<<?>>КонецОбласти
{Форма.Форма_.Форма(5,2)}: Ожидается оператор препроцессора
#<<?>>Область ОбработчикиСобытийЭлементовФормы
{Форма.Форма_.Форма(32,2)}: Ожидается оператор препроцессора
#<<?>>КонецОбласти
{Форма.Форма_.Форма(34,2)}: Ожидается оператор препроцессора
#<<?>>Область ОбработчикиКомандФормы
{Форма.Форма_.Форма(79,2)}: Ожидается оператор препроцессора
#<<?>>КонецОбласти
{Форма.Форма_.Форма(81,2)}: Ожидается оператор препроцессора
#<<?>>Область СлужебныеПроцедурыИФункции
{Форма.Форма_.Форма(135,20)}: Тип не определен (ОписаниеОповещения)
Оповещение=новый <<?>>ОписаниеОповещения("ОповещениеОтветНаВопросУдаления",ЭтаФорма,ДопПараметры);
{Форма.Форма_.Форма(195,2)}: Ожидается оператор препроцессора
#<<?>>КонецОбласти
14. alexu 08.01.19 20:23 Сейчас в теме
Извините, работает.
Запустил из "1С:Предприятие 8.3 (8.3.12.1616)"
15. manserg 104 03.04.19 04:02 Сейчас в теме
Отличная обработка, автору спасибо!
Оставьте свое сообщение