diff --git a/v8files-extractor.os b/v8files-extractor.os
index e0fddd9..d5bec6e 100644
--- a/v8files-extractor.os
+++ b/v8files-extractor.os
@@ -807,7 +807,11 @@
 	Если Рекурсивно Тогда
 		СобратьКаталог(ПутьКИсходникам, КаталогВыгрузки);
 	Иначе
-		СобратьФайл(ПутьКИсходникам, КаталогВыгрузки);
+		Если ЭтоПутьКИсходнымКодамРасширения(ПапкаИсходников) Тогда
+			СобратьРасширение(ПутьКИсходникам, КаталогВыгрузки);
+		Иначе
+			СобратьФайл(ПутьКИсходникам, КаталогВыгрузки);
+		КонецЕсли;
 	КонецЕсли;
 
 КонецПроцедуры
@@ -826,7 +830,9 @@
 			Продолжить;
 		КонецЕсли;
 
-		Если ЭтоПутьКИсходнымКодамОбработок(Файл) Тогда
+		Если ЭтоПутьКИсходнымКодамРасширения(Файл) Тогда
+			СобратьРасширение(Файл.ПолноеИмя, КаталогВыгрузки);
+		ИначеЕсли ЭтоПутьКИсходнымКодамОбработок(Файл) Тогда
 			СобратьФайл(Файл.ПолноеИмя, КаталогВыгрузки);
 		Иначе
 			НовыйПутьВыгрузки = ОбъединитьПути(КаталогВыгрузки, Файл.Имя);
@@ -892,6 +898,51 @@
 
 КонецФункции
 
+Функция СобратьРасширение(Знач ПутьКИсходникам, Знач КаталогВыгрузки)
+
+	ПапкаИсходников = Новый Файл(ПутьКИсходникам);
+	ИмяПапки = ПапкаИсходников.Имя;
+
+	Лог.Информация("Собираю исходники <%1>", ПутьКИсходникам);
+
+	Конфигуратор = Новый УправлениеКонфигуратором();
+	Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда
+		Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы);
+	КонецЕсли;
+	Если КонтекстКонфигуратора = Неопределено Тогда
+		КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
+		Конфигуратор.КаталогСборки(КаталогВременнойИБ);
+	Иначе
+		Конфигуратор.ИспользоватьКонтекст(КонтекстКонфигуратора);
+	КонецЕсли;
+
+	УстановитьУровеньЛогаКонфигуратораРавнымУровнюПродукта();
+
+	ИмяРасширения = ИмяПапки;
+	ИмяФайлаОбъекта = ОбъединитьПути(ТекущийКаталог(), КаталогВыгрузки, ИмяПапки + ".cfe");
+
+	// Удалить расширения
+	Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
+	Параметры.Добавить("/DeleteCfg");
+	Параметры.Добавить("-AllExtensions");
+	Конфигуратор.ВыполнитьКоманду(Параметры);
+
+	// Загрузить из файлов
+	Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
+	Параметры.Добавить("/LoadConfigFromFiles """ + ПутьКИсходникам + """");
+	Параметры.Добавить("-Extension """ + ИмяРасширения + """");
+	Конфигуратор.ВыполнитьКоманду(Параметры);
+
+	// Сохранить в файл
+	Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
+	Параметры.Добавить("/DumpCfg """ + ИмяФайлаОбъекта + """");
+	Параметры.Добавить("-Extension """ + ИмяРасширения + """");
+	Конфигуратор.ВыполнитьКоманду(Параметры);
+
+	Лог.Информация("Успешно собрано расширение "+ИмяРасширения);
+
+КонецФункции
+
 Функция ЭтоПутьКИсходнымКодамОбработок(ПапкаИсходников)
 
 	Если ИспользоватьКонфигуратор Тогда
@@ -904,6 +955,19 @@
 
 КонецФункции
 
+Функция ЭтоПутьКИсходнымКодамРасширения(ПапкаИсходников)
+
+	ПутьКФайлуКонфиг = ОбъединитьПути(ПапкаИсходников.ПолноеИмя, "Configuration.xml")
+	ПутьКФайлуДампИнфо = ОбъединитьПути(ПапкаИсходников.ПолноеИмя, "ConfigDumpInfo.xml")
+
+	ФайлРасширение = Новый Файл(ПутьКФайлуКонфиг);
+	ФайлРасширение2 = Новый Файл(ПутьКФайлуДампИнфо);
+	ЭтоРасширение = ФайлРасширение.Существует() И ФайлРасширение2.Существует();
+
+	Возврат ЭтоРасширение;
+
+КонецФункции
+
 Функция ЭтоПутьКТолстойФорме(ПутьКПапке)
 
 	ФайлМодуля = Новый Файл(ОбъединитьПути(ПутьКПапке, "module.bsl"));