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

Опубликовал mr. Script (m..adm) в раздел Администрирование - Чистка базы

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

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

Данная обработка является итогом моих наработок за некоторый период времени. Функционал расширял по мере необходимости. Обработка работает в режиме обычного приложения и в толстом клиенте управляемого приложения.  В обработке реализовано:

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

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

Последняя версия 1.11. Изменения:

  • Исправлена ошибка раскраски связанных ключей записей регистров сведений.

Версия обработки 1.10. Изменения:

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

Версия обработки 1.09. Изменения:

  • Исправлена опечатка в алгоритме при контроле ссылочности справочников-владельцев;
  • Изменен участок кода для управляемой формы, который не разрешал ее запустить на одной из типовых конфигураций;
  • Добавлен контроль по стандартным табличным частям объектов конфигураци.

Версия обработки 1.08. Изменения:

  • Реализова работа обработки в толстом клиенте управляемого приложения.

Версия обработки 1.07. Изменения:

  • Реализован механизм контроля\замены ссылок по небалансовым измерениям регистров бухгалтерии.

Версия обработки 1.06. Изменения:

  • Отключена очистка дерева метаданных после выполнения поиска - теперь дерево метаданных отображается всегда;
  • Добавлен механизм замены ссылок.
  • Добавлено отображение общего количества оъектов в базе;
  • Механизм удаления переведен на режим  ОбменДанными.Загрузка = Истина;
  • Опция "Удалять записи регистов сведений" теперь работает для ведущих и не ведущих измерений.

Изменена справка обработки:

                   Обработка состоит из двух частей: Дерево удаляемых объектов (3) и Дерево ссылок (4) на удаляемый объект.

В дереве удаляемых объектов производятся основные настройки по поиску удаленных ссылок. В дереве ссылок анализируются связанные с удаляемым 
объектом другие объекты информационной базы. Управление обработкой выполняется с помощью Меню основных действий (1), отметок в дереве
удаляемых объектов и Меню дополнительных функций (2)
1. Меню основных действий
    - Очистить - инициализирует дерево объектов метаданных, очищает ранее полученные результаты;
    - Найти - производит поиск помеченных на удаление объектов информационной базы по отмеченным объектам. Поиск производится по справочникам,
    документам, планам счетов, планам видов характеристик, планам видов расчета, планам обмена, задачам, бизнес-процессам; 
    - Замена - производит замену удаляемой ссылки на указанную в колонке "Замена". При замене ссылок в измерениях регистров сведений может возникнуть ситуация,
     когда итоговый набор будет содержать дублирующие по измерениям строки, в таких ситуациях дубли строк удаляются. При этом приоритет отдается строке с меньшим номером по порядку.
    - Контроль - производит контроль ссылочности найденных помеченных на удаление объектов базы. Контроль производится по реквизитам, измерениям,
    ресурсам объектов метаданных, реквизитам табличных частей объектов метаданных, видам расчета регистров расчета, счетам и аналитике регистров бухгалтерии,
    ведущим задачам бизнес-процессов, измерениям последовательностей документов.
    - Удалить - производит удаление помеченных объектов, которые возможно удалить.
 
2. Меню дополнительных функций
 
    - Отборы - подменю с операциями для отборов дерева объектов (далее).
    - Удалять записи регистров сведений - включение\выключение режима удаления связанных записей независимых регистров сведений. 
      В случае, если ссылка на объект содержится в ресурсе или реквизите регистра - такие записи регистров не будут удалены.
    - Выводить список удаляемых - при включенной опции при удалении в системных сообщениях будет выводиться перечень удаленных объектов;
    - Монопольный режим - включение\выключение монопольного режима работы базы;
    - Найти и удалить - по выделенным объектам метаданных производится три действия подряд: найти - контроль - удалить.
3. Дерево объектов
     В первоначальном состоянии представляет собой полный перечень объектов метаданных. Необходимо установить отметки для тех объектов,
среди которых будет производиться поиск помеченных на удаление.
     По выполнению поиска в колонке дерева "Всего" отразиться количество найденных помеченных на удаление объектов, в колонке "Всего ссылок" отобразиться
общее количество ссылок данного типа объектов.
     По выполнению контроля в колонке дерева "Возможно удалить" отразиться количество объектов, которые можно удалить.
     Строки дерева раскрашиваются зеленым или красным цветом в зависимости от возможности удаления найденных объектов. Голубым выделяются строки, в которых указана
ссылка замены для удаляемого объекта.
     По контекстному меню дерево возможно отсортировать в желаемом порядке.
     Функции групповой установки\снятия отметок действуют по выделенным строкам дерева.
     Флажок "Отметка" используется как при поиске помеченных на удаление объектов, так и при контроле ссылочности, замене ссылок.
     В колонке "Отбор" для групп объектов можно указать произвольный запрос для дополнительной фильтрации найденных к удалению объектов. Двойной щелчок в колонке "Отбор"
открывает форму произвольного запроса
     Произвольный запрос позволяет применить дополнительный фильтр при выборе помеченных к удалению объектов.
     В итоговой выборке из запроса должно присутствовать поле с именем "Ссылка", это поле и будет фильтрующим.
     В форме конструктора запроса (7) :
    - Очистить - очищает текущий запрос;
    - По умолчанию - формирует новый запрос на основании типа данных текущего объекта;
    - Получить параметры - обновление списка параметров из запроса
Фильтрующие запросы возможно устанавливать только на уровне 2-й группировки дерева удаляемых объектов, т.е. на уровне раздела метаданных.
4. Дерево связанных ссылок
      При активизации строки в дереве объектов в дереве ссылок отображается иерархическая структура найденных ссылок на удаляемый объект.
