Поиск неиспользуемых экспортных методов (процедур и функций) общих модулей

11.11.21

Задачи пользователя - Поиск данных

Обработка "Поиск неиспользуемых экспортных методов общих модулей" предназначена для выполнения поиска неиспользуемых экспортных методов (процедур и функций) общих модулей в конфигурациях, разработанных на платформе "1С: Предприятие 8.х".

Скачать исходный код

Наименование Файл Версия Размер
Поиск неиспользуемых экспортных методов (процедур и функций) общих модулей:
.epf 48,76Kb
11
.epf 48,76Kb 11 Скачать

Данная обработка предназначена для выполнения поиска неиспользуемых экспортных методов (процедур и функций) общих модулей в конфигурациях, разработанных на платформе "1С: Предприятие 8.х".

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

Однако в процессе разработки и развития решения экспортные методы общих модулей (как впрочем и остальные методы остальных модулей) могут стать неиспользуемыми или отпадет необходимость оставлять их экспортными. 

 

Порядок работы:

1. Выгрузить анализируемую конфигурацию в файлы в выбранный каталог (в Конфигураторе: Конфигурация - Выгрузить конфигурацию в файлы...)

2. В режиме Предприятие открыть файл обработки

3. В поле "Каталог файлов конфигурации" указать путь к каталогу выгруженных файлов конфигурации

4. Нажать кнопку "Выполнить поиск"

5. В результате будет выполнен анализ файлов конфигурации и в дереве результата будут отображены неиспользуемые методы с группировкой по содержащим их общим модулям.

 

Несколько слов об алгоритме работы:

1. Общими модулями считаются файлы в подкаталоге \CommonModules выгруженной конфигурации

2. Имена экспортных методов выделяются из строк модулей, которые начинаются на слово "Процедура" или "Функция" и заканчиваются на слово "Экспорт" (пробелы в начале и в конце строки игнорируются).

3. Явным вызовом экспортного метода считается его вызов в виде ИмяОбщегоМодуля.ИмяМетода

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

 

Обработка разработана и протестирована на версии платформы 8.3.15.1830

Обработка неиспользуемых экспортных методов процедур функций общих модулей

См. также

Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

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

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    155600    327    252    

559

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42642    10    24    

38

Кто такая Мантикора?

Поиск данных Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    3240    andreysidor4uk    16    

46

PowerOffice

Поиск данных Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.06.2023    1972    23    PowerBoy    1    

15

Получение ссылки по бинарной строке PostgreSQL или MSSQL

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.

1 стартмани

04.04.2023    2637    2    berserg    2    

12

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

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка позволяет найти проведенные документы без движений и, наоборот, НЕ проведенные документы с движениями. Подходит для любой конфигурации.

1 стартмани

18.08.2022    3026    24    KVIKS    3    

10

Поиск и замена значений + Поиск дублирующихся элементов справочников с подключением к внешней базе

Поиск данных Корректировка данных Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

30.03.2022    8614    3    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 27.10.20 11:10
Сообщение было скрыто модератором.
...
2. RustIG 1556 27.10.20 11:45 Сейчас в теме
7. Yashazz 4722 28.10.20 21:13 Сейчас в теме
(2) Ничего особенного. Вывалить конфу в файлы и их рассмотреть - баян совершеннейший. У меня на этом куча решений основана. Например, построение графов взаимовызовов процедур и функций, или красивая схема процесса выполнения, с квадратиками и стрелочками.

И у меня ещё года 3 назад возникали те же проблемы по смыслу - как правильно рассматривать вызывающие, вызываемые, использование в фоновых, в СКД, через точку от контекста модуля, в обработке оповещения, итд. Я поэтому ещё тогда постыдился свою поделку выкладывать.

Круто было бы, если б автор действительно учёл все эти тонкости.

Автор, поиск-то хоть быстрый? Или через СтрНайти, да по всем модульным файлам?
EvGenius23; work.sable; +2 1
24. slknnk 67 08.02.21 14:21 Сейчас в теме
(7)
Автор, поиск-то хоть быстрый? Или через СтрНайти, да по всем модульным файлам?

