├── setup.os ├── setuprepo.os ├── autotest.os ├── autotestclone.os ├── CreateCompareReport.os ├── setupgitclone.os ├── setupjsonbehavior.os ├── README.md ├── testclone.os └── createdevelopbase.os /setup.os: -------------------------------------------------------------------------------- 1 | #Использовать cmdline 2 | 3 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 4 | Парсер.ДобавитьПараметр("repo"); 5 | 6 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 7 | 8 | Если ЗначениеЗаполнено(Параметры["repo"]) Тогда 9 | Репо = Параметры["repo"]; 10 | Иначе 11 | Репо = ""; 12 | КонецЕсли; 13 | 14 | ЗапуститьПриложение("oscript setupgitclone.os "+Репо, ,Истина); 15 | ЗапуститьПриложение("oscript setupjsonbehavior.os", ,); 16 | ЗапуститьПриложение("oscript setupjsonbehavior.os \testclone", ,); 17 | -------------------------------------------------------------------------------- /setuprepo.os: -------------------------------------------------------------------------------- 1 | #Использовать cmdline 2 | 3 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 4 | Парсер.ДобавитьПараметр("repo"); 5 | 6 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 7 | 8 | Если ЗначениеЗаполнено(Параметры["repo"]) Тогда 9 | Репо = Параметры["repo"]; 10 | Иначе 11 | Репо = ""; 12 | КонецЕсли; 13 | 14 | _текущийКаталог = ТекущийКаталог(); 15 | 16 | //Загружаем все необходимое с github 17 | Если ЗначениеЗаполнено(Репо) Тогда 18 | ЗапуститьПриложение("git clone "+Репо+" ./develop"); 19 | Иначе 20 | ЗапуститьПриложение("git clone https://github.com/cybjavax/vanessa-bootstrap-1cBuildPackTemplate.git ./develop"); 21 | КонецЕсли; -------------------------------------------------------------------------------- /autotest.os: -------------------------------------------------------------------------------- 1 | #Использовать v8runner 2 | 3 | Функция ОбернутьВКавычки(Знач Строка); 4 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 5 | Возврат Строка; 6 | Иначе 7 | Возврат """" + Строка + """"; 8 | КонецЕсли; 9 | КонецФункции 10 | 11 | _текущийКаталог = ТекущийКаталог(); 12 | _каталогБазыРазработки = _текущийКаталог+"\1cbases\develop"; 13 | _ванессаБихавиорОбработка = "c:/repo/vanessa-behavior/vanessa-behavior.epf"; 14 | 15 | УстановитьТекущийКаталог(_текущийКаталог); 16 | 17 | УдалитьФайлы("./allurereport","*.xml"); 18 | УдалитьФайлы("./allurereport/allure-report"); 19 | 20 | Конфигуратор = Новый УправлениеКонфигуратором(); 21 | Конфигуратор.УстановитьКонтекст("/F"+_каталогБазыРазработки, "admin", ""); 22 | Конфигуратор.ЗапуститьВРежимеПредприятия(,Истина,СтрШаблон(" /Execute "+_ванессаБихавиорОбработка+" /C %1", ОбернутьВКавычки("StartFeaturePlayer;VBParams="+_текущийКаталог+"\autotest.json"))); 23 | 24 | ЗапуститьПриложение("allure generate ./allurereport -o ./allurereport/allure-report", ,Истина); 25 | ЗапуститьПриложение("allure report open -o ./allurereport/allure-report", ,Истина); -------------------------------------------------------------------------------- /autotestclone.os: -------------------------------------------------------------------------------- 1 | #Использовать v8runner 2 | 3 | Функция ОбернутьВКавычки(Знач Строка); 4 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 5 | Возврат Строка; 6 | Иначе 7 | Возврат """" + Строка + """"; 8 | КонецЕсли; 9 | КонецФункции 10 | 11 | _текущийКаталог = ТекущийКаталог()+"/testclone"; 12 | _текущийКаталогДев = ТекущийКаталог()+"/develop"; 13 | _каталогБазыРазработки = _текущийКаталог+"/1cbases/develop"; 14 | _ванессаБихавиорОбработка = ТекущийКаталог()+"/tools/behavior/vanessa-behavior.epf"; 15 | 16 | //УстановитьТекущийКаталог(_текущийКаталог); 17 | 18 | УдалитьФайлы("./develop/allurereport","*.xml"); 19 | УдалитьФайлы("./develop/allurereport/allure-report"); 20 | 21 | Конфигуратор = Новый УправлениеКонфигуратором(); 22 | Конфигуратор.УстановитьКонтекст("/F"+_каталогБазыРазработки, "admin", ""); 23 | Конфигуратор.ЗапуститьВРежимеПредприятия(,Истина,СтрШаблон(" /Execute "+_ванессаБихавиорОбработка+" /C %1", ОбернутьВКавычки("StartFeaturePlayer;VBParams="+_текущийКаталогДев+"\autotestclone.json"))); 24 | 25 | ЗапуститьПриложение("allure generate ./develop/allurereport -o ./develop/allurereport/allure-report", ,Истина); 26 | ЗапуститьПриложение("allure report open -o ./develop/allurereport/allure-report", ,Истина); -------------------------------------------------------------------------------- /CreateCompareReport.os: -------------------------------------------------------------------------------- 1 | #Использовать v8runner 2 | #Использовать cmdline 3 | 4 | Функция ОбернутьВКавычки(Знач Строка); 5 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 6 | Возврат Строка; 7 | Иначе 8 | Возврат """" + Строка + """"; 9 | КонецЕсли; 10 | КонецФункции 11 | 12 | Процедура ПолучитьОтчетОСравнении(Знач ФайлКонфигурации, Знач ФайлОтчета, Знач Конф) 13 | Параметры = Конф.ПолучитьПараметрыЗапуска(); 14 | Параметры.Добавить(СтрШаблон("/CompareCfg -FirstConfigurationType DBConfiguration -SecondConfigurationType File -SecondConfigurationKey %1 -IncludeChangedObjects -IncludeDeletedObjects -IncludeAddedObjects -ReportType Full -ReportFormat txt -ReportFile %2", ОбернутьВКавычки(ФайлКонфигурации), ОбернутьВКавычки(ФайлОтчета))); 15 | Конф.ВыполнитьКоманду(Параметры); 16 | КонецПроцедуры 17 | 18 | _текущийКаталог = ТекущийКаталог(); 19 | 20 | _каталогРазработки = _текущийКаталог+"/develop"; 21 | _каталогКлона = _текущийКаталог+"/testclone"; 22 | 23 | _каталогОсновнойБазыРазработки = _каталогРазработки+"/1cbases/develop"; 24 | 25 | _конфигурацияДляСравнения = _каталогКлона+"/cfs/develop.cf"; 26 | _файлОтчета = _каталогРазработки+"/CompareReport.txt"; 27 | 28 | Конфигуратор = Новый УправлениеКонфигуратором(); 29 | Конфигуратор.УстановитьКонтекст("/F"+_каталогОсновнойБазыРазработки, "admin", ""); 30 | ПолучитьОтчетОСравнении(_конфигурацияДляСравнения, _файлОтчета, Конфигуратор); 31 | Сообщить("Получил отчет о сравнении..."); -------------------------------------------------------------------------------- /setupgitclone.os: -------------------------------------------------------------------------------- 1 | #Использовать cmdline 2 | 3 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 4 | Парсер.ДобавитьПараметр("repo"); 5 | Парсер.ДобавитьПараметр("devonly"); 6 | 7 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 8 | 9 | Если ЗначениеЗаполнено(Параметры["repo"]) Тогда 10 | Репо = Параметры["repo"]; 11 | Иначе 12 | Репо = ""; 13 | КонецЕсли; 14 | 15 | Если ЗначениеЗаполнено(Параметры["devonly"]) Тогда 16 | ТолькоРепо = Параметры["devonly"]; 17 | Иначе 18 | ТолькоРепо = ""; 19 | КонецЕсли; 20 | 21 | _текущийКаталог = ТекущийКаталог(); 22 | 23 | //Загружаем все необходимое с github 24 | Если ЗначениеЗаполнено(Репо) Тогда 25 | ЗапуститьПриложение("git clone "+Репо+" ./develop"); 26 | Иначе 27 | ЗапуститьПриложение("git clone https://github.com/cybjavax/vanessa-bootstrap-1cBuildPackTemplate.git ./develop"); 28 | КонецЕсли; 29 | 30 | Если ЗначениеЗаполнено(ТолькоРепо) Тогда 31 | Иначе 32 | ЗапуститьПриложение("git clone https://github.com/EvilBeaver/oscript-library.git ./tools/onescript -b develop", ,Истина); 33 | УстановитьТекущийКаталог(_текущийКаталог+"/tools/onescript"); 34 | ЗапуститьПриложение("git submodule update --init --recursive"); 35 | УстановитьТекущийКаталог(_текущийКаталог); 36 | 37 | ЗапуститьПриложение("git clone https://github.com/silverbulleters/vanessa-bdd-editor.git ./tools/bdd-editor -b develop"); 38 | ЗапуститьПриложение("git clone https://github.com/silverbulleters/vanessa-behavior.git ./tools/behavior -b develop", ,Истина); //дольше всех грузится 39 | КонецЕсли; -------------------------------------------------------------------------------- /setupjsonbehavior.os: -------------------------------------------------------------------------------- 1 | #Использовать logos 2 | #Использовать cmdline 3 | 4 | Функция ОбернутьВКавычки(Знач Строка); 5 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 6 | Возврат Строка; 7 | Иначе 8 | Возврат """" + Строка + """"; 9 | КонецЕсли; 10 | КонецФункции 11 | 12 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 13 | Парсер.ДобавитьПараметр("testclone"); 14 | 15 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 16 | 17 | Если ЗначениеЗаполнено(Параметры["testclone"]) Тогда 18 | Ветка = Параметры["testclone"]; 19 | Иначе 20 | Ветка = "\develop"; 21 | КонецЕсли; 22 | Сообщить(Ветка); 23 | 24 | _текущийКаталог = ТекущийКаталог(); 25 | _КаталогРазработки = _текущийКаталог+"\develop"; 26 | 27 | //создадим файл .json для автотеста, т.к. надо прописать существующие пути 28 | ФайлНастроекБихавиор = Новый ТекстовыйДокумент(); 29 | ФайлНастроекБихавиор.Очистить(); 30 | ФайлНастроекБихавиор.ДобавитьСтроку("{"); 31 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("КаталогФич"), ОбернутьВКавычки(_КаталогРазработки+"\features"))); 32 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("ВыполнитьСценарии"), ОбернутьВКавычки("Истина"))); 33 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("ДелатьОтчетВФорматеАллюр"), ОбернутьВКавычки("Истина"))); 34 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("КаталогOutputAllureБазовый"), ОбернутьВКавычки(_КаталогРазработки+"\allurereport"))); 35 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("ЗавершитьРаботуСистемы"), ОбернутьВКавычки("Истина"))); 36 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("ВыгружатьСтатусВыполненияСценариевВФайл"), ОбернутьВКавычки("Истина"))); 37 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1: %2,", ОбернутьВКавычки("ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев"), ОбернутьВКавычки(_КаталогРазработки+"\BuildStatus.log"))); 38 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1:[", ОбернутьВКавычки("СписокТеговИсключение"))); 39 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1,", ОбернутьВКавычки("IgnoreOnCIMainBuild"))); 40 | ФайлНастроекБихавиор.ДобавитьСтроку(СтрШаблон("%1,", ОбернутьВКавычки("Draft"))); 41 | ФайлНастроекБихавиор.ДобавитьСтроку("]"); 42 | ФайлНастроекБихавиор.ДобавитьСтроку("}"); 43 | 44 | Если Ветка = "\develop" Тогда 45 | ФайлНастроекБихавиор.Записать(_КаталогРазработки+"\autotest.json"); 46 | Иначе 47 | ФайлНастроекБихавиор.Записать(_КаталогРазработки+"\autotestclone.json"); 48 | КонецЕсли; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 1cBuildPack # 2 | 3 | Набор скриптов для сборки конфигурации из ЧАСТИ XML-файлов, которые были получены при выгрузке конфигурации в файлы XML. В репозитории хранится не вся конфигурация (т.к. даже не самые сложные в XML весят 700+ Мб), а только те файлы, которые были затронуты доработками. 4 | 5 | ### Приблизительные сферы применения ### 6 | 7 | * хранение в репозиториях только изменений конфигурации без выкладки типового кода 1С (даже небольшие конфигурации типа УНФ весят 700+ Мб в XML) 8 | * автоматическое формирование частичных сборок для передачи внешним подрядчикам 9 | * тестирование итоговых сборок 10 | 11 | ### Требует ### 12 | 13 | * [Git](https://git-scm.com/) 14 | * [Allure](https://github.com/allure-framework/allure1/releases) 15 | * [OneScript](http://oscript.io/) 16 | 17 | ### Тестовый запуск ### 18 | 19 | * setup.os - качает tools и деморепозиторий. 20 | 21 | Детали: Качает [BDDEditor](https://github.com/silverbulleters/vanessa-bdd-editor), [Behavior](https://github.com/silverbulleters/vanessa-behavior), [OneScript](https://github.com/EvilBeaver/oscript-library) и [деморепозиторий](https://github.com/cybjavax/vanessa-bootstrap-1cBuildPackTemplate), создает файлы .json для автозапуска автотестов из командной строки. 22 | 23 | * testclone.os - запускает сборку конфигурации из репозитория, формирует отчет о сравнении, запускает тесты. 24 | 25 | Детали: Создает папку testclone, клонирует туда репозиторий, создает пустую базу из базы setup.dt, раскладывает ее на XML, сливает в эту папку XML с репозитория, загружают то, что получилось в конфигурацию, после дополнительно (чтобы исключить мусор, генерируемый платформой при выгрузке-загрузке XML) точечно с помощью файла MеrgeSettings.xml загружаются изменения в базу testclone/develop. После чего запускается сравнение базы разработки и собранной таким образом базы, отчет о расхождениях складывается в develop. Потом запускаются тесты vanessa-behavior и отчет выводится через allure report. 26 | 27 | ### Краткое видео демо testclone.os ### 28 | 29 | Собирается самописная конфигурация, часть есть в базе разработки develop/1cbases/develop, а изменения к ней лежат в репозитории develop/src. 30 | 31 | Видео (~1 мин): (https://yadi.sk/i/V22Y9nq634LgMp) 32 | 33 | ### Ограничения ### 34 | 35 | * Тестировался на 1С 8.3.9 36 | * Во всех базах должен быть пользователь admin с пустым паролем 37 | * Пока разработан и тестировался только для файловых баз 38 | * Быстродействие, демо делалось на пустой конфигурации 1С с небольшими изменениями (2 справочника, 2 документа), поэтому на видео все быстро. На рабочем проекте на УНФ 1.6 аналогичная операция занимает около 15 минут на SSD. Ближайшая точка оптимизации - заранее подготовить выгруженные XML типовой конфигурации и не выгружать их при каждой сборке, а просто копировать, как setup.dt. 39 | -------------------------------------------------------------------------------- /testclone.os: -------------------------------------------------------------------------------- 1 | #Использовать v8runner 2 | #Использовать cmdline 3 | 4 | Функция ОбернутьВКавычки(Знач Строка); 5 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 6 | Возврат Строка; 7 | Иначе 8 | Возврат """" + Строка + """"; 9 | КонецЕсли; 10 | КонецФункции 11 | 12 | Процедура ПолучитьОтчетОСравнении(Знач ФайлКонфигурации, Знач ФайлОтчета, Знач Конф) 13 | Параметры = Конф.ПолучитьПараметрыЗапуска(); 14 | Параметры.Добавить(СтрШаблон("/CompareCfg -FirstConfigurationType DBConfiguration -SecondConfigurationType File -SecondConfigurationKey %1 -IncludeChangedObjects -IncludeDeletedObjects -IncludeAddedObjects -ReportType Full -ReportFormat txt -ReportFile %2", ОбернутьВКавычки(ФайлКонфигурации), ОбернутьВКавычки(ФайлОтчета))); 15 | Конф.ВыполнитьКоманду(Параметры); 16 | КонецПроцедуры 17 | 18 | _началоЗамер = ТекущаяДата(); 19 | Сообщить("Начало "+Строка(_началоЗамер)); 20 | 21 | _текущийКаталог = ТекущийКаталог(); 22 | _репозиторий = "https://github.com/cybjavax/vanessa-bootstrap-1cBuildPackTemplate.git"; 23 | _каталогРазработки = _текущийКаталог+"/develop"; 24 | _каталогКлона = _текущийКаталог+"/testclone"; 25 | 26 | _каталогОсновнойБазыРазработки = _каталогРазработки+"/1cbases/develop"; 27 | _нулеваяКонфигурацияРазработки = _каталогРазработки+"/cfs/setup.cf"; 28 | _нулеваяКонфигурацияКлона = _каталогКлона+"/cfs/setup.cf"; 29 | _нулеваяБазаРазработки = _каталогРазработки+"/cfs/setup.dt"; 30 | _нулеваяБазаКлона = _каталогКлона+"/cfs/setup.dt"; 31 | 32 | _конфигурацияДляСравнения = _каталогКлона+"/cfs/develop.cf"; 33 | _файлОтчета = _каталогРазработки+"/CompareReport.txt"; 34 | 35 | //почему-то не удаляется каталог, может быть не хватает прав, пока закоментил 36 | //УдалитьФайлы(_каталогКлона); 37 | //Сообщить("Удалил старый клон..."); 38 | //получаем имя ветки из командной строки 39 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 40 | Парсер.ДобавитьПараметр("Ветка"); 41 | 42 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 43 | 44 | Если ЗначениеЗаполнено(Параметры["Ветка"]) Тогда 45 | Ветка = " -b "+Параметры["Ветка"]; 46 | Иначе 47 | Ветка = ""; 48 | КонецЕсли; 49 | Сообщить(Ветка); 50 | 51 | ЗапуститьПриложение("git clone "+_репозиторий+" "+_каталогКлона+Ветка, ,Истина); 52 | Сообщить("Склонировал репозиторий..."); 53 | 54 | КопироватьФайл(_нулеваяБазаРазработки, _нулеваяБазаКлона); 55 | Сообщить("Скопировал setup.dt..."); 56 | 57 | ЗапуститьПриложение("oscript createdevelopbase.os \testclone", ,Истина); 58 | Сообщить("Выполнил скрипт сборки createdevelopbase.os..."); 59 | 60 | ЗапуститьПриложение("oscript createcomparereport.os", ,Истина); 61 | Сообщить("Выполнил скрипт отчета о сравнении createcomparereport.os..."); 62 | 63 | ЗапуститьПриложение("oscript autotestclone.os"); 64 | Сообщить("Выполнил скрипт autotestclone.os..."); 65 | 66 | _итогЗамер = ТекущаяДата()-_началоЗамер; 67 | Сообщить("Окончание "+строка(ТекущаяДата())); 68 | Сообщить("Замер времени исполнения = "+Строка(_итогЗамер)+" сек."); 69 | -------------------------------------------------------------------------------- /createdevelopbase.os: -------------------------------------------------------------------------------- 1 | #Использовать v8runner 2 | #Использовать files-common 3 | #Использовать cmdline 4 | 5 | //пришлось скопировать из еще необновленной библиотеки ФС 6 | Процедура ОбеспечитьКаталог(Знач Путь) 7 | Объект = Новый Файл(Путь); 8 | Если Не Объект.Существует() Тогда 9 | СоздатьКаталог(Путь); 10 | ИначеЕсли Объект.ЭтоКаталог() Тогда 11 | УдалитьФайлы(Путь, ПолучитьМаскуВсеФайлы()); 12 | Иначе 13 | ВызватьИсключение "Не удается создать каталог " + Путь; 14 | КонецЕсли; 15 | КонецПроцедуры 16 | 17 | Функция КаталогСуществует(Знач Путь) Экспорт 18 | Объект = Новый Файл(Путь); 19 | Возврат Объект.Существует() и Объект.ЭтоКаталог(); 20 | КонецФункции 21 | 22 | Процедура _ОбеспечитьКаталог(Знач Путь) 23 | Объект = Новый Файл(Путь); 24 | Если Не Объект.Существует() Тогда 25 | СоздатьКаталог(Путь); 26 | ИначеЕсли Объект.ЭтоКаталог() Тогда 27 | //УдалитьФайлы(Путь, ПолучитьМаскуВсеФайлы()); 28 | Иначе 29 | ВызватьИсключение "Не удается создать каталог " + Путь; 30 | КонецЕсли; 31 | КонецПроцедуры // ОбеспечитьКаталог() 32 | 33 | Процедура КопироватьСодержимоеКаталога(Знач Откуда, Знач Куда) Экспорт 34 | _ОбеспечитьКаталог(Куда); 35 | Файлы = НайтиФайлы(Откуда, ПолучитьМаскуВсеФайлы()); 36 | Для Каждого Файл Из Файлы Цикл 37 | ПутьКопирования = ОбъединитьПути(Куда, Файл.Имя); 38 | Если Файл.ЭтоКаталог() Тогда 39 | КопироватьСодержимоеКаталога(Файл.ПолноеИмя, ПутьКопирования); 40 | Иначе 41 | КопироватьФайл(Файл.ПолноеИмя, ПутьКопирования); 42 | КонецЕсли; 43 | КонецЦикла; 44 | КонецПроцедуры 45 | 46 | Функция ОбернутьВКавычки(Знач Строка); 47 | Если Лев(Строка, 1) = """" и Прав(Строка, 1) = """" Тогда 48 | Возврат Строка; 49 | Иначе 50 | Возврат """" + Строка + """"; 51 | КонецЕсли; 52 | КонецФункции 53 | 54 | Процедура ЗагрузкаКонфигурацииИзФайлов(Знач КаталогВыгрузки, Знач Конф) 55 | Параметры = Конф.ПолучитьПараметрыЗапуска(); 56 | Параметры.Добавить(СтрШаблон("/LoadConfigFromFiles %1", ОбернутьВКавычки(КаталогВыгрузки))); 57 | Конф.ВыполнитьКоманду(Параметры); 58 | КонецПроцедуры 59 | 60 | Парсер = Новый ПарсерАргументовКоманднойСтроки(); 61 | Парсер.ДобавитьПараметр("testclone"); 62 | 63 | Параметры = Парсер.Разобрать(АргументыКоманднойСтроки); 64 | 65 | Если ЗначениеЗаполнено(Параметры["testclone"]) Тогда 66 | Ветка = Параметры["testclone"]; 67 | Иначе 68 | Ветка = "\develop"; 69 | КонецЕсли; 70 | Сообщить(Ветка); 71 | 72 | 73 | _текущийКаталог = ТекущийКаталог()+Ветка; 74 | 75 | _каталогБазыСборки = _текущийКаталог+"\1cbases\build"; 76 | _каталогБазыТемп = _текущийКаталог+"\1cbases\temp"; 77 | _каталогБазыРазработки = _текущийКаталог+"\1cbases\develop"; 78 | _установочнаяКонфигурация = _текущийКаталог+"\cfs\setup.cf"; 79 | _установочнаяВыгрузкаБазы = _текущийКаталог+"\cfs\setup.dt"; 80 | _обновлениеКонфигурация = _текущийКаталог+"\cfs\develop.cf"; 81 | _файлОбъединения = _текущийКаталог+"\MergeSettings.xml"; 82 | _каталогРабочийДляФайловВыгрузки = _текущийКаталог+"\src"; 83 | _каталогВременныйДляФайловВыгрузки = _текущийКаталог+"\xmltemp"; 84 | 85 | //Создаем чистую базу, загружаем типовую конфу и снимаем с поддержки 86 | _началоЗамер = ТекущаяДата(); 87 | //создаем конфигурацию develop.cf 88 | КонфигураторТемп = Новый УправлениеКонфигуратором(); 89 | КонфигураторТемп.СоздатьФайловуюБазу(_каталогБазыТемп); 90 | Сообщить("Создал базу temp..."); 91 | КонфигураторТемп.УстановитьКонтекст("/F"+_каталогБазыТемп, "", ""); 92 | КонфигураторТемп.ЗагрузитьИнформационнуюБазу(_установочнаяВыгрузкаБазы); 93 | Сообщить("Загрузил setup.dt..."); 94 | КонфигураторТемп.УстановитьКонтекст("/F"+_каталогБазыТемп, "admin", ""); 95 | КонфигураторТемп.СнятьКонфигурациюСПоддержки(Истина); 96 | Сообщить("Снял с поддержки..."); 97 | КонфигураторТемп.ОбновитьКонфигурациюБазыДанных(Ложь, Ложь, Ложь); 98 | Сообщить("Обновил..."); 99 | //выгружаем в файлы иерархически 100 | КонфигураторТемп.ВыгрузитьКонфигурациюВФайлы(_каталогВременныйДляФайловВыгрузки); 101 | Сообщить("Выгрузил в файлы..."); 102 | //сохраняем оригинальные исходники из репозитория 103 | КопироватьСодержимоеКаталога(_каталогРабочийДляФайловВыгрузки, _каталогВременныйДляФайловВыгрузки); 104 | Сообщить("Скопировал каталог src в cfxmltemp..."); 105 | 106 | ЗагрузкаКонфигурацииИзФайлов(_каталогВременныйДляФайловВыгрузки, КонфигураторТемп); 107 | Сообщить("Загрузил из файлов..."); 108 | КонфигураторТемп.ОбновитьКонфигурациюБазыДанных(Ложь, Ложь, Ложь); 109 | Сообщить("Обновил..."); 110 | КонфигураторТемп.ВыгрузитьКонфигурациюВФайл(_обновлениеКонфигурация); 111 | Сообщить("Выгрузил в develop.cf..."); 112 | 113 | //создаем базу develop 114 | КонфигураторРазраб = Новый УправлениеКонфигуратором(); 115 | КонфигураторРазраб.СоздатьФайловуюБазу(_каталогБазыРазработки); 116 | Сообщить("Создал базу develop..."); 117 | КонфигураторРазраб.УстановитьКонтекст("/F"+_каталогБазыРазработки, "", ""); 118 | КонфигураторРазраб.ЗагрузитьИнформационнуюБазу(_установочнаяВыгрузкаБазы); 119 | Сообщить("Загрузил setup.dt..."); 120 | КонфигураторРазраб.УстановитьКонтекст("/F"+_каталогБазыРазработки, "admin", ""); 121 | КонфигураторРазраб.СнятьКонфигурациюСПоддержки(Истина); 122 | Сообщить("Снял с поддержки..."); 123 | КонфигураторРазраб.ОбновитьКонфигурациюБазыДанных(Ложь, Ложь, Ложь); 124 | Сообщить("Обновил..."); 125 | КонфигураторРазраб.ОбъединитьКонфигурациюСФайлом(_обновлениеКонфигурация, _файлОбъединения, , , Истина); 126 | Сообщить("Загружаю выборочно из develop.cf"); 127 | КонфигураторРазраб.ОбновитьКонфигурациюБазыДанных(Ложь, Ложь, Ложь); 128 | Сообщить("Обновил..."); 129 | КонфигураторРазраб.ВыгрузитьКонфигурациюВФайл(_обновлениеКонфигурация); 130 | Сообщить("Выгрузил в develop.cf..."); 131 | 132 | УдалитьФайлы(_каталогВременныйДляФайловВыгрузки); 133 | Сообщить("Удалил каталог временных файлов выгрузки..."); 134 | УдалитьФайлы(_текущийКаталог, "*.txt"); 135 | Сообщить("Удалил временные *.txt в корне репо..."); 136 | Сообщить("Закончил..."); 137 | 138 | _итогЗамер = ТекущаяДата()-_началоЗамер; 139 | Сообщить("Замер времени исполнения = "+Строка(_итогЗамер)+" сек."); 140 | --------------------------------------------------------------------------------