При обнаружении циклической ссылочности объектов в структуре дерева текущий объект, который задействован в циклической ссылке,
будет отображен повторно и завершающим в дереве циклических ссылок.
     В строках этого дерева подсвечивается цветом красным ссылки, которые не могут быть удалены или не удаляются согласно текущих настроек;
зеленым цветом - ссылки, которые удаляются и могут быть удалены. Жирным шрифтом выделяются ключевые ссылки,
которые не разрешают в конечном итоге удалить текущий объект.
По двойному клику в строках этого дерева возможно просмотреть связанную ссылку.
5. Контекстное меню дерева объектов
Контекстное меню дерева объектов работает по выделенным строкам дерева.
Доступные действия:
    - Установить\снять отметки - устанавливает\снимает отметки по выделенным строкам дерева, включая подчиненные строки;
    - Сортировка по возрастанию\убыванию - управление сортировкой строк дерева;
    - Очистить отбор - (сочетание клавиш Ctrl-X) в выделенных строках дерева удаляются запросы-фильтры данных;
    - Скопировать отбор - (сочетание клавиш Ctrl-C)  копирует запрос-отбор из текущий строки дерева объектов в буфер обмена;
    - Вставить отбор - (сочетание клавиш Ctrl-V) вставляет запрос-отбор из буфера обмена в выделенные строки дерева объектов. При вставке производится трансформация запроса -
      подмена таблиц выборки данных. В случае, когда скопированный запрос-отбор не может быть трансформирован под текущий объект базы, в колонке Отбор
      ячейка с данным запросом будет подсвечена светло-красным цветом;
    - Очистить замену - (сочетание клавиш Shift-X) в выделенных строках дерева удаляются ссылки-замены;
    - Скопировать замену - (сочетание клавиш Shift-C)  копирует ссылку-замену из текущий строки дерева объектов в буфер обмена;
    - Вставить замену - (сочетание клавиш Shift-V) вставляет ссылку-замену из буфера обмена в выделенные строки дерева объектов.
6. Команды управления отборами
    - Сохранить отборы - сохраняет существующие запросы-отборы для дерева удаляемых объектов;
    - Восстановить отборы - восстанавливает ранее сохраненные запросы-отборы;
    - Очистить отборы - очищает дерево объектов от отборов

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

Наименование Файл Версия Размер
Удаление помеченных объектов
.epf 303,16Kb
06.11.16
66
.epf 1.11 303,16Kb 66 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Виктор Александров (docerman) 38 31.10.16 16:59 Сейчас в теме
Не знаю как работает, но смотрится круто.) +
2. mr. Script (m..adm) 115 31.10.16 20:11 Сейчас в теме
(1) docerman, Спасибо. Оформление важно, но не главное. Функционал важнее. Обработка не использует функции НайтиПомеченныеНаУдаление и НайтиПоСсылкам, поэтому работает намного быстрее и есть возможность видеть прогресс удаления. Для сравнительного теста запустил стандартную обработку чистки и разработанную мною. Тестировал на 250-гигабайтной базе с около 100 тысяч помеченных на удаление объектов. Стандартная обработка работала всю ночь и не выдала результат, снял задачу. Моя обработка выполнила поиск и контроль ссылочности чуть больше чем за 20 минут.
3. Сергей Старых (tormozit) 4105 01.11.16 00:14 Сейчас в теме
(2) Не исключено, что такая большая разница вызвана не только более оптимальными алгоритмами/запросами, но и исключением из контроля каких то колонок таблиц.
4. mr. Script (m..adm) 115 01.11.16 07:47 Сейчас в теме
(3) tormozit, Из контроля исключены константы. В основе алгоритма контроля лежат динамически создаваемые запросы для каждого типа значений поиска согласно предварительному анализу структуры метаданных. При этом выборки реализовываются: из всех реквизитов, ресурсов, измерений объектов, если таковые у объекта конфигурации есть. Из всех реквизитов таблиц табличных частей. Из данных родителей, владельцев объектов; из данных регистратора; из данных ведущей задачи. Если не ошибаюсь, такими выборками я покрываю все связи. Если ошибаюсь, то подправлю алгоритм поиска, как только будут замечания.
5. Сергей Старых (tormozit) 4105 01.11.16 09:42 Сейчас в теме
(4) Как на счет регистров бухгалтерии?
6. mr. Script (m..adm) 115 01.11.16 10:40 Сейчас в теме
(5) tormozit, Спасибо, существенное замечание, упустил это. В ближайшее время допишу поиск по аналитике регистров бухгалтерии, по общим реквизитам и обновлю обработку. Если будут еще замечания - пишите.
7. mr. Script (m..adm) 115 01.11.16 12:42 Сейчас в теме
(5) tormozit, Доработан контроль ссылочности по аналитике регистров бухгалтерии. Так же добавлен контроль ссылочности по общим реквизитам конфигурации. Доработки увеличили время контроля ссылочности. В моем примере, о котором писал выше, контроль ранее занимал 20 минут, сейчас чуть больше 30-ти минут. Т.е. увеличение времени по моим тестам где-то на 45%. Выложена последняя версия обработки 1.05
8. mr. Script (m..adm) 115 02.11.16 08:20 Сейчас в теме
Кто скачал обработку, отпишите свое мнение. Как отработала она у вас? Какой функционал хотелось бы добавить и что изменить? Уже есть ряд предложений, со временем по итогам тестирования опубликую новую версию.
9. Антон Антон (kare) 02.11.16 09:10 Сейчас в теме
скачал, пощупал, в копилке ! спасибо.
10. Alexandr Kuritsyn (hibico) 210 02.11.16 12:01 Сейчас в теме
В качестве идеи для расширения функционала:
В случае невозможности удаления дать возможность в ссылочных элементах произвести групповую замену удаляемого объекта на другой (например, при удалении дублирующего объекта).
11. mr. Script (m..adm) 115 06.11.16 23:36 Сейчас в теме
(10) hibico, добавлена возможность замены
12. Abadonna Abadonna (abadonna83) 27 08.11.16 11:33 Сейчас в теме
Прошу поправить ошибку:
## Начало поиска 08.11.2016 11:30:21
## Окончание поиска 08.11.2016 11:30:22 / 0,02 мин.
## Начало контроля 08.11.2016 11:30:43
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ SelectedData.Проект КАК мУдаляемаяСсылка,
SelectedData.Регистратор КАК мСвязанныеДанные
ИЗ РегистрБухгалтерии.Хозрасчетный КАК SelectedData
ГДЕ SelectedData.Проект В (&Ссылки)
{ВнешняяОбработка.УдалениеПомеченныхОбъектов.Форма.Форма.Форма(2347)}: Ошибка при вызове метода контекста (Выполнить): {(4, 19)}: Поле не найдено "SelectedData.Проект"
ГДЕ SelectedData.<<?>>Проект В (&Ссылки)
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ SelectedData.Проект КАК мУдаляемаяСсылка,
SelectedData.Регистратор КАК мСвязанныеДанные
ИЗ РегистрБухгалтерии.Хозрасчетный_БЗ КАК SelectedData
ГДЕ SelectedData.Проект В (&Ссылки)
{ВнешняяОбработка.УдалениеПомеченныхОбъектов.Форма.Форма.Форма(2347)}: Ошибка при вызове метода контекста (Выполнить): {(4, 19)}: Поле не найдено "SelectedData.Проект"
ГДЕ SelectedData.<<?>>Проект В (&Ссылки)
## Окончание контроля 08.11.2016 11:31:48 / 1,08 мин.
13. Abadonna Abadonna (abadonna83) 27 08.11.16 11:34 Сейчас в теме
В итоги он естественно ничего не удалил.
14. mr. Script (m..adm) 115 08.11.16 11:44 Сейчас в теме
(13) abadonna83, Подскажите, в хозрасчетном регистре бухгалтерии Проект у вас это что? Реквизит?
15. Abadonna Abadonna (abadonna83) 27 08.11.16 12:12 Сейчас в теме
Это Измерения.У нас сильно измененная Конфигурация.
16. mr. Script (m..adm) 115 08.11.16 13:12 Сейчас в теме
(15) abadonna83, Пока не могу понять причину ошибки.
Сделать следующее. Откройте консоль запросов и вставьте в нее проблемный запрос:

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
SelectedData.Проект КАК мУдаляемаяСсылка,
SelectedData.Регистратор КАК мСвязанныеДанные
ИЗ РегистрБухгалтерии.Хозрасчетный_БЗ КАК SelectedData
ГДЕ SelectedData.Проект В (&Ссылки)

