Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

Иногда приходится создавать свои процедуры и функции (для отчета, обработки, доработки конфигурации), схожие с теми, которые уже есть в типовом решении. По причине нежелания лазить по всем общим модулям (а в тиражных продуктах типа БП и ЗУП их свыше тысячи) и выискивать нужную по функционалу решил собрать информацию по таким в текущей публикации (файлы Excel для свободного скачивания прилагаются), плюс добавил обработку, с помощью которой это можно проделать с любой конфигурацией (Штатно выгрузить файлы конфигурации в каталог и указать его в обработке). Если в конфигурации базы есть расширения, их нужно так же выгрузить в файлы и так же подгрузить после основной конфигурации (отметив флажок "Расширение").

Протестирована на платформе 1С 8.3.14.1630, конфигурация БП КОРП 3.0.70.61, ЗУП КОРП 3.1.10.50, УТ 11.4.8.73.

29 Comments

  1. EliasShy

    Отличная идея! Особенно понравились комментарии (описание) к функциям.

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

    Reply
  2. VmvLer

    не могу понять как это практически поможет в разработке?

    ну получу я на одном экране 21 000 тысячу методов в динамический список, ну прочту комментарий к методу

    а дальше что?

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

    Reply
  3. EliasShy

    (2) В первую очередь для того чтобы увидеть в виде 21000 тот балаган, который творится в типовой конфигурации.

    Для себя вижу использование как некий справочник, полезный при анализе существующей конфигурации.

    Reply
  4. SanchoD

    (2) Обычно процедура/функция начинается с какого-то значащего слова/словосочетания типа РассчитатьНДС, ПолучитьСведенияОСотруднике и т.д.

    И отсортировав по имени уже проще находить нужную. Ну а задав разные текстовые фильтры можно сузить выборку и на основании описания найти нужную.

    В конфигурации же придется зайти сначала в общий модуль (вот бы сразу догадаться в какой), а затем в нем найти процедуру/функцию. Поиск же по конфигурации выдаст такое количество записей и такую смесь, что замучаешься выбирать. Да и описания не видно — надо тыкать по строке и входить в модуль.

    Reply
  5. VmvLer

    (4) при глобальном поиске можно задать фильтр «ОбщиеМодули»

    Да не суть, просто мне проще работать с модулями там где они живут и где сделано очень много для работы с ними.

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

    В общем кроме «вау, как много методов» и возможности их отсортировать по именам — не вижу больше плюсов.

    Со мной можно не вступать в дебаты по поводу своих нетленок, т.к. мое амплуа — находить минусы,

    ведь плюсы сами найдутся, правда.

    Reply
  6. VmvLer

    (3) Ветка дерева «ОбщиеМодули» в конфигурации — тот же справочник, только вид сбоку.

    Reply
  7. Famza

    Идея норм, но часто в общих модулях есть крайне интересные процедуры/функции и они без экспорта.

    Reply
  8. SanchoD

    (7) К сожалению, их нельзя вызвать из своего кода, поэтому отбрасывал.

    Reply
  9. Famza

    (8) А если отпарсить текст выгруженных модулей?

    Reply
  10. SanchoD

    (9) Чтобы что из них получить и в каком виде представить?

    Reply
  11. Famza

    Коммента и имени не хватит? А потом и найти проще в конфигураторе ))

    Reply
  12. SanchoD

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

    Reply
  13. the1

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

    Reply
  14. Wolfis

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

    Reply
  15. philya

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

    Reply
  16. SanchoD

    (15) это да. Но тоже не идеальный вариант. Начнешь одну функцию тянуть, она на 3 другие ссылается, те, в свою очередь, еще на что-то. Так можно и полконфиги в свою обработку засунуть.

    Reply
  17. philya

    (16) обычно 5-6, выкидывая однострочные вызовы.

    Reply
  18. ivnik

    Добрый день! А у меня почему-то ТЗ остается пустой…..

    Reply
  19. SanchoD

    (18) Добрый день!

    Нужно сначала выгрузить конфигурацию в файлы:

    А затем в обработке указать каталог, куда были выгружены файлы. И это не должен быть каталог с базой.

    Reply
  20. ivnik

    (19) Большое Спасибо!

    Reply
  21. SanchoD

    (11) Добавил в обработку вариант выгрузки всех процедур/функций в ТЗ.

    Reply
  22. SanchoD

    Напишите ваше сообщение

    (14) Добавил возможность добавлять в ТЗ процедуры/функции расширений. В колонке «Описание» будет указана расширяемая процедура/функция и директива (Перед,Вместо,После).

    Reply
  23. SanchoD

    Уважаемые коллеги, обновил обработку и файлы excel. Стали опять платными. Написал модератору с просьбой сделать бесплатными.

    Следите за публикацией.

    Reply
  24. so-quest

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

    Из ошибок

    -Разобран может быть только код который прошел проверку на 1С-Совместимо

    -В текущем виде код не понимает английский язык-

    -Не верно ищутся ключевые слова (например для кода «ФункцияРаспределения = 0 «; будет ложное срабатывание, ну а код «функция х() экспорт» — вообще проскочит мимо

    -Некорректный расчет имен (между ключевым словом Процедура и именем может быть много текст (например комментарий)

    В общем есть к чему стремится. Если очень хочется решить задачу анализа текста модулей правильно — то либо смотри на открытый парсер языка 1С, либо реализуй собственный — но правильно.

    Reply
  25. SanchoD

    (24) Не получиться. Я уже так делал, удалили пост со сылкой.

    Насчет ошибок, спасибо, учту. В оправдание только хочу сказать, что те, кто пишет код общих модулей самостоятельно, вряд ли нуждается в такой помощи.

    А на тиражных продуктах ситуация с «функция х()» и комментариями между «Процедура» и ее именем приближается к 0.

    Reply
  26. so-quest

    Линк на репозиторий можно в тут в сообщении воткнуть.

    Для тиражных решений список функций получать не имеет смысла. БСП покрывает 98% потребностей (а документация по БСП — достаточно хороша). Подобное имеет смысл имено для самописок. А вот там — может быть что угодно, бо у программистов фантазия запределеьная

    Reply
  27. SanchoD

    (24) Исправил указанные ошибки (кроме последнего пункта, по-моему это треш вставлять комент между объявлением процедуры и ее именем). Скиньте мыло в личку, вышлю обновление.

    Reply
  28. so-quest

    то ли у меня руки кривые, то ли еще что — не могу тебе в личку написать. пишет что сообщение в отложеной группе.

    Почта wwall@yandex.ru

    Reply
  29. SanchoD

    (28) Отправил

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *