ПутьКДокам = "./docs/ru/md"; ПутьКПримерам = "./docs/ru/examples/"; ПутьКРезультатам = "./docs/ru/results/"; КаталогиБиблиотек = НайтиФайлы(ПутьКДокам, "*", Ложь); Для Каждого Каталог Из КаталогиБиблиотек Цикл ФайлыДокументации = НайтиФайлы(Каталог.ПолноеИмя, "*.md", Истина); ИмяБиблиотеки = Каталог.Имя; Для Каждого Документ Из ФайлыДокументации Цикл ТекущийДокумент = Новый ТекстовыйДокумент(); ТекущийДокумент.Прочитать(Документ.ПолноеИмя, "UTF-8"); ЗаписьПримера = Ложь; ЗаписьРезультата = Ложь; Пример = ""; Результат = ""; ИмяФункции = ""; Для Н = 1 По ТекущийДокумент.КоличествоСтрок() Цикл ТекущаяСтрока = СокрЛП(ТекущийДокумент.ПолучитьСтроку(Н)); Если СтрНачинаетсяС(ТекущаяСтрока, "*Функция ") Или СтрНачинаетсяС(ТекущаяСтрока, "Функция ") Тогда ИмяФункции = СтрЗаменить(ТекущаяСтрока, "*Функция ", ""); ИмяФункции = СтрЗаменить(ИмяФункции, "Функция ", ""); ИмяФункции = Лев(ИмяФункции, СтрНайти(ИмяФункции, "(") - 1); КонецЕсли; Если СтрНачинаетсяС(ТекущаяСтрока, "```bsl") Тогда ЗаписьПримера = Истина; ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "```json") Тогда ЗаписьРезультата = Истина; ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "```") Тогда ЗаписьРезультата = Ложь; ЗаписьПримера = Ложь; Иначе Если ЗаписьПримера Тогда Пример = Пример + " " + ТекущаяСтрока + Символы.ПС; КонецЕсли; Если ЗаписьРезультата Тогда Результат = Результат + " " + ТекущаяСтрока + Символы.ПС; КонецЕсли; КонецЕсли; КонецЦикла; Если Не ЗначениеЗаполнено(ИмяФункции) Тогда Сообщить("Документ без имени функции: " + Документ.ПолноеИмя); Продолжить; КонецЕсли; Если ЗначениеЗаполнено(СокрЛП(Результат)) Тогда ПутьБиблиотеки = ПутьКРезультатам + СтрЗаменить(ИмяБиблиотеки, "_", ""); КаталогБиблиотеки = Новый Файл(ПутьБиблиотеки); Если Не КаталогБиблиотеки.Существует() Тогда СоздатьКаталог(ПутьБиблиотеки); КонецЕсли; ПутьРезультата = ПутьБиблиотеки + "/" + ИмяФункции + ".log"; ФайлРезультата = Новый Файл(ПутьРезультата); Если ФайлРезультата.Существует() Тогда Сообщить("Файл результата существует: " + ПутьРезультата); Иначе ДокументРезультата = Новый ТекстовыйДокумент(); ДокументРезультата.УстановитьТекст(Результат); ДокументРезультата.Записать(ПутьРезультата); Сообщить("Файл результата записан: " + ПутьРезультата); КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(СокрЛП(Пример)) Тогда ПутьБиблиотеки = ПутьКПримерам + СтрЗаменить(ИмяБиблиотеки, "_", ""); КаталогБиблиотеки = Новый Файл(ПутьБиблиотеки); Если Не КаталогБиблиотеки.Существует() Тогда СоздатьКаталог(ПутьБиблиотеки); КонецЕсли; ПутьПримера = ПутьБиблиотеки + "/" + ИмяФункции + ".txt"; ФайлПримера = Новый Файл(ПутьПримера); Если ФайлПримера.Существует() Тогда Сообщить("Файл примера существует: " + ПутьПримера); Иначе ДокументПримера = Новый ТекстовыйДокумент(); ДокументПримера.УстановитьТекст(Пример); ДокументПримера.Записать(ПутьПримера); Сообщить("Файл примера записан: " + ПутьПримера); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;