и нажмите по контекстном меню в тексте запроса - конструктор запроса
будет ли при этом такая-же ошибка?

далее очистите поле запроса и наберите руками текст запроса:
ВЫБРАТЬ * ИЗ РегистрБухгалтерии.Хозрасчетный_БЗ КАК Регистр

после этого откройте по контекстному меню - конструктор запроса и нажмите ОК.
После таких действий текст запроса измениться.
Выложите этот текст сюда.
17. Abadonna Abadonna (abadonna83) 27 08.11.16 13:18 Сейчас в теме
Ошибка такая.
Поле не найдено "SelectedData.Проект"
ГДЕ SelectedData.<<?>>Проект В (&Ссылки)

После всего.
ВЫБРАТЬ
Регистр.Период,
Регистр.Регистратор,
Регистр.НомерСтроки,
Регистр.Активность,
Регистр.СчетДт,
Регистр.СчетКт,
Регистр.Организация,
Регистр.ПроектДт,
Регистр.ПроектКт,
Регистр.ВалютаДт,
Регистр.ВалютаКт,
Регистр.ПодразделениеДт,
Регистр.ПодразделениеКт,
Регистр.Сумма,
Регистр.ВалютнаяСуммаДт,
Регистр.ВалютнаяСуммаКт,
Регистр.КоличествоДт,
Регистр.КоличествоКт,
Регистр.Содержание,
Регистр.НомерЖурнала,
Регистр.СписаниеПартий,
Регистр.ДатаЗаписи
ИЗ
РегистрБухгалтерии.Хозрасчетный_БЗ КАК Регистр
18. mr. Script (m..adm) 115 08.11.16 13:36 Сейчас в теме
(17) abadonna83, Спасибо, понял причину. Доработаю механизмы под признак "Балансовый" регистров бухгалтерии, предположительно, сегодня вечером. Отпишу по результатам.
19. Abadonna Abadonna (abadonna83) 27 08.11.16 13:47 Сейчас в теме
Спасибо. Пришлите плиз на почту abadonna.83@bk.ru. Заранее спасибо.
20. mr. Script (m..adm) 115 08.11.16 14:00 Сейчас в теме
(19) abadonna83, хорошо, вышлю. Но разве тут нельзя повторно скачивать без оплаты новую версию обработки, если она уже была скачана? По-моему можно...
21. mr. Script (m..adm) 115 08.11.16 19:39 Сейчас в теме
(19) abadonna83, Реализовал возможность работы с небалансовыми измерениями регистров бухгалтерии. Обработку выслал и обновил версию тут. Если будут еще проблемные моменты - пишите.
22. Сергей Старых (tormozit) 4105 09.11.16 00:04 Сейчас в теме
(21) Чую, тебя ждет еще не мало открытый о структуре таблиц данных 1С. Но плюс для тебя несомненно будет - лучше запомнишь многие из этих тонкостей. Однако возможно стоит быть более честным с пользователями и сразу предупредить их, что обработка может не везде находить ссылки.
корум; СергейКа; +2 1 Ответить 6
23. mr. Script (m..adm) 115 09.11.16 00:57 Сейчас в теме
(22) tormozit, Фраза ни о чем да и гнилым пафосом тянет в стиле "я мего-гуру и от скуки, поцоны, вон решил запостить". Давай не будем так, уныло это выглядит. Ок? Ну и чудненько.
По существу: 1. Обработка удобна в первую очередь для моего пользования, пишу я ее как для себя, ее функционал покрывает потребности при обработке моих баз. 2. Обработка оперативно дорабатывается, как только кем-то озвучивается момент, который я упустил или толкается какая-нибудь идея. 3. Обработка имеет ряд плюсов в сравнении с ее аналогами. Ну и на сегодня последнее - я за нее не гребу 2к рублей. Цена в 10 Sm думаю приемлема за несколько тысяч строк кода. Где-то так...
24. Сергей Семченков (BigClock) 09.11.16 11:56 Сейчас в теме
Работает ли обработка в конфигурациях на УФ? Или только для обычных форм?
25. Abadonna Abadonna (abadonna83) 27 09.11.16 12:31 Сейчас в теме
Ошибок больше нет.
По самой обработки.

