Иногда приходится создавать свои процедуры и функции (для отчета, обработки, доработки конфигурации), схожие с теми, которые уже есть в типовом решении. По причине нежелания лазить по всем общим модулям (а в тиражных продуктах типа БП и ЗУП их свыше тысячи) и выискивать нужную по функционалу решил собрать информацию по таким в текущей публикации (файлы Excel для свободного скачивания прилагаются), плюс добавил обработку, с помощью которой это можно проделать с любой конфигурацией (Штатно выгрузить файлы конфигурации в каталог и указать его в обработке). Если в конфигурации базы есть расширения, их нужно так же выгрузить в файлы и так же подгрузить после основной конфигурации (отметив флажок "Расширение").
Протестирована на платформе 1С 8.3.14.1630, конфигурация БП КОРП 3.0.70.61, ЗУП КОРП 3.1.10.50, УТ 11.4.8.73.
Отличная идея! Особенно понравились комментарии (описание) к функциям.
Раньше к WinApi была такая программа, которая описывала функции, сейчас, видимо, для типовых конфигураций подобное необходимо.
не могу понять как это практически поможет в разработке?
ну получу я на одном экране 21 000 тысячу методов в динамический список, ну прочту комментарий к методу
а дальше что?
В конфигурации ведь проще видеть имена общих модулей, пользоваться поиском, группировками и т.д.
(2) В первую очередь для того чтобы увидеть в виде 21000 тот балаган, который творится в типовой конфигурации.
Для себя вижу использование как некий справочник, полезный при анализе существующей конфигурации.
(2) Обычно процедура/функция начинается с какого-то значащего слова/словосочетания типа РассчитатьНДС, ПолучитьСведенияОСотруднике и т.д.
И отсортировав по имени уже проще находить нужную. Ну а задав разные текстовые фильтры можно сузить выборку и на основании описания найти нужную.
В конфигурации же придется зайти сначала в общий модуль (вот бы сразу догадаться в какой), а затем в нем найти процедуру/функцию. Поиск же по конфигурации выдаст такое количество записей и такую смесь, что замучаешься выбирать. Да и описания не видно — надо тыкать по строке и входить в модуль.
(4) при глобальном поиске можно задать фильтр «ОбщиеМодули»
Да не суть, просто мне проще работать с модулями там где они живут и где сделано очень много для работы с ними.
Другое дело, что некоторые не знают как быстро манипулировать с методами в конфигурации.
В общем кроме «вау, как много методов» и возможности их отсортировать по именам — не вижу больше плюсов.
Со мной можно не вступать в дебаты по поводу своих нетленок, т.к. мое амплуа — находить минусы,
ведь плюсы сами найдутся, правда.
(3) Ветка дерева «ОбщиеМодули» в конфигурации — тот же справочник, только вид сбоку.
Идея норм, но часто в общих модулях есть крайне интересные процедуры/функции и они без экспорта.
(7) К сожалению, их нельзя вызвать из своего кода, поэтому отбрасывал.
(8) А если отпарсить текст выгруженных модулей?
(9) Чтобы что из них получить и в каком виде представить?
Коммента и имени не хватит? А потом и найти проще в конфигураторе ))
(11) Так я их специально отфильтровывал, чтобы не захламлять и так большой список. Как вариант, могу сделать опцией в обработке. Вот только проблема с обновление публикации. Мне сделали, в виде исключения, возможность выложить эксельки бесплатно. Но после обновления публикации они вновь станут платными.
(12) Есть такое. Каждый раз после обновления публикации делайте запрос модератору, чтобы сделал их бесплатными.
как вариант использования вижу доработку: сравнивать с заимственными методами в расширение. чтоб хотя бы проанализировать какие процедуры-функции переименовали, или добавили параметров.
Стараюсь тащить код целиком из конфигурации в обработку или расширение, потому что через год другой что-нибудь сломается в рамках очередной оптимизации и придется снова искать методы. Структура базы данных обладает большей стабильностью )
(15) это да. Но тоже не идеальный вариант. Начнешь одну функцию тянуть, она на 3 другие ссылается, те, в свою очередь, еще на что-то. Так можно и полконфиги в свою обработку засунуть.
(16) обычно 5-6, выкидывая однострочные вызовы.
Добрый день! А у меня почему-то ТЗ остается пустой…..
(18) Добрый день!
Нужно сначала выгрузить конфигурацию в файлы:
А затем в обработке указать каталог, куда были выгружены файлы. И это не должен быть каталог с базой.
(19) Большое Спасибо!
(11) Добавил в обработку вариант выгрузки всех процедур/функций в ТЗ.
Напишите ваше сообщение
(14) Добавил возможность добавлять в ТЗ процедуры/функции расширений. В колонке «Описание» будет указана расширяемая процедура/функция и директива (Перед,Вместо,После).
Уважаемые коллеги, обновил обработку и файлы excel. Стали опять платными. Написал модератору с просьбой сделать бесплатными.
Следите за публикацией.
Если хочешь бесплатно распространять — проще на гитхабе завести репозиторий, а тут опубликовать ссылку. Дополнительным плюсом будет то что появятся единомышленики которые помогут переписать твой код.
Из ошибок
-Разобран может быть только код который прошел проверку на 1С-Совместимо
-В текущем виде код не понимает английский язык-
-Не верно ищутся ключевые слова (например для кода «ФункцияРаспределения = 0 «; будет ложное срабатывание, ну а код «функция х() экспорт» — вообще проскочит мимо
-Некорректный расчет имен (между ключевым словом Процедура и именем может быть много текст (например комментарий)
В общем есть к чему стремится. Если очень хочется решить задачу анализа текста модулей правильно — то либо смотри на открытый парсер языка 1С, либо реализуй собственный — но правильно.
(24) Не получиться. Я уже так делал, удалили пост со сылкой.
Насчет ошибок, спасибо, учту. В оправдание только хочу сказать, что те, кто пишет код общих модулей самостоятельно, вряд ли нуждается в такой помощи.
А на тиражных продуктах ситуация с «функция х()» и комментариями между «Процедура» и ее именем приближается к 0.
Линк на репозиторий можно в тут в сообщении воткнуть.
Для тиражных решений список функций получать не имеет смысла. БСП покрывает 98% потребностей (а документация по БСП — достаточно хороша). Подобное имеет смысл имено для самописок. А вот там — может быть что угодно, бо у программистов фантазия запределеьная
(24) Исправил указанные ошибки (кроме последнего пункта, по-моему это треш вставлять комент между объявлением процедуры и ее именем). Скиньте мыло в личку, вышлю обновление.
то ли у меня руки кривые, то ли еще что — не могу тебе в личку написать. пишет что сообщение в отложеной группе.
Почта wwall@yandex.ru
(28) Отправил