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

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)

9600 руб.

14.05.2012    155308    326    252    

558

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

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

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

19200 руб.

15.05.2017    42524    10    24    

38

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

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

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

1 стартмани

30.11.2023    3068    andreysidor4uk    16    

46

PowerOffice

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

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

1 стартмани

05.06.2023    1924    23    PowerBoy    1    

15

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

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

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

1 стартмани

04.04.2023    2583    2    berserg    2    

12

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

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

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

1 стартмани

18.08.2022    2986    21    KVIKS    3    

10

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

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

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

3600 руб.

30.03.2022    8586    3    0    

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

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

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

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

А что за быстрый поиск можете объяснить?
25. Yashazz 4709 09.02.21 20:08 Сейчас в теме
(24) да что угодно, от regexp'a до поточного ЧтенияДанных по маркерам.
26. slknnk 65 09.02.21 20:18 Сейчас в теме
(25) Ну тут еще надо проверять, что быстрее.
28. Yashazz 4709 13.02.21 23:01 Сейчас в теме
(26) Спорить, конечно, не буду, но мне чтой-то подсказывает, что бинарно слепить N файлов воедино и поточно запилить поиск несколько быстрее, чем вычитывать их в ТекстовыйДокумент и там шариться с СтрНайти...
3. nomad_irk 71 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С-ассинизатора )) но увы не комбайн-автомат
5. SlavaKron 27.10.20 13:07 Сейчас в теме
Плюс выражения вычисляемых полей СКД могут обращаться к экспортным функциям общих модулей. Еще ИмяМетода для менеджера фоновых заданий может собираться программно.
RustIG; Yashazz; +2 Ответить
8. Yashazz 4709 28.10.20 21:22 Сейчас в теме
Ну, короче, поделка так себе. И конфу надо самому выгружать в каталог, и поиск топорный. Минусую.

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

"Трудный шаг за всех"? Где? Повторюсь, это элементарщина, которая пишется навскидку. Сделать поиск файлов в каталоге, открывать каждый, искать в нём конкретные подстроки, выводить результат. Где тут трудность, если речь не о зелёных пионэрах?
15. RustIG 1382 29.10.20 12:03 Сейчас в теме
(14)вы снова всем напомнили, что мир не идеален, и не все 1сники идеальны, и не у всех идеальные разработки :)
16. Yashazz 4709 29.10.20 12:04 Сейчас в теме
(15) Идеальных почти не бывает, да. Но есть ещё понятие уровня качества, оно у всех разное. Я сейчас вот не пожалел стартманю, скачал эту обработку и посмотрю её изнутри. По результатам отпишусь.
18. Yashazz 4709 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 1559 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 1559 29.10.20 20:43 Сейчас в теме
Ну... "Если" найдем якобы неиспользуемый экспортный метод, порежем, а потом окажется, что его юзала древняя доп. обработка которая помогает закрывать период главбуху клиента, и он как назло это делает в день, после обновления))
Не-экспортные методы - также могут быть использованы в расширениях.
В общем, я к тому что консистентность была бы наверное соблюдена при наличии опции "искать в внешних отчетах\обработках"
Спасибо за наводку на статью, хороший контент)
21. ilya2184 62 29.10.20 23:20 Сейчас в теме
Пользуйте АПК хотя бы раз в неделю.
"Первый шаг"... не ходите в ту сторону - там темно и страшно или позор.
А ещё скоро обещают в EDT новый статический анализатор когда.
22. triviumfan 93 02.11.20 11:43 Сейчас в теме
Для чего все это?
Не понимаю, неужели заняться больше нечем, чем искать неиспользуемые экспортные фукнции.
23. Константин С. 666 08.11.20 16:58 Сейчас в теме
Думаю стоит добавить, накой это надо....
Или просто потратил время на красивую задачу или это дало прирост скорости или уменьшился размер базы или дополни своим...
27. Yashazz 4709 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) принято - исправлено - выложено
спасибо ))
Оставьте свое сообщение