Из плюсов:
Поиск действительно быстрый. Гораздо быстрее всех аналогичных обработок.
Интерфейс нравится.

Из минусов:
В строках этого дерева подсвечивается цветом красным ссылки, которые не могут быть удалены или не удаляются согласно текущих настроек;
Хотелось бы чтоб имелась возможность удалять связанные объекты.
Для примера есть обработки которые могут это.
http://infostart.ru/public/267734/
26. mr. Script (m..adm) 115 09.11.16 14:31 Сейчас в теме
(24) BigClock, Только для обычных форм. Попробуйте запустить ее в вашей базе в режиме обычного приложения. Может пойти, а может и нет. Со временем адаптирую ее под работу в конфигурациях для управляемого приложения.
27. mr. Script (m..adm) 115 09.11.16 14:54 Сейчас в теме
(25) abadonna83, Хорошая идея по возможности удалять связанные. Поразмыслю, допишу.
28. Abadonna Abadonna (abadonna83) 27 09.11.16 15:51 Сейчас в теме
Если напишите это будет прекрасно. По факту мне сейчас ее использовать не получится, а очень хочется.
29. mr. Script (m..adm) 115 09.11.16 17:39 Сейчас в теме
(28) abadonna83, На написание удаления связанных объектов понадобится хороший кусок времени. Ссылки могут быть как в реквизитах, таб. частях, так и в аналитике регистров бухгалтерии, в движениях документов, при чем в документе их может и не быть,а в движениях могут быть; и пр. Поэтому механизм удаления надо обдумать хорошо и сделать настраиваемым. На данный момент можете свернуть удаляемые ссылки на одну какую-то ссылку, путем замены ссылок, доступной в этой обработке.
30. Сергей Кучеров (СергейКа) 610 10.11.16 22:10 Сейчас в теме
Почему НИГДЕ не указан режим запуска?
В наше время если обработка под 8.3, то в ней ПО УМОЛЧАНИЮ должен быть управляемый режим.
Считаю что бесполезно потраченные см.
31. Xer shi (Xershi) 183 10.11.16 22:28 Сейчас в теме
Да автору следует указать, что обработка на ОФ.
(30) СергейКа, у вас есть возможность ее запустить, только придется свойства конфигурации изменить.
Alister; smartem; +2 Ответить 1
32. mr. Script (m..adm) 115 10.11.16 23:37 Сейчас в теме
(30) СергейКа, Обработка работает только в обычном приложении. Я не акцентировал на этом внимание, т.к. на скрине явно видно - это обычная форма. Перевода на управляемую форму ее не будет, т.к. будет утеряно ее преимущество - быстродействие. Для использования ее в конфигурациях, для которых прописан основной режим запуска "Управляемое приложение" запустите такую информационную базу с ключом /RunModeOrdinaryApplication. Для этого создайте на рабочем столе новый ярлык и выберите путь к приложению 1С. Например: "C:\Program Files (x86)\1cv8\common\1cestart.exe". Далее в свойствах ярлыка в строке пути к приложению в конце добавьте пробел и строку /RunModeOrdinaryApplication и сохраните изменения в ярлыке. С помощью такого ярлыка будет запускаться 1С в режиме обычного приложения. В этом режиме и используйте обработку. В ряде конфигураций, написанных под чистое управляемое приложение обработка может не сработать на этапе удаления при получении модулей удаляемых объектов. Этот момент планирую обойти в новых версиях обработки. Сергей, все-таки сравните ее функциональность и быстродействие с иными обработками удаления, возможно вы измените свое мнение насчет зря потраченных см. Не измените - я их Вам верну :)
33. Сергей Кучеров (СергейКа) 610 11.11.16 10:16 Сейчас в теме
(32) m..adm,
Увы. Это неприемлемое решение.
Проведите сами эксперимент:
1. Берем например торговлю 11.2 (управляемые формы)
2. Помечаем на удаление номенклатуру.
3. Запускаем в обычном приложении.
4. Проводим поиск помеченных объектов и получаем связанные ссылки.
5. В (29) вы советуете сделать замену ссылок встроенным инструментом. Ага, попробуйте. Интересно, насколько большой будет облом.
Т.е. как минимум 1/3 часть уже просто не рабочая.
Больше чем уверен, это коснется всех последних типовых.

