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

11.11.21

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

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

Файлы

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

 

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

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

180000 руб.

05.09.2025    5052    2    1    

3

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4710    16    1    

20

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    46872    32    15    

50

Учетные задачи Поиск данных Подбор и обработка объектов 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    468    2    0    

4

Поиск данных Программист Пользователь 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Умное сравнение табличных документов с визуальной подсветкой. В отличие от стандартного сравнения, обработка ищет отличия по ключевому значению, игнорируя сдвиги строк. Результат — цветовая маркировка добавленных, удаленных и измененных строк прямо в документе + точный лог расхождений по каждой ячейке.

1 стартмани

27.04.2026    1328    14    war41k    5    

16

Поиск данных Нейросети Программист Бесплатно (free)

Практический кейс исследовательской разработки (R&D) с использованием искусственного интеллекта и нейросетей в 1С для поиска по прайсам поставщиков. Рассматривается гибридный поиск (Hybrid Search: векторный + полнотекстовый), позволяющий находить товары по смыслу, а не по буквам — даже при сленге, опечатках и разном написании. Решение работает полностью локально, без облаков, и интегрируется с 1С.

14.01.2026    3265    Prepod2003    14    

13

Поиск данных 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

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

2 стартмани

18.08.2025    8207    39    sapervodichka    14    

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;
31. tezin 578 11.11.21 19:17 Сейчас в теме
(30) принято - исправлено - выложено
спасибо ))
Для отправки сообщения требуется регистрация/авторизация