Все экспортные процедуры ERP в Excel

Просто выгрузка всех экспортных процедур общих модулей ERP в Excel.

Выгрузил все экспортные функции и процедур общих модулей 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Клиент
КлиентПодключенЧерезВебСервер
РежимОтладки
СкопироватьРекурсивно
ПоказатьПодтверждениеЗакрытияФормы
ДополнитьСоответствие
ЕстьРеквизитИлиСвойствоОбъекта
УдалитьВсеВхожденияЗначенияИзМассива
УдалитьВсеВхожденияТипаИзМассива
УдалитьЗначениеИзМассива
СвернутьМассив
РазностьМассивов
СпискиЗначенийИдентичны
ЗначениеВМассиве
КлючиСтруктурыВСтроку
СвойствоСтруктуры
ПустойУникальныйИдентификатор

Leave a Comment

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