И это только один момент.
Второй момент заключается в комментарии (22), который так смело минусанули. А там всего лишь доброе пожелание было.
Даже не учитывая замену, при попытке удаления нескольких документов получил несколько ошибок вида передачи мутабельных значений и проблемами с подписками на события.

Сергей, все-таки сравните ее функциональность и быстродействие с иными обработками удаления, возможно вы измените свое мнение насчет зря потраченных см. Не измените - я их Вам верну :)

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

Цена в 10 Sm думаю приемлема за несколько тысяч строк кода. Где-то так...

Интересное решение оценивать стоимость в строчках кода, а не в качестве обработки. Боюсь предположить, какие открытия вас ждут если будете работать сами на себя, без работодателя.
Fox-trot; abadonna83; +2 1 Ответить 2
34. mr. Script (m..adm) 115 11.11.16 11:26 Сейчас в теме
(33) СергейКа, Сергей, давайте на чистоту. В своем последнем сообщении Вы явно дали понять, что вы разбираетесь в тонкостях и специфике применения обработки на управляемых приложениях. Поэтому считаю, что Вы лукавили в посте (30) , говоря "Почему НИГДЕ не указан режим запуска". Будучи специалистом Вы не могли не увидеть, что форма обработки обычная. В посте (30) Вы акцентируете внимание на потраченных см-ах, а в (33) уже говорите что их не жалко. Ко всему Вы отстаиваете пост (22) , называя высказывание в нем "добрым пожеланием". Откройте глаза и перечитайте еще раз пост (22) "Чую, тебя ждет еще не мало открытый о структуре таблиц данных 1С. Но плюс для тебя несомненно будет - лучше запомнишь многие из этих тонкостей." Я не вижу в этих словах "доброго пожелания". Я вижу лишь самоуверенную констатацию мнимых фактов и перевожу это так "у тебя еще будут проблемы с реализацией алгоритмов, т.к. ты не знаешь досконально структуры таблиц 1С и тебе стоит еще поучиться многому". Это не доброе пожелание. Этот человек меня не знает, поэтому заранее судить что мне стоит, а чего - нет, очень преждевременно и вызвало с моей стороны соответствующую реакцию.
Подводя итоги, могу предположить, что Вы, Сергей, своими постами как и в (22) пытаетесь сформировать негативное отношение к моей разработке. Полагаю причиной этого может быть желание убрать конкурентов и оставить место для обработок, продаваемых за рубли. Ко всему, вижу на этом ресурсе коллеги отстаивают позиции друг друга и часто задавливают плюсами в комментариях, как например в моей статье http://infostart.ru/public/427180/ . В ней мой оппонент так и не предоставил оптимальны запрос, который выдал бы верные результаты, но многие его слепо поддерживали.
В общем, есть такие негативные предположения у меня, но я их не буду озвучивать, если не будет повторов постов вида (22) от высокорейтинговых участников.
Подведу итог:
1. Обработка на данный момент предлагается в режиме обычного приложения и точка.Об этом указано в описании. Кому она понадобиться - тот и скачает.
2. Обработка намного быстрее производит поиск ссылок и контроль ссылочности и этим она очень хорошо выделяется в сравнении с ее аналогами.
3. Обработка будет расширена по интересным предложениям, высказанным тут.
4. Покупать за 10 см и стоит ли она этих средств - дело выбора каждого. Однако я также ценю свой труд и предлагать ее даром не собираюсь.
Основными причинами ее публикации есть: поделиться с народом быстрым средством обработки, выслушать идеи по ее расширению и сделать ее максимально удобной.