А что за быстрый поиск можете объяснить?
+
25. Yashazz 4722 09.02.21 20:08 Сейчас в теме
(24) да что угодно, от regexp'a до поточного ЧтенияДанных по маркерам.
+
26. slknnk 67 09.02.21 20:18 Сейчас в теме
(25) Ну тут еще надо проверять, что быстрее.
+
28. Yashazz 4722 13.02.21 23:01 Сейчас в теме
(26) Спорить, конечно, не буду, но мне чтой-то подсказывает, что бинарно слепить N файлов воедино и поточно запилить поиск несколько быстрее, чем вычитывать их в ТекстовыйДокумент и там шариться с СтрНайти...
+
3. nomad_irk 72 27.10.20 11:48 Сейчас в теме
(0) В типовой ЗУП 3.1 часто замечаю конструкции похожего вида:

ОбщийМодуль = ОбщегоНазначения.ПолучитьИмяМенеджера(МенеджерРасчета);
ОбщийМодуль.ВыполнитьРасчетЧего-то-там();


Это к вопросу о типовом функционале проверки неиспользуемых процедур/функций.
SerVer1C; Irwin; RustIG; Yashazz; ipoloskov; +5
4. FatPanzer 27.10.20 12:37 Сейчас в теме
(3) Да вся БСП на этом построена...
cleaner_it; +1
6. tezin 574 27.10.20 14:28 Сейчас в теме
(3)
да эта обработка вообще ни разу не панацея конечно
типовые процедуры я бы по ее результатам точно не трогал ))
это скорее для нетиповых разработок, с тяжелой наследственностью особенно
мне помогло:
1. проверить и удалить целые общие модули, которые достались по наследству как перенесенные "заодно на всякий случай" безымянными предшественниками и были мягко говоря на подозрении
2. найти собственные экспортные методы, которые уже могут быть неэкспортными, т.к. в результате различных рефакторингов вызываются только из самого содержащего их модуля
короче - очередная лопата в руках 1С-ассинизатора )) но увы не комбайн-автомат
RustIG; +1
5. SlavaKron 27.10.20 13:07 Сейчас в теме
Плюс выражения вычисляемых полей СКД могут обращаться к экспортным функциям общих модулей. Еще ИмяМетода для менеджера фоновых заданий может собираться программно.
RustIG; Yashazz; +2
8. Yashazz 4722 28.10.20 21:22 Сейчас в теме
Ну, короче, поделка так себе. И конфу надо самому выгружать в каталог, и поиск топорный. Минусую.

...зря я тогда постеснялся свою выложить, ой зря...
10. RustIG 1556 29.10.20 05:01 Сейчас в теме
(8) все ваши "недочеты" сводятся в "задачи" (готовое ТЗ) - кто-то подхватит эстафетную палочку, и дорешает эти "задачи".
сделать первый шаг наиболее трудный, и автор его сделал за всех, представив такую версию реализации решения...
я поставил плюс (поддержал автора)
cleaner_it; kMidas; ixijixi; +3
12. tezin 574 29.10.20 08:36 Сейчас в теме
(10)
спасибо за поддержку ))
я правда на такие комментарии время не трачу, времени и так маловато на то на что его тратить интереснее ))
+
14. Yashazz 4722 29.10.20 12:01 Сейчас в теме
(10) Это не решение, это именно первый шаг, заготовка. А подаётся и выглядит, именно как законченное решение. Где в публикации написаны ограничения функционала, а? Некорректно как-то выходит. Качать-то будут, ожидая чудес.

