diff --git a/packagedef b/packagedef index 684cd29..891bc91 100644 --- a/packagedef +++ b/packagedef @@ -1,15 +1,17 @@  Описание.Имя("v8runner") - .Версия("1.9.1") - .ВерсияСреды("1.0.19") - .ЗависитОт("asserts", "1.3.0") - .ЗависитОт("fs", "1.0.0") - .ЗависитОт("logos", "1.3.0") - .ЗависитОт("tempfiles", "1.0.0") - .ЗависитОт("strings", "0.4.1") - .ЗависитОт("v8find", "0.3.0") + .Версия("1.10.0") + .ВерсияСреды("1.9.0") .ЗависитОт("1commands", "1.5.0") + .ЗависитОт("asserts", "1.4.0") + .ЗависитОт("fs", "1.2.0") + .ЗависитОт("logos", "1.7.0") + .ЗависитОт("strings", "0.5.0") + .ЗависитОт("tempfiles", "1.1.1") + .ЗависитОт("v8find", "0.3.0") + .ВключитьФайл("readme.md") .ВключитьФайл("src") + .ВключитьФайл("tasks") .ВключитьФайл("tests") .ВключитьФайл("lib.config") ; diff --git a/src/v8runner.os b/src/v8runner.os index 3e1c131..4072484 100644 --- a/src/v8runner.os +++ b/src/v8runner.os @@ -34,13 +34,13 @@ #Область ПрограммыйИнтерфейс Процедура УстановитьКонтекст(Знач СтрокаСоединения, Знач Пользователь, Знач Пароль) Экспорт - + Если ТипЗнч(СтрокаСоединения) = Тип("Структура") Тогда мКонтекстКоманды.КлючСоединенияСБазой = СформироватьСтрокуСоединения(СтрокаСоединения); Иначе мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения; КОнецЕсли; - + мКонтекстКоманды.ИмяПользователя = Пользователь; мКонтекстКоманды.Пароль = Пароль; @@ -63,9 +63,9 @@ Лог.Отладка(?(ПустаяСтрока(мКонтекстКоманды.Пароль), "Пароль не задан", " Задан пароль "+ мКонтекстКоманды.Пароль)); КонецПроцедуры -Функция ПолучитьВерсиюИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, - Знач ПарольХранилища, +Функция ПолучитьВерсиюИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, + Знач ПарольХранилища, Знач НомерВерсии = Неопределено, Знач ИмяРасширения = Неопределено) Экспорт @@ -100,12 +100,12 @@ КонецФункции -// Построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости -// указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости -// "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. -// Если конфигурация базы данных отличается от редактируемой по свойству совместимости, +// Построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости +// указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости +// "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. +// Если конфигурация базы данных отличается от редактируемой по свойству совместимости, // при обработке командной строки учитывается значение режима совместимости конфигурации базы данных. -// +// // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации @@ -125,10 +125,10 @@ // ФорматОтчета - Строка - задает формат файла с отчетом: тестовый файл (txt) или табличный документ «1С:Предприятие» (mxl). // По умолчанию используется формат MXL. // ИмяРасширения - Строка - Имя расширения -// -Процедура ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, - Знач ПарольХранилища = "", +// +Процедура ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, + Знач ПарольХранилища = "", Знач ПутьКФайлуРезультата, Знач НомерНачальнойВерсии = 1, Знач НомерКонечнойВерсии = Неопределено, @@ -171,7 +171,7 @@ КонецЕсли; Параметры.Добавить(ТипГруппировки); - + Если НеВключатьВерсииСМетками Тогда Параметры.Добавить("-DoNotIncludeVersionsWithLabels"); КонецЕсли; @@ -182,7 +182,7 @@ КонецЕсли; Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.17") Тогда - Параметры.Добавить("-IncludeCommentLinesWithDoubleSlash"); + Параметры.Добавить("-IncludeCommentLinesWithDoubleSlash"); КонецЕсли; Если НЕ ВерсияКонфигурации = Неопределено Тогда @@ -192,7 +192,7 @@ Если НЕ ФорматОтчета = Неопределено Тогда Параметры.Добавить("-ReportFormat "+ФорматОтчета); КонецЕсли; - + Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; @@ -201,37 +201,37 @@ КонецПроцедуры -Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", +Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", Знач ПутьФайлаПоставкиОбновления = "", Знач ДистрибутивыДляОбновления = Неопределено, // Массив файлов дистрибутива cf Знач ПутьФайлаСПараметрамиЛицензирования = "") Экспорт Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Параметры.Добавить("/CreateDistributionFiles "); - Если НЕ ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) + Если НЕ ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) И НЕ ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) Тогда ВызватьИсключение "Не правильно заданы параметры процедуры <" + "СоздатьФайлыПоставки" + ">"; - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) Тогда Параметры.Добавить("-cffile "+ОбернутьВКавычки(ПутьФайлаПолнойПоставки) +" "); КонецЕсли; - Если ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) - И Не ДистрибутивыДляОбновления = Неопределено + Если ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) + И Не ДистрибутивыДляОбновления = Неопределено И ДистрибутивыДляОбновления.Количество() > 0 Тогда - + Параметры.Добавить("-cfufile "+ОбернутьВКавычки(ПутьФайлаПоставкиОбновления) +" "); - + // Поддерживаются только файлы cf Для каждого ДистрибутивОбновления Из ДистрибутивыДляОбновления Цикл - + Параметры.Добавить("-f "+ОбернутьВКавычки(ДистрибутивОбновления) +" "); - + КонецЦикла; - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаСПараметрамиЛицензирования) Тогда Параметры.Добавить("-digisign "+ОбернутьВКавычки(ПутьФайлаСПараметрамиЛицензирования) +" "); @@ -241,29 +241,29 @@ КонецПроцедуры -Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, - Знач ПользовательХранилища, - Знач ПарольХранилища = "", +Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, + Знач ПользовательХранилища, + Знач ПарольХранилища = "", Знач ПодключитьБазуКХранилищу = Ложь, Знач ИмяРасширения = Неопределено) Экспорт - + ОбеспечитьКаталог(ПапкаХранилища); - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Параметры.Добавить("/ConfigurationRepositoryF """+ПапкаХранилища + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCreate "); - + Параметры.Добавить("-AllowConfigurationChanges"); Параметры.Добавить("-ChangesAllowedRule ObjectNotSupported"); Параметры.Добавить("-ChangesNotRecommendedRule ObjectNotSupported"); - + Если ПодключитьБазуКХранилищу = Ложь Тогда Параметры.Добавить("-NoBind"); КонецЕсли; @@ -284,13 +284,13 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // ПутьКФайлуСоСпискомОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // путь к файлу формата XML со списком объектов. Если опция используется, будет выполнена попытка захватить только объекты, -// указанные в файле. Если опция не используется, будут захвачены все объекты конфигурации. +// указанные в файле. Если опция не используется, будут захвачены все объекты конфигурации. // Если в списке указаны объекты, захваченныедругим пользователем, эти объекты не будут захвачены и будет выдана ошибка. // При этом доступные для захвата объекта будут захвачены. Подробнее о формате файла см в документации. // ПолучатьЗахваченныеОбъекты - булево - Флаг получения захваченных объектов (По умолчанию равно "Ложь") // ИмяРасширения - Строка - Имя расширения // -Процедура ЗахватитьОбъектыВХранилище(Знач СтрокаСоединения, +Процедура ЗахватитьОбъектыВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ПутьКФайлуСоСпискомОбъектов = "", @@ -301,27 +301,27 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryLock "); - + Если Не ПустаяСтрока(ПутьКФайлуСоСпискомОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", ПутьКФайлуСоСпискомОбъектов)); - КонецЕсли; + КонецЕсли; Если ПолучатьЗахваченныеОбъекты Тогда Параметры.Добавить("-revised"); - КонецЕсли; + КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ЗахватитьОбъектыВХранилище() @@ -333,14 +333,14 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка отменить захват только для объектов, указанных в файле. -// Если опция не используется, захват будет отменен для всех объектов конфигурации. +// Если опция не используется, захват будет отменен для всех объектов конфигурации. // При наличии в списке объектов, не захваченных текущим пользователем или захваченных другим пользователем, ошибка выдана не будет // ИгнорироватьИзменения - Булево - Флаг игнорирования локальных изменений (По умолчанию равно "Ложь") -// Локально измененные объекты будут получены из хранилища, и внесенные изменения будут потеряны. +// Локально измененные объекты будут получены из хранилища, и внесенные изменения будут потеряны. // Если опция не указана, то при наличии локально измененных объектов операция будет отменена и будет выдана ошибка. // ИмяРасширения - Строка - Имя расширения // -Процедура ОтменитьЗахватОбъектовВХранилище(Знач СтрокаСоединения, +Процедура ОтменитьЗахватОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, @@ -351,27 +351,27 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryUnlock "); - + Если Не ПустаяСтрока(СписокОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", СписокОбъектов)); - КонецЕсли; + КонецЕсли; Если ИгнорироватьИзменения Тогда Параметры.Добавить("-force"); - КонецЕсли; + КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ВыполнитьОтменуЗахватаВХранилище() // Помещение изменений объектов в хранилище конфигурации @@ -382,16 +382,16 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка поместить только объекты, указанные в файле. -// Если опция не используется, будут помещены изменения всех объектов конфигурации. +// Если опция не используется, будут помещены изменения всех объектов конфигурации. // При наличии в списке объектов, не захваченных текущим пользователем или захваченных другим пользователем, ошибка выдана не будет // Комментарий - Строка - Комментарий к помещаемым. Чтобы установить многострочный комментарий, для каждой строки следует использовать свою опцию comment. -// ОставитьОбъектыЗахваченными - булево - оставлять захват для помещенных объектов. +// ОставитьОбъектыЗахваченными - булево - оставлять захват для помещенных объектов. // ИгнорироватьУдаленные - булево - Флаг игнорирования удаления объектов. По умолчанию = Ложь // Если опция используется, при обнаружении ссылок на удаленные объекты будет выполнена попытка их очистить. // Если опция не указана, при обнаружении ссылок на удаленные объекты будет выдана ошибка. // ИмяРасширения - Строка - Имя расширения // -Процедура ПоместитьИзмененияОбъектовВХранилище(Знач СтрокаСоединения, +Процедура ПоместитьИзмененияОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, @@ -404,16 +404,16 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCommit "); - + Если Не ПустаяСтрока(СписокОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", СписокОбъектов)); - КонецЕсли; + КонецЕсли; МассивСтрок = СтрРазделить(Комментарий, Символы.ПС); @@ -426,17 +426,17 @@ Если ОставитьОбъектыЗахваченными Тогда Параметры.Добавить("-keepLocked"); КонецЕсли; - + Если ИгнорироватьУдаленные Тогда Параметры.Добавить("-force"); - КонецЕсли; + КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ПоместитьИзмененияОбъектовВХранилище() @@ -447,13 +447,13 @@ // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // Метка - Строка - текст метки -// Комментарий - Строка - текст комментария к устанавливаемой метки. -// Версия - Строка - номер версии хранилища, для которого устанавливается метка. -// Если версия не указана, метка ставится для самой последнее версии хранилища. +// Комментарий - Строка - текст комментария к устанавливаемой метки. +// Версия - Строка - номер версии хранилища, для которого устанавливается метка. +// Если версия не указана, метка ставится для самой последнее версии хранилища. // Если указана несуществующая версия, выдается ошибка // ИмяРасширения - Строка - Имя расширения // -Процедура УстановитьМеткуДляВерсииВХранилище(Знач СтрокаСоединения, +Процедура УстановитьМеткуДляВерсииВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач Метка, @@ -466,33 +466,33 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositorySetLabel "); - + Параметры.Добавить(СтрШаблон("-name ""%1""", Метка)); - + МассивСтрок = СтрРазделить(Комментарий, Символы.ПС); Для Каждого СтрокаКомментария Из МассивСтрок Цикл Параметры.Добавить(СтрШаблон("-comment ""%1""", СтрокаКомментария)); - + КонецЦикла; Если Не ПустаяСтрока(Версия) Тогда Параметры.Добавить("-v " + Версия); - КонецЕсли; - + КонецЕсли; + Если Не ПустаяСтрока(ИмяРасширения) Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // УстановитьМеткуДляВерсииВХранилище() @@ -508,7 +508,7 @@ // Если конфигурация непустая, данный ключ подтверждает замену конфигурации на конфигурацию из хранилища. // ИмяРасширения - Строка - Имя расширения // -Процедура ПодключитьсяКХранилищу(Знач СтрокаСоединения, +Процедура ПодключитьсяКХранилищу(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ИгнорироватьНаличиеПодключеннойБД = Ложь, @@ -519,23 +519,23 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryBindCfg "); - + Если ИгнорироватьНаличиеПодключеннойБД Тогда Параметры.Добавить("-forceBindAlreadyBindedUser "); КонецЕсли; Если ЗаменитьКонфигурациюБД Тогда Параметры.Добавить("-forceReplaceCfg "); - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ИмяРасширения) Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; - + ВыполнитьКоманду(Параметры); КонецПроцедуры @@ -549,8 +549,8 @@ КонецПроцедуры -// Добавление пользователя хранилища конфигурации. -// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами. +// Добавление пользователя хранилища конфигурации. +// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами. // Если пользователь с указанным именем существует, то пользователь добавлен не будет. // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации @@ -566,31 +566,31 @@ // ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленного пользователя // Если обнаружен удаленный пользователь с таким же именем, он будет восстановлен. // ИмяРасширения - Строка - Имя расширения -// -Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения, - Знач ПользовательХранилища, +// +Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения, + Знач ПользовательХранилища, Знач ПарольХранилища, Знач НовыйПользователь, Знач ПарольПользователя = "", Знач Право = Неопределено, Знач ВосстановитьУдаленного = Ложь, Знач ИмяРасширения = Неопределено) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryAddUser "); Параметры.Добавить(СтрШаблон("-User ""%1""", НовыйПользователь)); Если Не ПустаяСтрока(ПарольПользователя) Тогда Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольПользователя)); - КонецЕсли; - + КонецЕсли; + Если Не ЗначениеЗаполнено(Право) Тогда Право = ПраваПользователяХранилища.ТолькоЧтение; КонецЕсли; @@ -599,7 +599,7 @@ Если ВосстановитьУдаленного Тогда Параметры.Добавить("-RestoreDeletedUser"); - КонецЕсли; + КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); @@ -609,9 +609,9 @@ КонецПроцедуры -// Копирование пользователей из хранилища конфигурации. Копирование удаленных пользователей не выполняется. +// Копирование пользователей из хранилища конфигурации. Копирование удаленных пользователей не выполняется. // Если пользователь с указанным именем существует, то пользователь не будет добавлен. -// +// // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации @@ -621,35 +621,35 @@ // ПарольХранилищаКопии - Строка - Пароль пользователя хранилища, из которого выполняется копирование пользователей. // ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленных пользователей // ИмяРасширения - Строка - Имя расширения -// -Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, +// +Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, Знач ПарольХранилища, Знач СтрокаСоединенияХранилищаКопии, Знач ПользовательХранилищаКопии, Знач ПарольХранилищаКопии = "", Знач ВосстановитьУдаленного = Ложь, Знач ИмяРасширения = Неопределено) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCopyUsers "); Параметры.Добавить(СтрШаблон("-Path ""%1""", СтрокаСоединенияХранилищаКопии)); Параметры.Добавить(СтрШаблон("-User ""%1""", ПользовательХранилищаКопии)); Если Не ПустаяСтрока(ПарольХранилищаКопии) Тогда Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольХранилищаКопии)); - КонецЕсли; - + КонецЕсли; + Если ВосстановитьУдаленного Тогда Параметры.Добавить("-RestoreDeletedUser"); - КонецЕсли; + КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); @@ -660,28 +660,28 @@ КонецПроцедуры // Выгрузка конфигурации в файлы -// +// // Параметры: // КаталогВыгрузки - Строка - Путь к каталогу, в который будет выгружена конфигурация; // ФорматВыгрузки - РежимВыгрузкиКонфигурации - По умолчанию выгрузка производится в иерархическом формате: // ТолькоИзмененные - Булево - указывает, что выгрузка будет обновлена (будут выгружены только файлы, версии которых отличаются от ранее выгруженных). -// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. -// По завершении выгрузки файл версий обновляется +// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. +// По завершении выгрузки файл версий обновляется // ПутьКФайлуИзменений - Строка - Указывает путь к файлу,в который будут выведены изменения текущей конфигурации. Изменения вычисляются относительно файла версий в текущем каталоге выгрузки. // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // -// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") Экспорт - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/DumpConfigToFiles %1", ОбернутьВКавычки(КаталогВыгрузки))); Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); - - + + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда Если ТолькоИзмененные Тогда @@ -689,13 +689,13 @@ Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда Параметры.Добавить("-update"); - + Параметры.Добавить("-force"); - + Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда - + Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения))); - + КонецЕсли; КонецЕсли; @@ -703,86 +703,86 @@ КонецЕсли; КонецЕсли; - + ВыполнитьКоманду(Параметры); КонецПроцедуры // Выгрузка изменений в файлах конфигурации в файл -// +// // Параметры: // КаталогВыгрузки - Строка - Путь к каталогу, в который была выгружена конфигурация; // ПутьКФайлуИзменений - Строка - Указывает путь к файлу,в который будут выведены изменения текущей конфигурации. Изменения вычисляются относительно файла версий в текущем каталоге выгрузки. // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // ФорматВыгрузки - РежимВыгрузкиКонфигурации - По умолчанию выгрузка производится в иерархическом формате. // -// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ВыгрузитьИзмененияКонфигурацииВФайл(Знач КаталогВыгрузки, Знач ПутьКФайлуИзменений, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") Экспорт - + Ожидаем.Что(ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10"), "Данная процедура не поддерживается выбранной версией платформы") .ЭтоИстина(); Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/DumpConfigToFiles %1", ОбернутьВКавычки(КаталогВыгрузки))); Параметры.Добавить(СтрШаблон("-getChanges %1", ОбернутьВКавычки(ПутьКФайлуИзменений))); - + Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения))); КонецЕсли; - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); - + ВыполнитьКоманду(Параметры); КонецПроцедуры // Загрузка конфигурации из файлов -// +// // Параметры: // КаталогЗагрузки - Строка - Путь к каталогу, содержащий XML-файлы конфигурации; // ПутьКСпискуФайловЗагрузки - Строка - Указывает путь к файлу, в котором перечислены файлы, которые требуется загрузить. При запуске в режиме агента путь к загружаемым файлам должен быть относительным. // Указываемый файл должен удовлетворять следующим требованиям: // - Файл должен быть в кодировке UTF-8. // - Имена файлов должны быть указаны через перенос (поддерживаются символы переноса \r\n ("следующая строка") и \r ("возврат каретки")). -// - Файл не должен содержать пустые строки между именами файлов. +// - Файл не должен содержать пустые строки между именами файлов. // ФорматВыгрузки - РежимВыгрузкиКонфигурации - Используется для частичной загрузки (при передаче параметра ПутьКСпискуФайловЗагрузки). // Указывает формат загрузки файлов. По умолчанию загрузка производится в иерархическом формате: -// ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml, -// соответствующий загруженной конфигурации. +// ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml, +// соответствующий загруженной конфигурации. // Если выполняется частичная загрузка (используется опция -files или -listFile), файл версий будет обновлен. -// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. -Процедура ЗагрузитьКонфигурациюИзФайлов(Знач КаталогЗагрузки, - Знач ПутьКСпискуФайловЗагрузки = "", - Знач ФорматВыгрузки = "", +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. +Процедура ЗагрузитьКонфигурациюИзФайлов(Знач КаталогЗагрузки, + Знач ПутьКСпискуФайловЗагрузки = "", + Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина, Знач ОбновитьКонфигурациюИБ = Ложь) Экспорт - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/LoadConfigFromFiles %1", ОбернутьВКавычки(КаталогЗагрузки))); - + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда Если ОбновитьФайлВерсий Тогда Параметры.Добавить("-updateConfigDumpInfo"); - + КонецЕсли; - + Если ЗначениеЗаполнено(ПутьКСпискуФайловЗагрузки) Тогда - + Параметры.Добавить(СтрШаблон("-listFile %1", ОбернутьВКавычки(ПутьКСпискуФайловЗагрузки))); Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); - + КонецЕсли; Если ОбновитьКонфигурациюИБ Тогда @@ -790,41 +790,41 @@ КонецЕсли; КонецЕсли; - - + + ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Загрузка расширения конфигурации из файлов -// +// // Параметры: // КаталогЗагрузки - Строка - Путь к каталогу, содержащий XML-файлы конфигурации; -// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "-AllExtensions" +// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "-AllExtensions" // (Каждый подкаталог в указанном каталоге считается расширением. Параметр несовместим с параметрами -files или -listFile.) // ПутьКСпискуФайловЗагрузки - Строка - Указывает путь к файлу, в котором перечислены файлы, которые требуется загрузить. При запуске в режиме агента путь к загружаемым файлам должен быть относительным. // Указываемый файл должен удовлетворять следующим требованиям: // - Файл должен быть в кодировке UTF-8. // - Имена файлов должны быть указаны через перенос (поддерживаются символы переноса \r\n ("следующая строка") и \r ("возврат каретки")). -// - Файл не должен содержать пустые строки между именами файлов. +// - Файл не должен содержать пустые строки между именами файлов. // ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm) // ФорматВыгрузки - РежимВыгрузкиКонфигурации - Используется для частичной загрузки (при передаче параметра ПутьКСпискуФайловЗагрузки). // Указывает формат загрузки файлов. По умолчанию загрузка производится в иерархическом формате: // ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm) -// ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml, -// соответствующий загруженной конфигурации. +// ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml, +// соответствующий загруженной конфигурации. // (Реализовано начиная с версии 8.3.10) // Если выполняется частичная загрузка (используется опция -files или -listFile), файл версий будет обновлен. -Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, - Знач ИмяРасширения = "-AllExtensions", - Знач ПутьКСпискуФайловЗагрузки = "", - Знач ФорматВыгрузки = "", +Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, + Знач ИмяРасширения = "-AllExtensions", + Знач ПутьКСпискуФайловЗагрузки = "", + Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина) Экспорт - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/LoadConfigFromFiles %1", ОбернутьВКавычки(КаталогЗагрузки))); @@ -850,29 +850,29 @@ КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Загрузка расширения конфигурации из файлов -// +// // Параметры: // КаталогВыгрузки - Строка - Путь к каталогу, содержащий XML-файлы конфигурации; -// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "-AllExtensions" +// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "-AllExtensions" // (Каждый подкаталог в указанном каталоге считается расширением. Параметр несовместим с параметрами -files или -listFile.) // ФорматВыгрузки - РежимВыгрузкиКонфигурации - Используется для частичной загрузки (при передаче параметра ПутьКСпискуФайловЗагрузки). // Указывает формат загрузки файлов. По умолчанию загрузка производится в иерархическом формате: // ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm) // ТолькоИзмененные - Булево - указывает, что выгрузка будет обновлена (будут выгружены только файлы, версии которых отличаются от ранее выгруженных). -// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. -// По завершении выгрузки файл версий обновляется +// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. +// По завершении выгрузки файл версий обновляется // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // (Реализовано начиная с версии 8.3.10) Процедура ВыгрузитьРасширениеВФайлы(Знач КаталогВыгрузки, Знач ИмяРасширения = "-AllExtensions", Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") Экспорт - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/DumpConfigToFiles %1", ОбернутьВКавычки(КаталогВыгрузки))); Если ИмяРасширения = "-AllExtensions" Тогда @@ -884,7 +884,7 @@ Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.7.1759") Тогда Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); КонецЕсли; - + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда Если ТолькоИзмененные Тогда @@ -892,13 +892,13 @@ Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда Параметры.Добавить("-update"); - + Параметры.Добавить("-force"); - + Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда - + Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения))); - + КонецЕсли; КонецЕсли; @@ -906,7 +906,7 @@ КонецЕсли; КонецЕсли; - + ВыполнитьКоманду(Параметры); КонецПроцедуры @@ -922,8 +922,8 @@ ФайлКонфигурации = Новый Файл(ПутьФайлКонфигурации); Ожидаем.Что(ФайлКонфигурации.Существует(), "Файл конфигурации <"+ПутьФайлКонфигурации +"> существует, а это не так").ЭтоИстина(); - Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, - "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); + Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, + "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); // Выполняем загрузку и обновление за два шага, т.к. // иногда обновление конфигурации ИБ на новой базе проходит неудачно, @@ -951,8 +951,8 @@ ФайлРасширения = Новый Файл(ПутьФайлРасширения); Ожидаем.Что(ФайлРасширения.Существует(), "Файл расширения <"+ПутьФайлРасширения +"> существует, а это не так").ЭтоИстина(); - Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, - "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); + Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, + "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); // Выполняем загрузку и обновление за два шага, т.к. // иногда обновление конфигурации ИБ на новой базе проходит неудачно, // если запустить две операции в одной команде. @@ -974,11 +974,11 @@ // ФайлКонфигурации - Строка - путь к файлу конфигурации // Процедура ВыгрузитьКонфигурациюВФайл(Знач ФайлКонфигурации) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/DumpCfg """ + ФайлКонфигурации + """"); ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Выгружает конфигурацию расширения в файл @@ -988,12 +988,12 @@ // ИмяРасширения - Строка - имя расширения // Процедура ВыгрузитьРасширениеВФайл(Знач ПутьФайлРасширения, Знач ИмяРасширения) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/DumpCfg """ + ПутьФайлРасширения + """"); Параметры.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Выполнить объединение текущей конфигурации с файлом (с использованием файла настроек) @@ -1013,7 +1013,7 @@ // Ложь: очищать ссылки на объекты с неразрешенными ссылками. // Принудительно - Булево - флаг принудительного обновления. // Обновление будет производиться в случае наличия: -// предупреждений об удаляемых объектов, на которые есть ссылки в объектах, +// предупреждений об удаляемых объектов, на которые есть ссылки в объектах, // не участвующих в объединении (такие объекты будут исключены из объединения); // предупреждений о применении настроек. // Если не указан, то объединение будет прервано в вышеуказанных случаях. @@ -1023,14 +1023,14 @@ // * ПарольХранилища - Строка - Пароль пользователя хранилища // ИмяРасширения - Строка - имя расширения // -Процедура ОбъединитьКонфигурациюСФайлом(Знач ФайлКонфигурации, - Знач ФайлНастроек, - Знач ПоставитьНаПоддержку = Неопределено, - Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, +Процедура ОбъединитьКонфигурациюСФайлом(Знач ФайлКонфигурации, + Знач ФайлНастроек, + Знач ПоставитьНаПоддержку = Неопределено, + Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь, Знач ПараметрыХранилища = Неопределено, Знач ИмяРасширения = Неопределено) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/MergeCfg " + ОбернутьВКавычки(ФайлКонфигурации)); Параметры.Добавить("-Settings " + ОбернутьВКавычки(ФайлНастроек)); @@ -1077,7 +1077,7 @@ // ИмяРасширения - Строка - имя расширения. Необязательно. // Процедура ОбновитьКонфигурациюБазыДанных( - ПредупрежденияКакОшибки = Ложь, НаСервере = Истина, + ПредупрежденияКакОшибки = Ложь, НаСервере = Истина, ДинамическоеОбновление = Ложь, ИмяРасширения = "") Экспорт @@ -1085,14 +1085,14 @@ ПараметрыСвязиСБазой.Добавить("/UpdateDBCfg"); Если ЗначениеЗаполнено(ИмяРасширения) Тогда ПараметрыСвязиСБазой.Добавить("-Dynamic+"); - Иначе + Иначе Если Не ДинамическоеОбновление Тогда ПараметрыСвязиСБазой.Добавить("-Dynamic-"); Иначе ПараметрыСвязиСБазой.Добавить("-Dynamic+"); - КонецЕсли; + КонецЕсли; КонецЕсли; - + Если ПредупрежденияКакОшибки Тогда ПараметрыСвязиСБазой.Добавить("-WarningsAsErrors"); КонецЕсли; @@ -1110,16 +1110,16 @@ // Обновить конфигурацию БД на сервере // // Параметры: -// ПредупрежденияКакОшибки - Булево - если есть предупреждения, они выдаются как ошибки. Необязательно. +// ПредупрежденияКакОшибки - Булево - если есть предупреждения, они выдаются как ошибки. Необязательно. // По Умолчанию - Ложь. // ДинамическоеОбновление - Булево - использовать. Необязательно. По Умолчанию - Ложь. -// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). +// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). // Например, РежимыРеструктуризации().Второй // Необязательно. По Умолчанию - Неопределено. т.е. использовать режим 1С по умолчанию // ИмяРасширения - Строка - Имя расширения // Процедура ОбновитьКонфигурациюБазыДанныхНаСервере( - ПредупрежденияКакОшибки = Ложь, + ПредупрежденияКакОшибки = Ложь, ДинамическоеОбновление = Ложь, РежимРеструктуризации = Неопределено, Знач ИмяРасширения = Неопределено) Экспорт @@ -1131,13 +1131,13 @@ Иначе ПараметрыСвязиСБазой.Добавить("-Dynamic"); КонецЕсли; - + Если ПредупрежденияКакОшибки Тогда ПараметрыСвязиСБазой.Добавить("-WarningsAsErrors"); КонецЕсли; ПараметрыСвязиСБазой.Добавить("-Server"); Если ЗначениеЗаполнено(РежимРеструктуризации) Тогда - ПараметрыСвязиСБазой.Добавить(РежимРеструктуризации); + ПараметрыСвязиСБазой.Добавить(РежимРеструктуризации); КонецЕсли; Если Не ИмяРасширения = Неопределено Тогда ПараметрыСвязиСБазой.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); @@ -1170,7 +1170,7 @@ ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора(); ПараметрыСвязиСБазой.Добавить("/RollbackCfg"); - + Если Не ИмяРасширения = Неопределено Тогда ПараметрыСвязиСБазой.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); КонецЕсли; @@ -1228,8 +1228,8 @@ // Если не указан, то объединение будет прервано в вышеуказанных случаях. // Значение по умолчанию - Ложь // -Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено, - Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, +Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено, + Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь, Знач ВывестиДваждыИзмененныеОбъекты = Ложь) Экспорт ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); @@ -1292,7 +1292,7 @@ Иначе ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()) + " -NoTruncate"); КонецЕсли; - + Если ИмяБазыВСписке <> "" Тогда ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; @@ -1348,15 +1348,15 @@ Знач ОшибкаЕслиСуществует = Ложь, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт - + Сервер1С = ПолучитьПараметр(ПараметрыБазы1С, "Сервер1С"); ИмяИБ = ПолучитьПараметр(ПараметрыБазы1С, "ИмяИБ"); Лог.Отладка("Создание серверной ИБ ""%1\%2""", Сервер1С, ИмяИБ); - + РазрешитьРегЗадания = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьРегЗадания", Ложь); РазрешитьВыдачуЛицензий = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьВыдачуЛицензий", Ложь); - + ТипСУБД = ПолучитьПараметр(ПараметрыСУБД, "ТипСУБД", "MSSQLServer"); СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД"); ПользовательСУБД = ПолучитьПараметр(ПараметрыСУБД, "ПользовательСУБД"); @@ -1370,10 +1370,10 @@ СмещениеДат = ПолучитьПараметр(ПараметрыСУБД, "СмещениеДат", "2000"); СоздаватьБД = ПолучитьПараметр(ПараметрыСУБД, "СоздаватьБД", Ложь); - + АдминистраторКластера = ПолучитьПараметр(АвторизацияВКластере, "Имя", Ложь); ПарольКластера = ПолучитьПараметр(АвторизацияВКластере, "Пароль", Ложь); - + СтрокаЗапуска = "Srvr=" + СокрЛП(Сервер1С) + ";Ref=" + СокрЛП(ИмяИБ) + ";DBMS=" + СокрЛП(ТипСУБД) @@ -1389,11 +1389,11 @@ Если НЕ ПустаяСтрока(АдминистраторКластера) Тогда СтрокаЗапуска = СтрокаЗапуска + ";SUsr=" + АдминистраторКластера; КонецЕсли; - + Если НЕ ПустаяСтрока(ПарольКластера) Тогда СтрокаЗапуска = СтрокаЗапуска + ";SPwd=" + ПарольКластера; КонецЕсли; - + Лог.Отладка("Строка запуска: %1", СтрокаЗапуска); ПараметрыЗапуска = Новый Массив; @@ -1405,7 +1405,7 @@ Иначе ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()) + " -NoTruncate"); КонецЕсли; - + Если НЕ ПустаяСтрока(ИмяБазыВСписке) Тогда ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; @@ -1437,7 +1437,7 @@ КонецЕсли; КонецПроцедуры // СоздатьСервернуюБазу() - + Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ, Знач КоличествоЗаданий = 0) Экспорт @@ -1457,6 +1457,10 @@ Процедура ВыгрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) Экспорт + Лог.Отладка(СтрШаблон("Исходный ПутьВыгрузкиИБ %1", ПутьВыгрузкиИБ)); + ПутьВыгрузкиИБ = ОбъединитьПути(ТекущийКаталог(), ПутьВыгрузкиИБ); + Лог.Отладка(СтрШаблон("Итоговый ПутьВыгрузкиИБ %1", ПутьВыгрузкиИБ)); + Файл = Новый Файл(ПутьВыгрузкиИБ); КаталогВыгрузкиИБ = Файл.Путь; @@ -1477,34 +1481,34 @@ // ПутьКВнешнейОбработкеИлиОтчету - Строка - Путь к файлу внешнего отчета или обработки // Формат - РежимВыгрузкиКонфигурации - Формат выгрузки. По умолчанию используется "Hierarchical" // -Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки, +Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки, Знач ПутьКВнешнейОбработкеИлиОтчету, Знач Формат = "") Экспорт - + Если НЕ ЗначениеЗаполнено(Формат) Тогда Формат = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; Файл = Новый Файл(ПутьККаталогуВыгрузки); КаталогВыгрузки = Файл.ПолноеИмя; - + ОбеспечитьКаталог(КаталогВыгрузки); - + Файл = Новый Файл(ПутьКВнешнейОбработкеИлиОтчету); ПутьКВнешнейОбработкеИлиОтчету = Файл.ПолноеИмя; - + ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); ПараметрыЗапуска.Добавить("/DumpExternalDataProcessorOrReportToFiles"); ПараметрыЗапуска.Добавить(ОбернутьВКавычки(КаталогВыгрузки)); ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКВнешнейОбработкеИлиОтчету)); ПараметрыЗапуска.Добавить("-Format"); ПараметрыЗапуска.Добавить(Формат); - + ВыполнитьКоманду(ПараметрыЗапуска); - + КонецПроцедуры -// Выгружает конфигурацию мобильного приложения в zip-файл. Файл содержит собственно описание +// Выгружает конфигурацию мобильного приложения в zip-файл. Файл содержит собственно описание // конфигурации и сопутствующие материалы // // Параметры: @@ -1538,7 +1542,7 @@ КодВозврата = ЗапуститьИПодождать(Параметры); УстановитьВывод(ПрочитатьФайлИнформации()); - + Если КодВозврата <> 0 И мИсключениеПриОшибкеВыполненияКоманды Тогда Лог.Ошибка("Получен ненулевой код возврата "+КодВозврата +". Выполнение скрипта остановлено!"); ВызватьИсключение ВыводКоманды(); @@ -1558,28 +1562,28 @@ Знач СтрокаСоединенияСХранилищем = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "") Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Если Не ПустаяСтрока(СтрокаСоединенияСХранилищем) Тогда Параметры.Добавить("/ConfigurationRepositoryF """ + СтрокаСоединенияСХранилищем + """"); Параметры.Добавить("/ConfigurationRepositoryN """ + ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """ + ПарольХранилища + """"); КонецЕсли; КонецЕсли; Параметры.Добавить("/CheckConfig"); - + Для Каждого СтрокаКлюча Из Ключи Цикл Если СтрокаКлюча.Значение = Истина Тогда Параметры.Добавить(СтрокаКлюча.Ключ); КонецЕсли; - КонецЦикла; - + КонецЦикла; + ВыполнитьКоманду(Параметры); - + КонецПроцедуры Процедура ВыполнитьСинтаксическийКонтроль( @@ -1620,7 +1624,7 @@ ДопустимыеКлючи = КлючиПроверкиКонфигурации(); Для Каждого Проверка Из Проверки Цикл - КлючПроверки = ДопустимыеКлючи.Получить(СокрЛП(Проверка)); + КлючПроверки = ДопустимыеКлючи.Получить(СокрЛП(Проверка)); Если КлючПроверки <> Неопределено Тогда КлючЗапуска = ?(НРег(КлючПроверки) = "-extension", СтрШаблон("%1 %2", КлючПроверки, ИмяРасширения), КлючПроверки); @@ -1753,10 +1757,10 @@ Если Лев(ВерсияПлатформы, 2) <> "8." Тогда ВызватьИсключение "Неверная версия платформы <"+ ВерсияПлатформы + ">"; КонецЕсли; - - ПутьКПредприятию = Платформа1С.ПутьКПредприятию(ВерсияПлатформы, Разрядность); - Возврат ПутьКПредприятию; + Результат = Платформа1С.ПутьКПредприятию(ВерсияПлатформы, Разрядность); + + Возврат Результат; КонецФункции @@ -1766,7 +1770,7 @@ Процедура УстановитьКодЯзыка(Знач Код) Экспорт мКонтекстКоманды.КодЯзыка = Код; - Если ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда + Если ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда мКонтекстКоманды.КодЯзыкаСеанса = Код; КонецЕсли; КонецПроцедуры @@ -1818,10 +1822,10 @@ КонецФункции -Процедура ИспользоватьВерсиюПлатформы(Знач МаскаВерсии, Знач Разрядность = Неопределено) Экспорт +Функция ИспользоватьВерсиюПлатформы(Знач МаскаВерсии, Знач Разрядность = Неопределено) Экспорт Путь = ПолучитьПутьКВерсииПлатформы(МаскаВерсии, Разрядность); - ПутьКПлатформе1С(Путь); -КонецПроцедуры + Возврат ПутьКПлатформе1С(Путь); +КонецФункции Функция ПутьКТонкомуКлиенту1С(Знач ПутьКПлатформе1С = "") Экспорт Лог.Отладка("ПутьКТонкомуКлиенту1С: Путь платформы 1С <"+ПутьКПлатформе1С + ">"); @@ -1843,19 +1847,19 @@ КонецФункции -// Функция - Возвращает путь к каталогу с конфигурационными файлами 1С +// Функция - Возвращает путь к каталогу с конфигурационными файлами 1С // // Параметры: -// ПутьКПлатформе1С - Строка - Полный путь к платформе 1С, +// ПутьКПлатформе1С - Строка - Полный путь к платформе 1С, // например, C:\Program Files\1cv8\8.3.17.1386\bin\1cv8.exe // ПутьКОбщимНастройкам - Булево - Если требуется получить путь к каталогу с общими настройками - Истина. -// Если путь к каталогу определенной версии - Ложь, по умолчанию - Истина. +// Если путь к каталогу определенной версии - Ложь, по умолчанию - Истина. // // Возвращаемое значение: // Строка - Полный пути к каталогу содержащему конфигурационные файлы платформы, например, C:\Program Files\1cv8\conf // Функция КаталогКонфигурационныхФайлов1С(Знач ПутьКПлатформе1С = "", Знач ПутьКОбщимНастройкам = Истина) Экспорт - + Лог.Отладка("КаталогКонфигурационныхФайлов1С: Путь платформы 1С <"+ ПутьКПлатформе1С + ">"); Если ПутьКПлатформе1С = "" Тогда ПутьКПлатформе1С = ПутьКПлатформе1С(); @@ -1865,7 +1869,7 @@ КаталогНаДиске = Новый Файл(ПутьКПлатформе1С); Если Не КаталогНаДиске.Существует() Тогда ВызватьИсключение "Не существует установленной платформы 1С по пути: " + ПутьКПлатформе1С; - КонецЕсли; + КонецЕсли; ВерсияПлатформы = ""; ШаблонВерсии = Новый РегулярноеВыражение("8(\.\d+){3}"); @@ -1879,7 +1883,7 @@ КаталогКонфигурационныхФайлов1С = СтрЗаменить(ПутьКПлатформе1С, "\" + ВерсияПлатформы + "\bin\1cv8.exe", "\conf"); Иначе КаталогКонфигурационныхФайлов1С = СтрЗаменить(ПутьКПлатформе1С, "\1cv8.exe", "\conf"); - КонецЕсли; + КонецЕсли; Лог.Отладка("КаталогКонфигурационныхФайлов1С: получили путь конфигурационных файлов 1С " + ВидПути + " <" + КаталогКонфигурационныхФайлов1С + ">"); Возврат КаталогКонфигурационныхФайлов1С; @@ -1918,7 +1922,7 @@ // Функция УстановитьПризнакОжиданияВыполненияПрограммы(НовыйПризнак) Экспорт - Ожидаем.Что(НовыйПризнак = Ложь ИЛИ НовыйПризнак = Истина, + Ожидаем.Что(НовыйПризнак = Ложь ИЛИ НовыйПризнак = Истина, "Параметр ""Признак ожидания выполнения программы 1С"" должен быть или Истина или Ложь, а это не так").ЭтоИстина(); СтарыйПризнак = мПризнакОжиданияВыполненияПрограммы; @@ -1932,16 +1936,16 @@ // // Параметры: // НовоеЗначение - <Булево> - Новое значение флага "ИсключениеПриОшибкеВыполненияКоманды" -// если не указано, то возвращается текущее значение +// если не указано, то возвращается текущее значение // // Возвращаемое значение: // <Булево> - значение признака // Функция ИсключениеПриОшибкеВыполненияКоманды(НовоеЗначение = Неопределено) Экспорт - - Ожидаем.Что(НовоеЗначение = Ложь ИЛИ НовоеЗначение = Истина ИЛИ НовоеЗначение = Неопределено, + + Ожидаем.Что(НовоеЗначение = Ложь ИЛИ НовоеЗначение = Истина ИЛИ НовоеЗначение = Неопределено, "Параметр ""Исключение при ошибке выполнения команды"" должен быть или Истина, Ложь или Неопределено, а это не так").ЭтоИстина(); - + Если НЕ НовоеЗначение = Неопределено Тогда мИсключениеПриОшибкеВыполненияКоманды = НовоеЗначение; КонецЕсли; @@ -1949,7 +1953,7 @@ Возврат мИсключениеПриОшибкеВыполненияКоманды; КонецФункции // ИсключениеПриОшибкеВыполненияКоманды() Экспорт - + // Формирует отчёт о сравнении основной конфигурации\конфигурации расширения в файл. // // Параметры: @@ -1967,7 +1971,7 @@ Знач ФорматОтчета = "txt", Знач ИмяРасширения = "", Знач ПутьКФайлуПервойКонфигурации = Неопределено) Экспорт - + Если ТипОтчета = Неопределено Тогда ТипОтчета = ТипыОтчетовОСравнении.Полный; КонецЕсли; @@ -2030,7 +2034,7 @@ // Булево - Истина - конфигурации идентичны. // Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "") Экспорт - + ЭталонОтчетаБезИзменений = НСтр( "ru = ' |***- Объект изменен @@ -2042,21 +2046,21 @@ |***- Object changed |-->- Object available only in the %1 |<--- Object available only in the file - |^- Object order changed'", + |^- Object order changed'", мКонтекстКоманды.КодЯзыкаСеанса ); Если ЗначениеЗаполнено(ИмяРасширения) Тогда СтрокаДополнения = НСтр("ru = 'расширении'; en = 'configuration extension'", мКонтекстКоманды.КодЯзыкаСеанса); - Иначе + Иначе СтрокаДополнения = НСтр("ru = 'основной'; en = 'main configuration'", мКонтекстКоманды.КодЯзыкаСеанса); КонецЕсли; ОтчетБезИзменений = СтрШаблон( ЭталонОтчетаБезИзменений, - СтрокаДополнения + СтрокаДополнения ); - + Лог.Отладка("Сформировал эталон отчета о сравнении: " + ОтчетБезИзменений); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла(".txt"); @@ -2082,7 +2086,7 @@ Отчет = ""; Пока СтрокаТекста <> Неопределено Цикл - + Если Не ПустаяСтрока(СтрокаТекста) Тогда Отчет = Отчет + Символы.ПС + СокрЛП(СтрокаТекста); КонецЕсли; @@ -2100,13 +2104,13 @@ Исключение Лог.Предупреждение("Не удалось удалить файл отчёта: " + ОписаниеОшибки()); КонецПопытки; - + Возврат Отчет = ОтчетБезИзменений; Иначе Лог.Ошибка("Не сформирован файл сравнения конфигураций"); КонецЕсли; - + Возврат Ложь; КонецФункции @@ -2123,7 +2127,7 @@ // // Возвращаемое значение: // Массив - параметры запуска -// +// Функция СтандартныеПараметрыЗапускаКонфигуратора() Экспорт Лог.Отладка("КлючСоединенияСБазой "+КлючСоединенияСБазой()); @@ -2132,7 +2136,7 @@ ПараметрыЗапуска = Новый Массив; ПараметрыЗапуска.Добавить("DESIGNER"); ПараметрыЗапуска.Добавить(КлючСоединенияСБазой()); - + Если мОчищатьФайлИнформации Тогда ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации())); Иначе @@ -2208,7 +2212,7 @@ // Интервал - Интервал ожидания (мс), через который вызывается ОбработкаОжиданияПроцесса, если он не завершен // Процедура УстановитьОбработчикОжидания(Знач ОбъектОбработчик, Знач Интервал = 5000) Экспорт - + мОбработчикОжиданияПроцессаGUI = Новый Структура; мОбработчикОжиданияПроцессаGUI.Вставить("Объект", ОбъектОбработчик); мОбработчикОжиданияПроцессаGUI.Вставить("Интервал", Интервал); @@ -2234,7 +2238,7 @@ Приложение = ОбернутьВКавычки(ПутьКПлатформе1С()); Лог.Отладка(Приложение + СтрокаДляЛога); - Если ЭтоWindows = Ложь Тогда + Если ЭтоWindows = Ложь Тогда СтрокаЗапуска = "sh -c '"+Приложение + СтрокаЗапуска + "'"; Иначе СтрокаЗапуска = Приложение + СтрокаЗапуска; @@ -2243,7 +2247,7 @@ Если мОбработчикОжиданияПроцессаGUI = Неопределено Тогда Если мПризнакОжиданияВыполненияПрограммы Тогда Команда = Новый Команда; - + Команда.УстановитьКоманду(Приложение); Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8); Команда.ДобавитьЛогВыводаКоманды("oscript.lib.v8runner"); @@ -2256,14 +2260,14 @@ ЗапуститьПриложение(СтрокаЗапуска, , Ложь, КодВозврата); КонецЕсли; - + Иначе - + ЗапуститьПроцессGUI(СтрокаЗапуска, КодВозврата); КонецЕсли; Лог.Отладка("Получен код возврата %1", КодВозврата); - + Возврат КодВозврата; КонецФункции @@ -2316,10 +2320,10 @@ Исключение Лог.Предупреждение("Не удалось прочитать файл информации %1. |" + ОписаниеОшибки(), Файл.ПолноеИмя); - + Возврат ""; КонецПопытки; - + Текст = Чтение.Прочитать(); Чтение.Закрыть(); @@ -2341,7 +2345,7 @@ КонецФункции Процедура УдалитьФайлИнформации() - + Файл = Новый Файл(ФайлИнформации()); Если Файл.Существует() Тогда Попытка @@ -2351,7 +2355,7 @@ Лог.Предупреждение("Не удалось удалить файл информации: " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; - + КонецПроцедуры Процедура УстановитьВывод(Знач Сообщение) @@ -2407,7 +2411,7 @@ Функция ВременнаяБазаСуществует() Экспорт ФайлБазы = Новый Файл(ОбъединитьПути(ПутьКВременнойБазе(), "1Cv8.1CD")); - + Возврат ФайлБазы.Существует(); КонецФункции @@ -2431,13 +2435,13 @@ // Произвольный - Значение параметра // Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию = "") - + ЗначениеПараметра = ЗначениеПоУмолчанию; - + Если Параметры.Свойство(Имя) Тогда ЗначениеПараметра = Параметры[Имя]; КонецЕсли; - + Возврат ЗначениеПараметра; КонецФункции // ПолучитьПараметр() @@ -2487,12 +2491,12 @@ // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт - + Сообщить("ВНИМАНИЕ: метод ""ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища()"" УСТАРЕЛ и скоро будет удален. Вместо него используйте метод ""ЗагрузитьКонфигурациюИзХранилища()""!" , СтатусСообщения.Внимание); ЗагрузитьКонфигурациюИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + КонецПроцедуры // Выполняет загрузку конфигурации из хранилища конфигурации определенной версии, если задана, иначе получает последнюю версию. @@ -2506,7 +2510,7 @@ Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + ВыполнитьКоманду(ПараметрыСвязиСБазой); КонецПроцедуры @@ -2521,26 +2525,26 @@ // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт - + ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + ПараметрыСвязиСБазой.Добавить("/UpdateDBCfg"); - + ВыполнитьКоманду(ПараметрыСвязиСБазой); - + КонецПроцедуры -Функция СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища) - +Функция СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища) + ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора(); - + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg"); // ВАЖНО!!!! Флаг <-v> должен быть обязательно после команды ConfigurationRepositoryUpdateCfg // Если это нарушить, то всегда получается последняя версия конфигурации @@ -2548,9 +2552,9 @@ ПараметрыСвязиСБазой.Добавить("-v " + НомерВерсииХранилища); КонецЕсли; ПараметрыСвязиСБазой.Добавить("-force"); - + Возврат ПараметрыСвязиСБазой; - + КонецФункции // Выполняет загрузку конфигурации расширения из хранилища, указанной версии. @@ -2571,7 +2575,7 @@ Если Не ПустаяСтрока(ПарольХранилища) Тогда ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """ + ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg"); Если НомерВерсииХранилища > 0 Тогда @@ -2580,8 +2584,8 @@ ПараметрыСвязиСБазой.Добавить(СтрШаблон("-Extension ""%1""", ИмяРасширения)); ПараметрыСвязиСБазой.Добавить("-force"); ВыполнитьКоманду(ПараметрыСвязиСБазой); - -КонецПроцедуры + +КонецПроцедуры Функция ВариантОбработкиНесуществующихСсылок() Экспорт @@ -2595,7 +2599,7 @@ КонецФункции // ИмяФункции() Функция ВариантОбработкиЧастичнойПотериДанных() Экспорт - + Варианты = Новый Структура; Варианты.Вставить("СоздаватьОбъекты", 1); Варианты.Вставить("УдалятьОбъекты", 2); @@ -2615,7 +2619,7 @@ // ВариантОбработкиЧастичнойПотериДанных: // - создавать объекты (по умолчанию) // - удалять объекты -// +// Функция ПолучитьОпцииТиИ() Экспорт ВариантыОбработкиНесуществующихСсылок = ВариантОбработкиНесуществующихСсылок(); @@ -2685,17 +2689,17 @@ СтрокаОпций = СтрокаОпций + ?(Параметры.ПродолжитьТиИСТочкиПрерывания, " -UseStartPoint", ""); СтрокаОпций = СтрокаОпций + ?(Параметры.МаксВремяТестирования = "", ""," -TimeLimit:" + Параметры.МаксВремяТестирования); - + ПараметрыСвязиСБазой.Добавить(СтрокаОпций); - Лог.Отладка("Параметры запуска ТиИ: " + СтрокаОпций); + Лог.Отладка("Параметры запуска ТиИ: " + СтрокаОпций); ВыполнитьКоманду(ПараметрыСвязиСБазой); КонецПроцедуры // ИмяПроцедуры() -// Функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий +// Функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий // Функция ПроверитьВозможностьОбновленияФайловВыгрузки(Знач КаталогВыгрузки, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") @@ -2717,7 +2721,7 @@ СтрокаПолныйДамп = ВРег("FullDump"); чтениеФайла = Новый ЧтениеТекста(ПутьКФайлуИзменений); СтрокаВыгрузки = Лев(ВРег(чтениеФайла.ПрочитатьСтроку()), СтрДлина(СтрокаПолныйДамп)); - + Если Не ПустаяСтрока(СокрЛП(СтрокаВыгрузки)) Тогда Лог.Отладка("Строка проверки на возможность выгрузки конфигурации: <%1> = <%2> ", СтрокаПолныйДамп, СтрокаВыгрузки); @@ -2733,10 +2737,10 @@ КонецФункции -// Функция проверяет версию текущей платформы по сравнению с требуемой +// Функция проверяет версию текущей платформы по сравнению с требуемой // Функция ИспользуемаяВерсияПлатформыСтаршеИлиРавна(Знач ТребуемаяВерсияПлатформы) Экспорт - + Лог.Отладка(СтрШаблон("Сравниваю версию <%1> с эталоном <%2>", мВерсияПлатформы, ТребуемаяВерсияПлатформы)); РезультатСравнения = СтроковыеФункции.СравнитьВерсии(мВерсияПлатформы, ТребуемаяВерсияПлатформы); @@ -2755,17 +2759,17 @@ СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКФайлуБазы); Иначе СтрокаСоединения = СтрШаблон( - "/IBConnectionString""Srvr='%1:%2'; Ref='%3'""", + "/IBConnectionString""Srvr='%1:%2'; Ref='%3'""", ПараметрыСтрокиСоединения.Сервер, ПараметрыСтрокиСоединения.Порт, ПараметрыСтрокиСоединения.ИмяБазы); КонецЕсли; - - Возврат СтрокаСоединения; + + Возврат СтрокаСоединения; КонецФункции -// возвращает параметры строки соединения с базой +// возвращает параметры строки соединения с базой // // Возвращаемое значение: // - Структура @@ -2773,11 +2777,11 @@ // * Сервер - Строка // * Порт - Строка // * ИмяБазы - Строка -// +// Функция ПараметрыСтрокиСоединения() Экспорт ПараметрыСтрокиСоединения = Новый Структура; - + ПараметрыСтрокиСоединения.Вставить("ПутьКФайлуБазы", ""); ПараметрыСтрокиСоединения.Вставить("Сервер", ""); ПараметрыСтрокиСоединения.Вставить("Порт", ""); diff --git a/tests/v8runner-test.os b/tests/v8runner-test.os index caeb1dc..ce210dc 100644 --- a/tests/v8runner-test.os +++ b/tests/v8runner-test.os @@ -9,17 +9,17 @@ Перем ВременныйКаталог; Процедура Инициализация() - + УправлениеКонфигуратором = Новый УправлениеКонфигуратором; Лог = Логирование.ПолучитьЛог("oscript.lib.v8runner"); Лог.УстановитьУровень(УровниЛога.Отладка); - + КонецПроцедуры Функция ПолучитьСписокТестов(Тестирование) Экспорт - + юТест = Тестирование; - + СписокТестов = Новый Массив; СписокТестов.Добавить("ТестДолжен_ИзменитьКаталогСборки"); СписокТестов.Добавить("ТестДолжен_СоздатьВременнуюБазу"); @@ -37,77 +37,84 @@ СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом"); СписокТестов.Добавить("ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу"); СписокТестов.Добавить("ТестДолжен_ОставитьФайлИнформации"); - + СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыСтрокиСоединенияСФайловойБазой"); СписокТестов.Добавить("ТестДолжен_СформироватьСтрокуСоединенияСФайловойБазой"); СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрыСтрокиСоединенияССервернойБазой"); СписокТестов.Добавить("ТестДолжен_СформироватьСтрокуСоединенияССервернойБазой"); Попытка - УправлениеКонфигуратором.ИспользоватьВерсиюПлатформы("8.3.23.1782"); - УправлениеКонфигуратором.ИспользоватьВерсиюПлатформы("8.3.23.1437"); + ПутьПриложения = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3.23.1782"); + Если Не ЗначениеЗаполнено(ПутьПриложения) Тогда + ВызватьИсключение "Не найден путь к платформе 8.3.23.1782"; + КонецЕсли; + ПутьПриложения = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3.23.1437"); + Если Не ЗначениеЗаполнено(ПутьПриложения) Тогда + ВызватьИсключение "Не найден путь к платформе 8.3.23.1437"; + КонецЕсли; + СписокТестов.Добавить("ТестДолжен_ПроверитьУстановкуПутиКПлатформе"); Исключение СписокТестов.Добавить("Не_обнаружена_платформа_23_1437_ТестДолжен_ПроверитьУстановкуПутиКПлатформе"); СписокТестов.Добавить("Не_обнаружена_платформа_23_1782_ТестДолжен_ПроверитьУстановкуПутиКПлатформе"); - КонецПопытки; - + КонецПопытки; + Возврат СписокТестов; - + КонецФункции Процедура ПослеЗапускаТеста() Экспорт - + Если ЗначениеЗаполнено(ВременныйКаталог) Тогда - + Утверждения.ПроверитьИстину(НайтиФайлы(ВременныйКаталог, "*").Количество() = 0, "Во временном каталоге " + ВременныйКаталог + " не должно остаться файлов"); - + ВременныеФайлы.УдалитьФайл(ВременныйКаталог); - + Утверждения.ПроверитьИстину(Не ФС.КаталогСуществует(ВременныйКаталог), "Временный каталог должен быть удален"); - + ВременныйКаталог = ""; - + КонецЕсли; - + КонецПроцедуры Процедура ТестДолжен_ИзменитьКаталогСборки() Экспорт - + ПоУмолчанию = ТекущийКаталог(); Утверждения.ПроверитьРавенство(УправлениеКонфигуратором.КаталогСборки(), ПоУмолчанию, "По умолчанию каталог сборки должен совпадать с текущим каталогом"); - + СтароеЗначение = УправлениеКонфигуратором.КаталогСборки(КаталогВременныхФайлов()); Утверждения.ПроверитьРавенство(СтароеЗначение, ПоУмолчанию, "Предыдущее значение каталога должно возвращяться при его смене"); Утверждения.ПроверитьРавенство(УправлениеКонфигуратором.КаталогСборки(), КаталогВременныхФайлов(), "Каталог сборки должен быть изменен"); - + КонецПроцедуры Процедура ТестДолжен_СоздатьВременнуюБазу() Экспорт - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + Утверждения.ПроверитьЛожь(УправлениеКонфигуратором.ВременнаяБазаСуществует(), "Временной базы не должно быть в каталоге <" + УправлениеКонфигуратором.ПутьКВременнойБазе() + ">"); УправлениеКонфигуратором.СоздатьФайловуюБазу(УправлениеКонфигуратором.ПутьКВременнойБазе()); Сообщить(УправлениеКонфигуратором.ВыводКоманды()); Утверждения.ПроверитьИстину(УправлениеКонфигуратором.ВременнаяБазаСуществует(), "Временная база должна существовать"); УправлениеКонфигуратором.УдалитьВременнуюБазу(); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + КонецПроцедуры Процедура ТестДолжен_СоздатьХранилищеКонфигурации() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); // по идеи надо проверить что конфигурация загружена. // Вопрос как? @@ -116,190 +123,190 @@ "Администратор"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_СоздатьХранилищеКонфигурацииРасширения() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); // по идеи надо проверить что конфигурация загружена. // Вопрос как? УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( - КаталогВременногоХранилища, + КаталогВременногоХранилища, "Администратор", - , + , , ИмяРасширения); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилища() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("mxl"); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); Ожидаем.Что(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + УправлениеКонфигуратором.ПолучитьОтчетПоВерсиямИзХранилища(КаталогВременногоХранилища, "Администратор", , ПутьКФайлуОтчета); Ожидаем.Что(ФС.ФайлСуществует(ПутьКФайлуОтчета), "Отчет из хранилища конфигурации должен существовать"); - + Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(ПутьКФайлуОтчета); ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилищаРасширения() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("mxl"); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepositoryExt"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); - + УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор", , , ИмяРасширения); - + УправлениеКонфигуратором.ПолучитьОтчетПоВерсиямИзХранилища( КаталогВременногоХранилища, "Администратор", , ПутьКФайлуОтчета, , , , , , , , , , ИмяРасширения); Ожидаем.Что(ФС.ФайлСуществует(ПутьКФайлуОтчета), "Отчет из хранилища конфигурации должен существовать"); - + Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(ПутьКФайлуОтчета); ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьСозданиеФайловПоставки() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогПоставки = ОбъединитьПути(ВременныйКаталог, "v8r_TempDitr"); - + ПутьФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + НомерВерсииВыпуска = "1.0"; - + ПутьФайлПредыдущейПоставки = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "0.9", "1Cv8.cf"); - + ПутьФайлПолнойПоставки = ОбъединитьПути(КаталогПоставки, НомерВерсииВыпуска + ".cf"); - + ПутьФайлаПоставкиОбновления = ОбъединитьПути(КаталогПоставки, НомерВерсииВыпуска + ".cfu"); - + МассивФайловПредыдущейПоставки = Новый Массив; МассивФайловПредыдущейПоставки.Добавить(ПутьФайлПредыдущейПоставки); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ПутьФайлКонфигурации, Истина); - + УправлениеКонфигуратором.СоздатьФайлыПоставки(ПутьФайлПолнойПоставки, ПутьФайлаПоставкиОбновления, МассивФайловПредыдущейПоставки); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьФайлПолнойПоставки), "Файл полной поставки конфигурации должен существовать"); Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьФайлаПоставкиОбновления), "Файл частичной поставки конфигурации должен существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(ПутьФайлПолнойПоставки); ВременныеФайлы.УдалитьФайл(ПутьФайлаПоставкиОбновления); ВременныеФайлы.УдалитьФайл(КаталогПоставки); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьНазначениеПутиКПлатформе() Экспорт - + ПутьПоУмолчанию = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3", РазрядностьПлатформы.x64x86); Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьПоУмолчанию)); Утверждения.ПроверитьРавенство(ПутьПоУмолчанию, УправлениеКонфигуратором.ПутьКПлатформе1С()); - + НовыйПуть = "тратата"; Попытка УправлениеКонфигуратором.ПутьКПлатформе1С(НовыйПуть); Исключение Возврат; КонецПопытки; - + ВызватьИсключение "Не было выброшено исключение при попытке установить неверный путь"; - + КонецПроцедуры Процедура ТестДолжен_ПроверитьУстановкуЯзыкаИнтерфейса() Экспорт - + ПоУмолчанию = "en"; УправлениеКонфигуратором.УстановитьКодЯзыка(ПоУмолчанию); - + МассивПараметров = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); Утверждения.ПроверитьБольшеИлиРавно(МассивПараметров.Найти("/L" + ПоУмолчанию), 0, "Массив параметров запуска должен содержать локализацию /L" + ПоУмолчанию + " строка:" + Строка(МассивПараметров)); Утверждения.ПроверитьБольшеИлиРавно(МассивПараметров.Найти("/VL" + ПоУмолчанию), 0, "Массив запуска должен содержать локализацию сеанаса /VL" + ПоУмолчанию + " строка:" + Строка(МассивПараметров)); - + КонецПроцедуры Процедура ТестДолжен_ДобавитьПользователяВХранилище() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + НовыйПользователь = "ТестовыйПользователь"; ПарольПользователя = "ТестПароль"; УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, @@ -309,36 +316,36 @@ ПарольПользователя, ПраваПользователяХранилища.ТолькоЧтение, Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); ВременныеФайлы.УдалитьФайл(ПутьКФайлуВерсии); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_СкопироватьПользователейИзХранилища() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор", "ПарольАдминистратора"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + НовыйПользователь = "ТестовыйПользователь"; ПарольПользователя = "123"; УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, @@ -348,23 +355,23 @@ ПарольПользователя, ПраваПользователяХранилища.ТолькоЧтение, Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); - + КаталогВременногоХранилища2 = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository2"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища2, "Администратор2", "ПарольАдминистратора2"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища2), "Временное хранилище 2 конфигурации должно существовать"); - + УправлениеКонфигуратором.КопироватьПользователейИзХранилища(КаталогВременногоХранилища2, "Администратор2", "ПарольАдминистратора2", @@ -372,31 +379,31 @@ "Администратор", "ПарольАдминистратора", Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища2, НовыйПользователь, ПарольПользователя); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища2); ВременныеФайлы.УдалитьФайл(ПутьКФайлуВерсии); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_СкопироватьПользователейИзХранилищаРасширения() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( @@ -407,7 +414,7 @@ ИмяРасширения); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + НовыйПользователь = "ТестовыйПользователь"; ПарольПользователя = "123"; УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, @@ -418,15 +425,15 @@ ПраваПользователяХранилища.ТолькоЧтение, Истина, ИмяРасширения); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя, , ИмяРасширения); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); - + КаталогВременногоХранилища2 = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository2"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); @@ -437,7 +444,7 @@ , ИмяРасширения); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища2), "Временное хранилище 2 конфигурации должно существовать"); - + УправлениеКонфигуратором.КопироватьПользователейИзХранилища(КаталогВременногоХранилища2, "Администратор2", "ПарольАдминистратора2", @@ -446,175 +453,175 @@ "ПарольАдминистратора", Истина, ИмяРасширения); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища2, НовыйПользователь, ПарольПользователя, , ИмяРасширения); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); Утверждения.ПроверитьИстину(Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища2); ВременныеФайлы.УдалитьФайл(ПутьКФайлуВерсии); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ОставитьФайлИнформации() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + // Переинициализация класса, чтобы предыдущие установки не влияли на чистоту теста УправлениеКонфигуратором = Новый УправлениеКонфигуратором; - + внешнийФайлИнформации = ВременныеФайлы.СоздатьФайл(); УправлениеКонфигуратором.УстановитьИмяФайлаСообщенийПлатформы(внешнийФайлИнформации); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(внешнийФайлИнформации), "Внешний файл информации должен существовать"); - + текстВывода = УправлениеКонфигуратором.ВыводКоманды(); - + Чтение = Новый ЧтениеТекста(внешнийФайлИнформации); текстВФайле = Чтение.Прочитать(); Чтение.Закрыть(); - + Утверждения.ПроверитьРавенство(текстВФайле, текстВывода, "Вывод и текст файла должны совпадать"); Утверждения.ПроверитьРавенство(внешнийФайлИнформации, УправлениеКонфигуратором.ФайлИнформации(), "Внешний файл и файл информации должны совпадать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); ВременныеФайлы.УдалитьФайл(внешнийФайлИнформации); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + // Переинициализация класса, чтобы предыдущие установки не влияли на чистоту теста УправлениеКонфигуратором = Новый УправлениеКонфигуратором; - + внешнийФайлИнформацииДописываемый = ВременныеФайлы.СоздатьФайл(); УправлениеКонфигуратором.УстановитьИмяФайлаСообщенийПлатформы(внешнийФайлИнформацииДописываемый, Ложь); - + текстКоторыйУжеЛежитВФайле = "Very important text in file. Do not delete."; - + СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; - + Кодировка = ?(ЭтоWindows, КодировкаТекста.ANSI, "utf-8"); ЗаписьТекста = Новый ЗаписьТекста(внешнийФайлИнформацииДописываемый, Кодировка); ЗаписьТекста.ЗаписатьСтроку(текстКоторыйУжеЛежитВФайле); ЗаписьТекста.Закрыть(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(внешнийФайлИнформацииДописываемый), "Внешний файл информации должен существовать"); - + текстВывода = УправлениеКонфигуратором.ВыводКоманды(); - + Чтение = Новый ЧтениеТекста(внешнийФайлИнформацииДописываемый); текстВФайле = Чтение.Прочитать(); Чтение.Закрыть(); - + Утверждения.ПроверитьИстину(СтрНайти(текстВФайле, текстКоторыйУжеЛежитВФайле) > 0, "В файле должен быть текст, записанный ранее"); Утверждения.ПроверитьИстину(СтрНайти(текстВФайле, текстВывода) > 0, "В файле должен быть текст вывода последней команды"); Утверждения.ПроверитьНеРавенство(текстВФайле, текстВывода, "Текст в файле вывода и в выводе должны отличаться"); Утверждения.ПроверитьРавенство(внешнийФайлИнформацииДописываемый, УправлениеКонфигуратором.ФайлИнформации(), "Внешний файл и файл информации должны совпадать"); - + ВременныеФайлы.УдалитьФайл(КаталогВременногоХранилища); ВременныеФайлы.УдалитьФайл(внешнийФайлИнформацииДописываемый); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("txt"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); - + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( ФайлКонфигурации, ПутьКФайлуОтчета ); - + ФайлОтчетаСуществует = ФС.ФайлСуществует(ПутьКФайлуОтчета); - + ВременныеФайлы.УдалитьФайл(ПутьКФайлуОтчета); ВременныеФайлы.УдалитьФайл(ВременныйКаталог); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); - + Утверждения.ПроверитьИстину( ФайлОтчетаСуществует, "Отчет о сравнении конфигурации с файлом должен существовать" ); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьОсновнаяКонфигурацияИдентичнаФайлу() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); - + КонфигурацииИдентичны = УправлениеКонфигуратором.КонфигурацияИФайлИдентичны( ФайлКонфигурации ); - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); УдалитьФайлы(ВременныйКаталог); - + Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("txt"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); - + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( ФайлРасширения, ПутьКФайлуОтчета, @@ -622,121 +629,121 @@ , ИмяРасширения ); - + ФайлОтчетаСуществует = ФС.ФайлСуществует(ПутьКФайлуОтчета); - + ВременныеФайлы.УдалитьФайл(ПутьКФайлуОтчета); ВременныеФайлы.УдалитьФайл(ВременныйКаталог); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); - + Утверждения.ПроверитьИстину( ФайлОтчетаСуществует, "Отчет о сравнении конфигурации с файлом должен существовать" ); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); - + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); - + КонфигурацииИдентичны = УправлениеКонфигуратором.КонфигурацияИФайлИдентичны( ФайлРасширения, ИмяРасширения ); - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); ВременныеФайлы.УдалитьФайл(ВременныйКаталог); - + Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); - + КонецПроцедуры Процедура ТестДолжен_ПолучитьПараметрыСтрокиСоединенияСФайловойБазой() Экспорт - + ПоУмолчанию = ТекущийКаталог(); - + ПараметрыСтрокиСоединения = УправлениеКонфигуратором.ПараметрыСтрокиСоединения(); Утверждения.Проверить(ПараметрыСтрокиСоединения.Свойство("ПутьКФайлуБазы"), "Стркутура должна содержать ключ 'ПутьКФайлуБазы'"); - + КонецПроцедуры Процедура ТестДолжен_СформироватьСтрокуСоединенияСФайловойБазой() Экспорт - + ПоУмолчанию = ТекущийКаталог(); СтрокаСоединенияЭталон = "/F""D:\1c\1Cv8.1CD"""; - + ПараметрыСтрокиСоединения = УправлениеКонфигуратором.ПараметрыСтрокиСоединения(); ПараметрыСтрокиСоединения.ПутьКФайлуБазы = "D:\1c\1Cv8.1CD"; СтрокаСоединения = УправлениеКонфигуратором.СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения); - + ТестОшибки = СтрШаблон("Строка соединения %1 НЕ совпадает с эталоном %2", СтрокаСоединения, СтрокаСоединенияЭталон); - + Утверждения.ПроверитьРавенство(СтрокаСоединения, СтрокаСоединенияЭталон, ТестОшибки); - + КонецПроцедуры Процедура ТестДолжен_ПолучитьПараметрыСтрокиСоединенияССервернойБазой() Экспорт - + ПоУмолчанию = ТекущийКаталог(); - + ПараметрыСтрокиСоединения = УправлениеКонфигуратором.ПараметрыСтрокиСоединения(); Утверждения.Проверить(ПараметрыСтрокиСоединения.Свойство("Сервер"), "Стркутура должна содержать ключ 'Сервер'"); Утверждения.Проверить(ПараметрыСтрокиСоединения.Свойство("Порт"), "Стркутура должна содержать ключ 'Порт'"); Утверждения.Проверить(ПараметрыСтрокиСоединения.Свойство("ИмяБазы"), "Стркутура должна содержать ключ 'ИмяБазы'"); - + КонецПроцедуры Процедура ТестДолжен_СформироватьСтрокуСоединенияССервернойБазой() Экспорт - + ПоУмолчанию = ТекущийКаталог(); СтрокаСоединенияЭталон = "/IBConnectionString""Srvr='someserver:2041'; Ref='database'"""; - + ПараметрыСтрокиСоединения = УправлениеКонфигуратором.ПараметрыСтрокиСоединения(); ПараметрыСтрокиСоединения.Сервер = "someserver"; ПараметрыСтрокиСоединения.Порт = "2041"; ПараметрыСтрокиСоединения.ИмяБазы = "database"; - + СтрокаСоединения = УправлениеКонфигуратором.СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения); - + ТестОшибки = СтрШаблон("Строка соединения %1 НЕ совпадает с эталоном %2", СтрокаСоединения, СтрокаСоединенияЭталон); - + Утверждения.ПроверитьРавенство(СтрокаСоединения, СтрокаСоединенияЭталон, ТестОшибки); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьУстановкуПутиКПлатформе() Экспорт - + ПутьПоУмолчанию = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3", РазрядностьПлатформы.x64x86); Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьПоУмолчанию)); Утверждения.ПроверитьРавенство(ПутьПоУмолчанию, УправлениеКонфигуратором.ПутьКПлатформе1С()); - + ПутьДоТестовойВерсии = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3.23.1782"); - Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьДоТестовойВерсии)); + Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьДоТестовойВерсии), "Не найдена платформа 8.3.23.1782"); Утверждения.ПроверитьРавенство(ПутьДоТестовойВерсии, УправлениеКонфигуратором.ПутьКПлатформе1С(ПутьДоТестовойВерсии)); ПутьДоТестовойВерсии = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы("8.3.23.1437"); - Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьДоТестовойВерсии)); + Утверждения.ПроверитьЛожь(ПустаяСтрока(ПутьДоТестовойВерсии), "Не найдена платформа 8.3.23.1437"); Утверждения.ПроверитьРавенство(ПутьДоТестовойВерсии, УправлениеКонфигуратором.ПутьКПлатформе1С(ПутьДоТестовойВерсии)); КонецПроцедуры @@ -748,5 +755,4 @@ ////////////////////////////////////////////////////////////////////////////////////// // Инициализация - Инициализация();