35. mr. Script (m..adm) 115 11.11.16 11:34 Сейчас в теме
Коллеги, кто скачал обработку. Оцените, стоит она 10 см или нет? Спасибо :)
36. mr. Script (m..adm) 115 11.11.16 11:41 Сейчас в теме
(31) Xershi, Указал в описании, что обработка работает в режиме обычного приложения. Для запуска на конфигурациях с управляемым режимом приложения не обязательно в свойствах конфигурации менять режим по умолчанию. Возможно запускать базу с ключом (32)
37. Сергей Кучеров (СергейКа) 610 11.11.16 12:01 Сейчас в теме
)))
В итоге вижу что по конкретным указанным мной проблемам ничего не сказано. Не будет обработка предназначенная для обычных форм полноценно работать в управляемом приложении.
В обсуждении переход на личные качества.
Да, при ознакомлении была допущена мной ошибка, что предположил возможность работы на управляемых формах.
Но опять же остаюсь при своем мнении, что скачано зря.
Засим откланиваюсь, дальше холиварить не собираюсь.
Удачи всем.
38. mr. Script (m..adm) 115 11.11.16 12:09 Сейчас в теме
(37) СергейКа, Сергей, о каких проблемах Вы говорите? О том, что она может не работать на управляемых приложениях? Так я и не писал, что она 100% работает на управляемых. Эта обработка для режима работы в обычном приложении. Поэтому, если Вы что-то себе там додумали, не стоит тут эти размышления представлять как ошибку обработки.
Но опять же остаюсь при своем мнении, что скачано зря.
Да, это ваше мнение и оно имеет право на жизнь. Возможно вы преждевременно скачали, не прочитав внимательно функционал.
Засим откланиваюсь, дальше холиварить не собираюсь.
Спасибо за Ваше мнение, жаль, что оно отразило негатив в теме о моей разработке. До свиданья!
39. mr. Script (m..adm) 115 07.12.16 14:08 Сейчас в теме
(33) Опубликовал новую версию обработки 1.08. Реализована возможность работы обработки в толстом клиенте управляемого приложения.
40. mr. Script (m..adm) 115 07.12.16 14:17 Сейчас в теме
В 1.08 версии добавил управляемую форму обработки. Обычная форма осталась без изменений.
В управляемом приложении производительность обработки упала, в около 2-х раз. Но даже с таким быстродействием, она намного быстрее работает в сравнении с ее аналогами. При возникновении возможных ошибок в новой управляемой форме, прошу отписать. Спасибо.
41. Юрий Немченко (nemchenko) 5 09.12.16 12:58 Сейчас в теме
Скачал обработку - потратил весь капитал абонемента на месяц. Была надежда получить готовый инструмент без допиливания, т.к. очень нужна быстрая обработка по удалению объектов. Однако запускать инструмент без предварительного тестирования не в моих правила.
Итак:
1. Платформа 1С:8.3.8, Конфигурация 1С;УПП практически не тронутая. Обычные формы. Провел удаление помеченных на удаление объектов с помощью штатных средств.
Запустил обработку и обнаружил, что обработка радостно разрешает удалить некоторые объекты. В частности элемент справочника "Договоры".
Провел анализ и обнаружил, что данный договор для контрагента указан как основной, т.е. реквизит справочника "Контрагенты" "Основной договор" заполнен экземпляром именно помеченного на удаление договора. Согласился с предложение удалить договор и удалил этот договор. В результате в реквизите справочника "Контрагенты" "Основной договор" получил битую ссылку. Печально.
Думаю такая же ситуация и с реквизитом "Осноной банковский счет" в справочнике "Контрагенты".
2. Попробовал запустить обработку в конфигурации "1С:Документооборот КОРП 2.1" в толстом клиенте управляемые формы. Обработка просто не запустилась - ошибка в строке:
ТипКлюч = ТипЗнч(РегистрыСведений[Регистр.Имя].ПустойКлюч());
Причина банальна - в модуле менеджера одного из регистров стоит вызов одной из процедур общего модуля "ОбщегоНазначения", который выполняется ТОЛЬКО на сервере и галочка "Вызов сервера" у него не стоит.

Вот пока такие замечания
42. Юрий Немченко (nemchenko) 5 09.12.16 13:54 Сейчас в теме
Проблемы также с планами видов расчета - не анализируются стандартные табличные части.
44. Сергей Старых (tormozit) 4105 09.12.16 14:42 Сейчас в теме
Получается (22) был прав и справедливо предупредил пользователей обработки и автора об опасности.
45. mr. Script (m..adm) 115 09.12.16 16:42 Сейчас в теме
(44) Нет, в (22) автор был не прав, по крайней мере в своих суждениях об "знаниях таблиц базы данных". Сергей, предлагаю не зацикливаться на одном, т.е. на попытке доказать какую-то правоту и опустить рейтинг обработки и ее автора. В этой обработке, как и в любых других, может быть место недоработки. Поэтому я и прошу в случае обнаружения ошибок сообщать. Ошибки исправляю более-менее оперативно и отписываю тут о результатах.
46. mr. Script (m..adm) 115 09.12.16 16:52 Сейчас в теме
(41) Спасибо за замечания. Смоделировал ситуацию по договорах, действительно, дало удалить, хотя в контрагенте была ссылка "Основной договор". Алгоритм должен работать, но тут, видимо промах в логике при проверке владельцев. Доработаю в следующей версии.
47. Сергей Старых (tormozit) 4105 10.12.16 01:46 Сейчас в теме
(45) Иными словами ты согласен с "стоит быть более честным с пользователями и сразу предупредить их, что обработка может не везде находить ссылки", но почему до сих пор не написал об это в описании обработки? Вообще мой главный посыл был в том, что если у тебя поиск ссылок идет на порядки быстрее, то велика вероятность, что ты просто не везде ищешь ссылки.
Ну и надо помнить о том, что состав таблиц и структура каждой из них имеют относительно большое разнообразие и они периодически расширяются с развитием платформы. Как у тебя учтены эти проблемы?
48. mr. Script (m..adm) 115 13.12.16 22:48 Сейчас в теме
(41) Юрий, по Вашим замечаниям внес правки в обработку. Выложил новую версию 1.09. Попробуйте запустить на Документообороте. У меня под руками несколько конфигураций и в основном на обычных формах. Поэтому проверку на разных типовых конфигурациях в управляемом приложению не выполнял. Если будут еще замечания, пишите. Доработаем.
49. mr. Script (m..adm) 115 13.12.16 23:06 Сейчас в теме
(47) Сергей, у меня сложилось мнение, что тебе нечем заняться. Может я не прав...

(47)
Иными словами ты согласен с "стоит быть более честным с пользователями и сразу предупредить их, что обработка может не везде находить ссылки", но почему до сих пор не написал об это в описании обработки? Вообще мой главный посыл был в том, что если у тебя поиск ссылок идет на порядки быстрее, то велика вероятность, что ты просто не везде ищешь ссылки.


О том, где обработка ищет связанные ссылки описано с самого начала в справке к обработке, в описании функции "Контроль".
Данную обработку, как и многие другие, выложенные на этом ресурсе, пользователи используют на свой страх и риск. Я не напоминаю здесь об этом и о том, что необходимости создавать копии базы, вникать в справку обработки; о важности понимания выполняемых действий и пр., т.к. уверен, что ею должны пользоваться знающие коллеги, программисты, администраторы. Поэтому, кому она надо - тот почитает справку, поймет. Если не поймет - откроет код и поймет что она может. Если не захочет понимать код - задаст тут вопрос автору.