"Трудный шаг за всех"? Где? Повторюсь, это элементарщина, которая пишется навскидку. Сделать поиск файлов в каталоге, открывать каждый, искать в нём конкретные подстроки, выводить результат. Где тут трудность, если речь не о зелёных пионэрах?
+
15. RustIG 1556 29.10.20 12:03 Сейчас в теме
(14)вы снова всем напомнили, что мир не идеален, и не все 1сники идеальны, и не у всех идеальные разработки :)
+
16. Yashazz 4722 29.10.20 12:04 Сейчас в теме
(15) Идеальных почти не бывает, да. Но есть ещё понятие уровня качества, оно у всех разное. Я сейчас вот не пожалел стартманю, скачал эту обработку и посмотрю её изнутри. По результатам отпишусь.
RustIG; +1 1
18. Yashazz 4722 29.10.20 12:15 Сейчас в теме
(16) Увы, чуда не случилось. Всё сделано даже ещё хуже, чем я ожидал. Рустем, посмотрите сами, это и правда поделка ниже плинтуса, ну объективно.
9. savostin.alex 83 29.10.20 02:01 Сейчас в теме
А вот так?
Прикрепленные файлы:
+
11. tezin 574 29.10.20 08:29 Сейчас в теме
(9)
экспортные не ищет увы ((
+
13. unichkin 1563 29.10.20 09:13 Сейчас в теме
А если есть внешний доп. отчет \ обработка, юзающий метод конфы?
+
19. tezin 574 29.10.20 13:16 Сейчас в теме
(13)
видимо исходя из этого "если" Конфигуратор и не занимается анализом "неиспользуемости" экспортных методов общих модулей
хотя строго говоря и неэкспортные методы, которые не вызываются в явном виде, так же могут быть реально использованы
у нас в решении есть несколько таких, но мы их не удаляем, т.к. точно знаем, что они вызываются через Выполнить(), например
также как и встроенный функционал 1С, данная обработка лишь вспомогательный инструмент, решение всегда за человеком
https://infostart.ru/1c/articles/1273522/ - вот тут хорошая статья с рекомендациями как отлавливать действительно не вызывавшиеся в течении длительного времени методы
unichkin; +1
17. пользователь 29.10.20 12:13
Сообщение было скрыто модератором.
...
20. unichkin 1563 29.10.20 20:43 Сейчас в теме
Ну... "Если" найдем якобы неиспользуемый экспортный метод, порежем, а потом окажется, что его юзала древняя доп. обработка которая помогает закрывать период главбуху клиента, и он как назло это делает в день, после обновления))
Не-экспортные методы - также могут быть использованы в расширениях.
В общем, я к тому что консистентность была бы наверное соблюдена при наличии опции "искать в внешних отчетах\обработках"
Спасибо за наводку на статью, хороший контент)
+
21. ilya2184 62 29.10.20 23:20 Сейчас в теме
Пользуйте АПК хотя бы раз в неделю.
"Первый шаг"... не ходите в ту сторону - там темно и страшно или позор.
А ещё скоро обещают в EDT новый статический анализатор когда.
+
22. triviumfan 93 02.11.20 11:43 Сейчас в теме
Для чего все это?
Не понимаю, неужели заняться больше нечем, чем искать неиспользуемые экспортные фукнции.
+
23. Константин С. 667 08.11.20 16:58 Сейчас в теме
Думаю стоит добавить, накой это надо....
Или просто потратил время на красивую задачу или это дало прирост скорости или уменьшился размер базы или дополни своим...
+
27. Yashazz 4722 13.02.21 23:00 Сейчас в теме
(23) Я свою такую использую для быстрого рассмотрения нужной механики. Она мне блок-схемы красиво строит, я сразу вижу, откуда что вызывается, куда какие переменные идут, где меняются, всё такое. Облегчает вникание в незнакомые места кода.
Или когда надо найти функцию/процедуру, делающую нечто, а в описании БСП об этом нифига, а свой велосипед пилить неохота.
+
29. Светлый ум 406 06.08.21 12:05 Сейчас в теме
Меню Конфигурация - Проверка конфигурации - полная проверка всех модулей

А резве средствами конфигурации неиспользуемые модули не проще искать: "Ошибки с текстом: Возможно ошибочный метод"?
+
30. sigma17 12 01.10.21 12:02 Сейчас в теме
Условие СтрЧислоВхождений(ТекстФайла, ЭкспортныйМетод.Представление) > 0 не совсем корректно ищет ссылку в том же общем модуле.

Добавил проверку
МассивИмен = СтрРазделить(ФайлКонфигурации.Путь,"\");
//Пометка в списке методов используется как признак используемости метода
Для каждого ЭкспортныйМетод Из СписокЭкспортныхМетодов Цикл

ОбработкаПрерыванияПользователя();

Если ЭкспортныйМетод.Пометка Тогда Продолжить КонецЕсли;

Если МассивИмен.Найти(ЭкспортныйМетод.Представление) = Неопределено Тогда
//в другом общем модуле ищем число вхождений больше 0
Если СтрЧислоВхождений(ТекстФайла, ЭкспортныйМетод.Значение) > 0 Тогда
ЭкспортныйМетод.Пометка = Истина;
КонецЕсли;

Иначе
//если тот же общий модуль, то 1 раз точно найдет, поэтому ищем число вхождений больше 1
Если СтрЧислоВхождений(ТекстФайла, ЭкспортныйМетод.Значение) > 1 Тогда
ЭкспортныйМетод.Пометка = Истина;
КонецЕсли;

КонецЕсли;
+
31. tezin 574 11.11.21 19:17 Сейчас в теме
(30) принято - исправлено - выложено
спасибо ))
+
Оставьте свое сообщение