Выгрузил все экспортные функции и процедур общих модулей ERP в Excel. Версия ERP 2.4.10.56. Пользуюсь для поиска нужных функций по контексту. Можно искать по описанию функции.
Алгоритм выгрузки следующий:
1. Через конфигуратор: Конфигурация — выгрузить конфигурацию в файлы… — выгружаем конфигурацию в каталог на компьтере.
2. Выполняем следующий код:
ПапкаМодулей = ПутьКПапкеСМодулями; // папка CommonModules в папке выгрузки
ТЗ2 = Новый ТаблицаЗначений;
ТЗ2.Колонки.Добавить("ИмяОбщегоМодуля");
ТЗ2.Колонки.Добавить("ИмяПроцедуры");
ТЗ2.Колонки.Добавить("НомерСтрокиМодуля");
ТЗ2.Колонки.Добавить("КодДляВставки");
ТЗ2.Колонки.Добавить("ТипСтроки");
ТЗ2.Колонки.Добавить("Описание");
ТЗ2.Колонки.Добавить("Экспорт");
МассивФайлов = НайтиФайлы(ПапкаМодулей, "*.bsl", Истина);
Для каждого Файл из МассивФайлов Цикл
ИмяФайла = Файл.ПолноеИмя;
ИмяМодуля = СтрЗаменить(ИмяФайла,ПапкаМодулей,"");
ПозицияСлэша = СтрНайти(ИмяМодуля,"");
ИмяМодуля = Лев(ИмяМодуля,ПозицияСлэша-1);
//Если СтрНайти(ИмяФайла,"УправлениеСвойствами") = 0 Тогда
// Продолжить;
//КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.Прочитать(ИмяФайла);
СтрокиОписанияФункции = Новый Массив;
СтрокиФункции = Новый Массив;
ЭтоИмяФункции = Ложь;
ТипСтроки = "";
Для Инд = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
Строка = СокрЛП(ТекстовыйДокумент.ПолучитьСтроку(Инд));
Если Лев(Строка,2) = "//" Тогда
СтрокиОписанияФункции.Добавить(СтрЗаменить(Строка,"//",""));
ИначеЕсли СтрНачинаетсяС(Строка,"Функция ") или СтрНачинаетсяС(Строка,"Процедура ") Тогда
НомерСтрокиМодуля = Инд;
ТипСтроки = ?(СтрНачинаетсяС(Строка,"Функция"),"Функция","Процедура");
ЭтоФункция = Истина;
ПозицияПробела = СтрНайти(Строка," ");
ПозицияСкобки = СтрНайти(Строка,"(");
ИмяФункции = СокрЛП(Сред(Строка,ПозицияПробела,ПозицияСкобки-ПозицияПробела));
КонецЕсли;
Если ПустаяСтрока(Строка) Тогда
СтрокиОписанияФункции.Очистить();
КонецЕсли;
// ищем закрытие скобки параметров
Если ЭтоФункция = Истина Тогда
СтрокиФункции.Добавить(Строка);
Если СтрНайти(Строка,")") > 0 Тогда
ЭкспортП = СтрНайти(Строка,"Экспорт") > 0;
ЭтоФункция = Ложь;
// сбрасываем все в строку таблицы
нСтрока = ТЗ2.Добавить();
нСтрока.Описание = СтрСоединить(СтрокиОписанияФункции,Символы.ПС);
нСтрока.ИмяОбщегоМодуля = ИмяМодуля;
нСтрока.ИмяПроцедуры = ИмяФункции;
нСтрока.НомерСтрокиМодуля = НомерСтрокиМодуля;
нСтрока.Экспорт = ЭкспортП;
СодержаниеСтроки = СокрЛП(СтрЗаменить(СтрСоединить(СтрокиФункции,""),"Экспорт",""));
нСтрока.ТипСтроки = ТипСтроки;
нСтрока.КодДляВставки = ИмяМодуля + "." + ИмяФункции + Сред(СодержаниеСтроки,СтрНайти(СодержаниеСтроки,"("));
СтрокиФункции.Очистить();
СтрокиОписанияФункции.Очистить();
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
ТЗ2 потом сохраняете куда нужно. Я использую обработку //infostart.ru/public/610812/ и загружаю в табличную часть из которой сохраняю в Excel, вы можете выгружать куда привыкли. Выгрузка модулей удобно для исследования БСП и методов, которые используются в конфигурации, чтобы не придумывать велосипед.
Для примера несколько функций модулей общего назначения:
ЭтоOSXКлиент |
КлиентПодключенЧерезВебСервер |
РежимОтладки |
СкопироватьРекурсивно |
ПоказатьПодтверждениеЗакрытияФормы |
ДополнитьСоответствие |
ЕстьРеквизитИлиСвойствоОбъекта |
УдалитьВсеВхожденияЗначенияИзМассива |
УдалитьВсеВхожденияТипаИзМассива |
УдалитьЗначениеИзМассива |
СвернутьМассив |
РазностьМассивов |
СпискиЗначенийИдентичны |
ЗначениеВМассиве |
КлючиСтруктурыВСтроку |
СвойствоСтруктуры |
ПустойУникальныйИдентификатор |