(47)
Ну и надо помнить о том, что состав таблиц и структура каждой из них имеют относительно большое разнообразие и они периодически расширяются с развитием платформы. Как у тебя учтены эти проблемы?


С таким подходом можно говорить и о многих других обработках. Будет расширение платформы - будет и доработана стандартная обработка удаления помеченных. Следовательно, придется дописывать и эту. Куда уж деваться.

50. Юрий Немченко (nemchenko) 5 14.12.16 15:51 Сейчас в теме
Скачал новую версию обработки. Проверял пока только на 1С:Документооборот КОРП. Обработка открылась без ошибок. Помеченные объекты нашла. Однако при нажатии кнопки "Контроль" опять выдала ту же ошибку на регистре сведений, что и была при открытии обработки.
Остальное гляну позже.
51. Юрий Немченко (nemchenko) 5 14.12.16 15:55 Сейчас в теме
Сразу скажу, что 1С:Документооборот КОРП не работает в толстом клиенте даже без обработки. Вылетает по той же самой ошибке, что и обработка. (попытка открыть процедуры из общего модуля "ОбщегоНазначения").
Похоже разработчики не тестировали свою конфигурацию в толстом клиенте. Зато в тонком клиенте работает.
52. Юрий Немченко (nemchenko) 5 14.12.16 16:05 Сейчас в теме
И еще в качестве пожелания - хотелось бы в дереве ссылок видеть для документов - проведен, не проведен, помечен на удаление, для прочих - помечен на удаление, не помечен на удаление.
Пока обработку использую для анализа. В некоторых случаях помогает разобраться в ситуации.
53. Юрий Немченко (nemchenko) 5 16.12.16 15:03 Сейчас в теме
Замечания:
1. Если объект является измерением регистра сведений, но это измерение не является ведущим, то обработка готова объект удалить. Это неверно.
54. mr. Script (m..adm) 115 16.12.16 22:47 Сейчас в теме
(53) Юрий, Ваши пожелания учту в новой версии обработки.

По поводу данных в независимых регистрах сведений. В версии обработки 1.06 как раз я изменил этот механизм. Ранее обработка в плане ведущих измерений работала как типовая, но потом я переделал на удаление всех записей независимых регистров, в которых удаляемый объект в измерении. Если же удаляемый объект только в ресурсе или реквизите независимого регистра сведений, тогда обработка не даст удалить. Опция удаления записей регистров сведений завязана на кнопку в шапке формы. Эти изменения я внес с учетом потребностей в своей практике при многопользовательской разработке. Часто коллеги-программисты не ставят признак "ведущий" и при наличии не одного такого регистра в сочетании с распределенной информационной базой это вызывает неудобства при попытке удаления - необходимо править конфигурацию, обновлять базы и т.д. В своей практике я не встречал ситуаций, когда надо "не дать" возможность удалить ссылку, если она является разрезом каких-либо данных в регистре сведений и не является ведущей. Юрий, Вы можете привести пример необходимости этого? Если необходимость в этом действительно будет, я подумаю о возврате к старому варианту удаления или компромиссным настройкам обработки.
55. Юрий Немченко (nemchenko) 5 20.12.16 15:52 Сейчас в теме
(54) Привожу пример:
1С:УПП, РАУЗ. Независимые регистры сведений "АналитикаВидаУчета", "АналитикаРаспределенияЗатрат", "АналитикаУчетаЗатрат", "АналитикаУчетаПартий", "АналитикаУчетаПрочихЗатрат". Ни одно из измерений не является ведущим.
Удаление записи в регистрах ведет к потере аналитики в проводках учета затрат. Найти такую ситуацию если специально не ищешь довольно сложно.
56. Константин (Mkonst) 42 21.12.16 04:38 Сейчас в теме
Запустил обработку для удаления объектов. Утром прихожу, вижу обработка вывалилась в ошибку..... Ни стоит она 10смани.. если не умеет работать с большим количеством помеченных на удаление объектов.
57. mr. Script (m..adm) 115 21.12.16 07:59 Сейчас в теме
(56)
Запустил обработку для удаления объектов. Утром прихожу, вижу обработка вывалилась в ошибку.....
Какую именно ошибку? Приведите пожалуйста ее текст.

(56)
Ни стоит она 10смани.. если не умеет работать с большим количеством помеченных на удаление объектов.

Она умеет работать с большим количеством объектов, возможна проблема с нехваткой памяти. Об этом написано в описание к обработке.
Константин, напишите свой вариант обработки с таким же функционалом и оцените стоимость ваших усилий, потраченного времени. Будет ли это стоить каких-то 10см (50 руб.) или нет. Я ценю свой труд, поэтому ее стоимость 10 см - максимальная, которую дает возможность установить сайт.

58. Юрий Немченко (nemchenko) 5 21.12.16 11:35 Сейчас в теме
59. mr. Script (m..adm) 115 21.12.16 13:42 Сейчас в теме
(58) Не понял. Почему 10 см = 1200 руб.? Текущий курс биржи пишет 5.24 руб. за см.
60. Евгения Карук (ekaruk) 2607 21.12.16 15:05 Сейчас в теме
(59) Это внутренний курс для разработчиков.
Тарифы для пользователей тут http://infostart.ru/about/service/premium/
И 10 СМ это именно 1200 руб.
61. Александр Кузнецов (Alexoniq) 503 22.12.16 11:56 Сейчас в теме
Во время выполнения контроля произошла ошибка (v1.09 и платформа 8.3.8.2167)
Форма.УправляемаяФорма.Форма(2307) : Поле объекта не обнаружено (Реквизиты)

Посмотрел через отладчик, у переменной "тЧ" отсутствует свойство "Реквизиты" (на скрине видно).
Тип "ОписаниеСтандартнойТабличнойЧасти".

При этом если повторно выполнить контроль ошибка больше не возникает.

62. Константин (Mkonst) 42 22.12.16 12:14 Сейчас в теме
Было бы не лишним, если в Дереве ссылок была бы еще одна колонка "Тип ссылки". Либо была возможность все типы которые попали в дерево ссылок, после контроля, отметить в ДеревеУдаляемыхОбъектов. Понадобилось к примеру удалить организацию. В ДеревеУдаляемыхОбъектов, в спр.Оганизации выбрал нужную организацию, нажал на контроль, в дереве получил все ссылки. Каким образом все найденные типы отметить в дереве объектов для дальнейшего удаления?
63. mr. Script (m..adm) 115 22.12.16 13:30 Сейчас в теме
(53) (52) Юрий, по Вашим пожеланиям отметки Проведен, Помечен отобразил в дереве связанных ссылок. Также вернул старый механизм удаления записей независимых регистров сведений.
64. mr. Script (m..adm) 115 22.12.16 13:32 Сейчас в теме
(61) Да, есть такая опечатка. В новой версии (1.10) уже исправлено.
65. mr. Script (m..adm) 115 22.12.16 13:40 Сейчас в теме
(62) По поводу возможности отметки к удалению связанных ссылок уже было пожелание. Пока я не придумал "красивого" механизма их обработки, поэтому эта доработка еще в планах.

(62)
Каким образом все найденные типы отметить в дереве объектов для дальнейшего удаления?

Обрабатываются при поиске, контроле, удалении только строки с установленным флажком "Отметка". Установить или снять флажки для нескольких строк, групп Вы можете с помощью действий в контекстном меню дерева удаляемых объектов ("Установить отметки", "Снять отметки"). Действия контекстного меню дерева работают по выделенным строкам дерева.
66. Юрий Немченко (nemchenko) 5 23.12.16 06:30 Сейчас в теме
Мда... Скачать версию 1.9 удалось. А вот для 1.10 уже просит заплатить денюжку снова... Грабеж!
67. mr. Script (m..adm) 115 23.12.16 09:36 Сейчас в теме
(66) Юрий, напишите мне свой электронный адрес, вышлю обновленную обработку.

Кто скачивал обработку ранее и сайт опять требует денюжки - пишите мне в сообщении свой email. Буду рассылать, обновленные версию.
68. IT people (it@medipal-onko.ru) 30.01.17 11:14 Сейчас в теме
Здравствуйте! Будет работать на 1с Документооборот? Пробовал ли кто-нибудь?
69. mr. Script (m..adm) 115 30.01.17 13:48 Сейчас в теме
(68) Проверял на демо-базе Документооборот 8 КОРП редакция 1.4 - работает.
70. Павел Знайкин (PavelZnaikin) 127 30.01.17 16:53 Сейчас в теме
А с помощью вашей обработки удалить Номенклатуру в месте ссылками на неё.

Не могу разобраться!
71. mr. Script (m..adm) 115 30.01.17 18:23 Сейчас в теме
(70) Если все объекты, которые содержат ссылку на удаляемую номенклатуру так же помечены на удаление и отобраны к удалению, тогда вполне возможно, что ваша номенклатура может быть удалена. Если речь идет о удалении номенклатуры и связанных всех ссылок, которые не помечены на удаление - такого механизма пока в этой обработке не реализовано, хотя пожелания были.
72. Павел Знайкин (PavelZnaikin) 127 30.01.17 20:16 Сейчас в теме
Можете реализовать на этой неделе, нам сейчас это очень востребовано!
73. mr. Script (m..adm) 115 30.01.17 21:54 Сейчас в теме
(72) Павел, даже текущий функционал обработки (удаление с контролем) может быть опасен в руках не опытного пользователя. Реализовать функционал, который бы не глядя чистил все подряд по перечню помеченной на удаление номенклатуры не правильно. Т.к. помеченная на удаление номенклатура может потянуть по связям полбазы и все это будет удалено. Посему, для реализации такого функционала необходимо, чтобы пользователю был выдан список всех связей, чтобы он (пользователь) все проанализировал и принял решение. Тут без пользовательского анализа никак не обойтись и никакая обработка не поможет. В какой форме представить данные для этого функционала, какие отборы, функции обработки реализовать я пока не придумал, поэтому этот функционал отложен до "лучших времен".
Если у Вас есть идеи, представление, в каком виде Вы хотели бы получить этот функционал - поделитесь, может это подтолкнет меня к реализации. Спасибо.
74. Юрий Немченко (nemchenko) 5 31.01.17 06:00 Сейчас в теме
Проверил на 1С:Документооборот КОРП 2.1.9.3 - валится при проведении контроля с сообщением:

{РегистрСведений.РабочиеГруппы.МодульМенеджера(94,19)}: Переменная не определена (ОбщегоНазначения)
75. mr. Script (m..adm) 115 31.01.17 10:39 Сейчас в теме
(74) Юрий, я проверил на Документооборот КОРП 2.1.2.2 , работает нормально. В модуле менеджера регистра РабочиеГруппы есть вызов процедуры из модуля ОбщегоНазначения, который чисто серверный. У меня на этот счет предусмотрен алгоритм и очистка выполняется. На данный момент у меня нет под рукой именно вашего релиза документооборота, поэтому проверить не могу. Возможно у Вас не последняя версия моей обработки? Последняя 1.10. Если же последняя, для адаптации надо детальнее описание ошибки: в каком месте обработки возникает ошибка, что за процедура в модуле менеджера и какие свойства модуля, в котором размещена эта процедура?