diff --git a/lib.config b/lib.config index a5de465..93e9d01 100644 --- a/lib.config +++ b/lib.config @@ -2,6 +2,7 @@ + \ No newline at end of file diff --git a/packagedef b/packagedef index b7eb37c..10eaddf 100644 --- a/packagedef +++ b/packagedef @@ -1,6 +1,6 @@  Описание.Имя("v8runner") - .Версия("1.3.0") + .Версия("1.4.0") .ВерсияСреды("1.0.19") .ЗависитОт("asserts", "0.4.0") .ЗависитОт("fs", "0.5.0") diff --git a/readme.md b/readme.md index 1b2dd1b..6f96eae 100644 --- a/readme.md +++ b/readme.md @@ -88,6 +88,8 @@ - Процедура ВыгрузитьРасширениеВФайл(Знач ПутьФайлРасширения, Знач ИмяРасширения) - Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, Знач ИмяРасширения = "–AllExtensions", Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина) - Процедура ВыгрузитьРасширениеВФайлы(Знач КаталогВыгрузки, Знач ИмяРасширения = "–AllExtensions", Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") +- Процедура ПолучитьОтчетОСравненииКонфигурацииСФайлом(Знач ПутьКФайлуКонфигурации, Знач ПутьКОтчету, Знач ТипОтчета = Неопределено, Знач ФорматОтчета = "txt", Знач ИмяРасширения = "") +- Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "") ### Вспомогательные и настроечные функции diff --git a/src/v8runner.os b/src/v8runner.os index cd3d625..1b69f32 100644 --- a/src/v8runner.os +++ b/src/v8runner.os @@ -50,7 +50,7 @@ Процедура ПоказатьКонтекстВРежимеОтладки() Лог.Отладка("КлючСоединенияСБазой "+ мКонтекстКоманды.КлючСоединенияСБазой); - Лог.Отладка("ИмяПользователя <"+ мКонтекстКоманды.ИмяПользователя+">"); + Лог.Отладка("ИмяПользователя <"+ мКонтекстКоманды.ИмяПользователя + ">"); Лог.Отладка(?(ПустаяСтрока(мКонтекстКоманды.Пароль), "Пароль не задан", " Задан пароль "+ мКонтекстКоманды.Пароль)); КонецПроцедуры @@ -58,11 +58,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; ФайлРезультата = ОбъединитьПути(КаталогСборки(), "source.cf"); @@ -86,14 +86,14 @@ // //Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // ПутьКФайлуРезультата - Строка - путь к файлу, в который выводится отчет (формат mxl) -// НомерНачальнойВерсии - Число - номер сохраненной версии, от которой начинается строиться отчет; (По умолчанию 0) +// НомерНачальнойВерсии - Число - номер сохраненной версии, от которой начинает строиться отчет; (По умолчанию 0) // НомерКонечнойВерсии - Число, Неопределено - номер сохраненной версии, по которую строится отчет; (по умолчанию "Неопределено") // ТипГруппировки - ТипыГруппировкиОтчетаПоВерсиямХранилища - тип группировкой отчета // ГруппировкаПоОбъектам - признак формирования отчета по версиям с группировкой по объектам; -// ГруппировкаПоКоммитам - признак формирования отчета по версиям с группировкой по комментарию. (по умолчанию) +// ГруппировкаПоКоммитам - признак формирования отчета по версиям с группировкой по комментарию (по умолчанию). // Процедура ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, @@ -105,11 +105,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryReport """+ПутьКФайлуРезультата + """"); @@ -132,7 +132,7 @@ КонецПроцедуры -Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки ="", +Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", знач ПутьФайлаПоставкиОбновления = "", Знач ДистрибутивыДляОбновления = Неопределено, // Массив файлов дистрибутива cf Знач ПутьФайлаСПараметрамиЛицензирования = "") Экспорт @@ -143,29 +143,29 @@ Если НЕ ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) И НЕ ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) Тогда - ВызватьИсключение "Не правильно заданы параметры процедуры <" + "СоздатьФайлыПоставки" +">"; + ВызватьИсключение "Не правильно заданы параметры процедуры <" + "СоздатьФайлыПоставки" + ">"; КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) Тогда - Параметры.Добавить("-cffile "+ОбернутьВКавычки(ПутьФайлаПолнойПоставки)+" "); + Параметры.Добавить("-cffile "+ОбернутьВКавычки(ПутьФайлаПолнойПоставки) +" "); КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) И Не ДистрибутивыДляОбновления = Неопределено И ДистрибутивыДляОбновления.Количество() > 0 Тогда - Параметры.Добавить("-cfufile "+ОбернутьВКавычки(ПутьФайлаПоставкиОбновления)+" "); + Параметры.Добавить("-cfufile "+ОбернутьВКавычки(ПутьФайлаПоставкиОбновления) +" "); // Поддерживаются только файлы cf Для каждого ДистрибутивОбновления Из ДистрибутивыДляОбновления Цикл - Параметры.Добавить("-f "+ОбернутьВКавычки(ДистрибутивОбновления)+" "); + Параметры.Добавить("-f "+ОбернутьВКавычки(ДистрибутивОбновления) +" "); КонецЦикла; КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаСПараметрамиЛицензирования) Тогда - Параметры.Добавить("-digisign "+ОбернутьВКавычки(ПутьФайлаСПараметрамиЛицензирования)+" "); + Параметры.Добавить("-digisign "+ОбернутьВКавычки(ПутьФайлаСПараметрамиЛицензирования) +" "); КонецЕсли; ВыполнитьКоманду(Параметры); @@ -175,17 +175,17 @@ Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, Знач ПользовательХранилища, Знач ПарольХранилища = "", - знач ПодключитьБазуКХранилищю = Ложь) Экспорт + знач ПодключитьБазуКХранилищу = Ложь) Экспорт ОбеспечитьКаталог(ПапкаХранилища); Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+ПапкаХранилища+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+ПапкаХранилища + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCreate "); @@ -194,7 +194,7 @@ Параметры.Добавить("-ChangesAllowedRule ObjectNotSupported"); Параметры.Добавить("-ChangesNotRecommendedRule ObjectNotSupported"); - Если ПодключитьБазуКХранилищю = Ложь Тогда + Если ПодключитьБазуКХранилищу = Ложь Тогда Параметры.Добавить("-NoBind"); КонецЕсли; @@ -206,8 +206,8 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // ПутьКФайлуСоСпискомОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // путь к файлу формата XML со списком объектов. Если опция используется, будет выполнена попытка захватить только объекты, // указанные в файле. Если опция не используется, будут захвачены все объекты конфигурации. @@ -223,11 +223,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryLock "); @@ -249,8 +249,8 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка отменить захват только для объектов, указанных в файле. // Если опция не используется, захват будет отменен для всех объектов конфигурации. @@ -267,11 +267,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryUnlock "); @@ -292,8 +292,8 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка поместить только объекты, указанные в файле. // Если опция не используется, будут помещены изменения всех объектов конфигурации. @@ -314,11 +314,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCommit "); @@ -352,8 +352,8 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // Метка - Строка - текст метки // Комментарий - Строка - текст комментария к устанавливаемой метки. // Версия - Строка - номер версии хранилища, для которого устанавливается метка. @@ -370,11 +370,11 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositorySetLabel "); @@ -403,8 +403,8 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // ИгнорироватьНаличиеПодключеннойБД - Булево - Флаг игнорирования наличия уже у пользователя уже подключенной базы данных. По умолчанию = Ложь // Выполняет подключение даже в том случае, если для данного пользователя уже есть конфигурация, связанная с данным хранилищем.. // ЗаменитьКонфигурациюБД - Булево - Флаг замены конфигурации БД на конфигурацию хранилища (По умолчанию Истина) @@ -418,11 +418,11 @@ ) Экспорт Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryBindCfg "); @@ -450,8 +450,8 @@ // Если пользователь с указанным именем существует, то пользователь добавлен не будет. // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // НовыйПользователь - Строка - Имя создаваемого пользователя. // ПарольПользователя - Строка - Пароль создаваемого пользователя. // Право - ПраваПользователяХранилища - Права пользователя. Возможные значения: @@ -472,24 +472,24 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryAddUser "); - Параметры.Добавить(СтрШаблон("-User ""%1""",НовыйПользователь)); + Параметры.Добавить(СтрШаблон("-User ""%1""", НовыйПользователь)); Если Не ПустаяСтрока(ПарольПользователя) Тогда - Параметры.Добавить(СтрШаблон("-Pwd ""%1""",ПарольПользователя)); + Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольПользователя)); КонецЕсли; Если Не ЗначениеЗаполнено(Право) ТОгда Право = ПраваПользователяХранилища.ТолькоЧтение; КонецЕсли; - Параметры.Добавить(СтрШаблон("-Rights %1",Право)); + Параметры.Добавить(СтрШаблон("-Rights %1", Право)); Если ВосстановитьУдаленного Тогда Параметры.Добавить("-RestoreDeletedUser"); @@ -504,8 +504,8 @@ // //Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СтрокаСоединенияХранилищаКопии - Строка - Путь к хранилищу, из которого выполняется копирование пользователей. // ПользовательХранилищаКопии - Строка - Имя пользователя хранилища, из которого выполняется копирование пользователей. // ПарольХранилищаКопии - Строка - Пароль пользователя хранилища, из которого выполняется копирование пользователей. @@ -521,18 +521,18 @@ Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCopyUsers "); - Параметры.Добавить(СтрШаблон("-Path ""%1""",СтрокаСоединенияХранилищаКопии)); - Параметры.Добавить(СтрШаблон("-User ""%1""",ПользовательХранилищаКопии)); + Параметры.Добавить(СтрШаблон("-Path ""%1""", СтрокаСоединенияХранилищаКопии)); + Параметры.Добавить(СтрШаблон("-User ""%1""", ПользовательХранилищаКопии)); Если Не ПустаяСтрока(ПарольХранилищаКопии) Тогда - Параметры.Добавить(СтрШаблон("-Pwd ""%1""",ПарольХранилищаКопии)); + Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольХранилищаКопии)); КонецЕсли; Если ВосстановитьУдаленного Тогда @@ -554,7 +554,7 @@ // ПутьКФайлуИзменений - Строка - Указывает путь к файлу,в который будут выведены изменения текущей конфигурации. Изменения вычисляются относительно файла версий в текущем каталоге выгрузки. // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // -// Для того чтобы работали функции 8.3.10. необходимо явно указать версию +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") Экспорт Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда @@ -600,7 +600,7 @@ // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // ФорматВыгрузки - РежимВыгрузкиКонфигурации - По умолчанию выгрузка производится в иерархическом формате. // -// Для того чтобы работали функции 8.3.10. необходимо явно указать версию +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ВыгрузитьИзмененияКонфигурацииВФайл(Знач КаталогВыгрузки, Знач ПутьКФайлуИзменений, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") Экспорт Ожидаем.Что(ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10"), "Данная процедура не поддерживается выбранной версией платформы") @@ -640,7 +640,7 @@ // ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml, // соответствующий загруженной конфигурации. // Если выполняется частичная загрузка (используется опция -files или -listFile), файл версий будет обновлен. -// Для того чтобы работали функции 8.3.10. необходимо явно указать версию +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ЗагрузитьКонфигурациюИзФайлов(Знач КаталогЗагрузки, Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина) Экспорт Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда @@ -792,7 +792,7 @@ Процедура ЗагрузитьКонфигурациюИзФайла(Знач ПутьФайлКонфигурации, Знач ОбновитьКонфигурациюИБ = Ложь) Экспорт ФайлКонфигурации = Новый Файл(ПутьФайлКонфигурации); - Ожидаем.Что(ФайлКонфигурации.Существует(), "Файл конфигурации <"+ПутьФайлКонфигурации+"> существует, а это не так").ЭтоИстина(); + Ожидаем.Что(ФайлКонфигурации.Существует(), "Файл конфигурации <"+ПутьФайлКонфигурации +"> существует, а это не так").ЭтоИстина(); Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь или ОбновитьКонфигурациюИБ = Истина, "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); @@ -821,7 +821,7 @@ Процедура ЗагрузитьРасширениеИзФайла(Знач ПутьФайлРасширения, Знач ИмяРасширения, Знач ОбновитьКонфигурациюИБ = Ложь) Экспорт ФайлРасширения = Новый Файл(ПутьФайлРасширения); - Ожидаем.Что(ФайлРасширения.Существует(), "Файл расширения <"+ПутьФайлРасширения+"> существует, а это не так").ЭтоИстина(); + Ожидаем.Что(ФайлРасширения.Существует(), "Файл расширения <"+ПутьФайлРасширения +"> существует, а это не так").ЭтоИстина(); Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь или ОбновитьКонфигурациюИБ = Истина, "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); @@ -1055,7 +1055,7 @@ КонецПроцедуры -Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону="", Знач ИмяБазыВСписке="") Экспорт +Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт Лог.Отладка("Создаю файловую базу "+КаталогБазы); @@ -1064,7 +1064,7 @@ ПараметрыЗапуска = Новый Массив; ПараметрыЗапуска.Добавить("CREATEINFOBASE"); - ПараметрыЗапуска.Добавить("File="""+КаталогБазы+""""); + ПараметрыЗапуска.Добавить("File=""" + КаталогБазы + """"); Если мОчищатьФайлИнформации Тогда ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации())); Иначе @@ -1072,17 +1072,17 @@ КонецЕсли; Если ИмяБазыВСписке <> "" Тогда - ПараметрыЗапуска.Добавить("/AddInList"""+ ИмяБазыВСписке + """"); + ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; - Если ПутьКШаблону<> "" Тогда - ПараметрыЗапуска.Добавить("/UseTemplate"""+ ПутьКШаблону + """"); + Если ПутьКШаблону <> "" Тогда + ПараметрыЗапуска.Добавить("/UseTemplate""" + ПутьКШаблону + """"); КонецЕсли; Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыка) Тогда - ПараметрыЗапуска.Добавить("/L"+мКонтекстКоманды.КодЯзыка); + ПараметрыЗапуска.Добавить("/L" + мКонтекстКоманды.КодЯзыка); КонецЕсли; Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда - ПараметрыЗапуска.Добавить("/VL"+мКонтекстКоманды.КодЯзыкаСеанса); + ПараметрыЗапуска.Добавить("/VL" + мКонтекстКоманды.КодЯзыкаСеанса); КонецЕсли; СохранитьТекстФайлаИнформации(); @@ -1132,7 +1132,8 @@ Лог.Отладка("Создание серверной ИБ ""%1\%2""", Сервер1С, ИмяИБ); - РазрешитьРегЗадания = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьРегЗадания", Ложь); + РазрешитьРегЗадания = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьРегЗадания", Ложь); + РазрешитьВыдачуЛицензий = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьВыдачуЛицензий", Ложь); ТипСУБД = ПолучитьПараметр(ПараметрыСУБД, "ТипСУБД", "MSSQLServer"); СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД"); @@ -1159,6 +1160,7 @@ + ";DBPwd=" + СокрЛП(ПарольСУБД) + ";DB=" + СокрЛП(ИмяБД) + ";SQLYOffs=" + СокрЛП(СмещениеДат) + + ";LicDstr=" + ?(РазрешитьВыдачуЛицензий, "Y", "N") + ";CrSQLDB=" + ?(СоздаватьБД, "Y", "N") + ";SchJobDn=" + ?(РазрешитьРегЗадания, "N", "Y"); @@ -1218,7 +1220,7 @@ Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) Экспорт ФайлВыгрузки = Новый Файл(ПутьВыгрузкиИБ); - Ожидаем.Что(ФайлВыгрузки.Существует(), "Файл выгрузки <"+ПутьВыгрузкиИБ+"> существует, а это не так").ЭтоИстина(); + Ожидаем.Что(ФайлВыгрузки.Существует(), "Файл выгрузки <"+ПутьВыгрузкиИБ +"> существует, а это не так").ЭтоИстина(); ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); @@ -1287,7 +1289,7 @@ УстановитьВывод(ПрочитатьФайлИнформации()); Если КодВозврата <> 0 и мИсключениеПриОшибкеВыполненияКоманды Тогда - Лог.Ошибка("Получен ненулевой код возврата "+КодВозврата+". Выполнение скрипта остановлено!"); + Лог.Ошибка("Получен ненулевой код возврата "+КодВозврата +". Выполнение скрипта остановлено!"); ВызватьИсключение ВыводКоманды(); Иначе Лог.Отладка("Код возврата равен 0"); @@ -1301,10 +1303,22 @@ Возврат СтандартныеПараметрыЗапускаКонфигуратора(); КонецФункции -Процедура ВыполнитьРасширеннуюПроверкуКонфигуратора(Ключи) Экспорт +Процедура ВыполнитьРасширеннуюПроверкуКонфигуратора(Ключи, + Знач СтрокаСоединенияСХранилищем = "", + Знач ПользовательХранилища = "", + Знач ПарольХранилища = "") Экспорт Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); + Если Не ПустаяСтрока(СтрокаСоединенияСХранилищем) Тогда + Параметры.Добавить("/ConfigurationRepositoryF """ + СтрокаСоединенияСХранилищем + """"); + Параметры.Добавить("/ConfigurationRepositoryN """ + ПользовательХранилища + """"); + + Если Не ПустаяСтрока(ПарольХранилища) Тогда + Параметры.Добавить("/ConfigurationRepositoryP """ + ПарольХранилища + """"); + КонецЕсли; + КонецЕсли; + Параметры.Добавить("/CheckConfig"); Для Каждого СтрокаКлюча Из Ключи Цикл @@ -1342,7 +1356,7 @@ ПараметрыСвязиСБазой = ПолучитьПараметрыЗапуска(); ПараметрыСвязиСБазой[0] = "ENTERPRISE"; Если Не ПустаяСтрока(КлючЗапуска) Тогда - ПараметрыСвязиСБазой.Добавить("/C"+КлючЗапуска); + ПараметрыСвязиСБазой.Добавить("/C" + КлючЗапуска); КонецЕсли; Если УправляемыйРежим = Истина Тогда ПараметрыСвязиСБазой.Вставить(2, "/RunModeManagedApplication"); @@ -1383,7 +1397,7 @@ Функция ПолучитьПутьКВерсииПлатформы(Знач ВерсияПлатформы, Знач Разрядность = Неопределено) Экспорт Если Лев(ВерсияПлатформы, 2) <> "8." Тогда - ВызватьИсключение "Неверная версия платформы <"+ВерсияПлатформы+">"; + ВызватьИсключение "Неверная версия платформы <"+ ВерсияПлатформы + ">"; КонецЕсли; ПутьКПредприятию = Платформа1С.ПутьКПредприятию(ВерсияПлатформы, Разрядность); @@ -1450,21 +1464,21 @@ КонецПроцедуры Функция ПутьКТонкомуКлиенту1С(Знач ПутьКПлатформе1С = "") Экспорт - Лог.Отладка("ПутьКТонкомуКлиенту1С: Путь платформы 1С <"+ПутьКПлатформе1С+">"); + Лог.Отладка("ПутьКТонкомуКлиенту1С: Путь платформы 1С <"+ПутьКПлатформе1С + ">"); Если ПутьКПлатформе1С = "" Тогда ПутьКПлатформе1С = ПутьКПлатформе1С(); - Лог.Отладка("ПутьКТонкомуКлиенту1С: вычислили Путь платформы 1С <"+ПутьКПлатформе1С+">"); + Лог.Отладка("ПутьКТонкомуКлиенту1С: вычислили Путь платформы 1С <"+ПутьКПлатформе1С + ">"); КонецЕсли; ФайлПриложения = Новый Файл(ПутьКПлатформе1С); Каталог = ФайлПриложения.Путь; - ИмяФайлаТонкогоКлиента = ?(ЭтоWindows=Истина, "1cv8c.exe", "1cv8c"); + ИмяФайлаТонкогоКлиента = ?(ЭтоWindows = Истина, "1cv8c.exe", "1cv8c"); ФайлПриложения = Новый Файл(ОбъединитьПути(Каталог, ИмяФайлаТонкогоКлиента)); Если Не ФайлПриложения.Существует() Тогда ВызватьИсключение "Не установлен тонкий клиент"; КонецЕсли; - Лог.Отладка("ПутьКТонкомуКлиенту1С: получили путь к тонкому клиенту 1С <"+ФайлПриложения.ПолноеИмя+">"); + Лог.Отладка("ПутьКТонкомуКлиенту1С: получили путь к тонкому клиенту 1С <"+ФайлПриложения.ПолноеИмя + ">"); Возврат ФайлПриложения.ПолноеИмя; КонецФункции @@ -1502,7 +1516,7 @@ Функция УстановитьПризнакОжиданияВыполненияПрограммы(НовыйПризнак) Экспорт Ожидаем.Что(НовыйПризнак = Ложь или НовыйПризнак = Истина, - "Параметр признак ожидания выполнения программы 1С должен быть или Истина или Ложь, а это не так").ЭтоИстина(); + "Параметр ""Признак ожидания выполнения программы 1С"" должен быть или Истина или Ложь, а это не так").ЭтоИстина(); СтарыйПризнак = мПризнакОжиданияВыполненияПрограммы; мПризнакОжиданияВыполненияПрограммы = НовыйПризнак; @@ -1533,6 +1547,152 @@ КонецФункции // ИсключениеПриОшибкеВыполненияКоманды() Экспорт +// Формирует отчёт о сравнении основной конфигурации\конфигурации расширения в файл. +// +// Параметры: +// ПутьКФайлуКонфигурации - Строка - Путь к файлу cf/cfe с которым необходимо произвести сравнение +// ПутьКОтчету - Строка - Путь в который необходимо записать отчёт +// ТипОтчета - ТипыОтчетовОСравнении - Тип отчёта о сравнении полный или краткий +// ФорматОтчета - Строка - Формат файла отчета. Возмодные значения: txt, mxl +// ИмяРасширения - Строка - Имя расширения конфигурации +// +Процедура ПолучитьОтчетОСравненииКонфигурацииСФайлом( + Знач ПутьКФайлуКонфигурации, + Знач ПутьКОтчету, + Знач ТипОтчета = Неопределено, + Знач ФорматОтчета = "txt", + Знач ИмяРасширения = "") Экспорт + + Если ТипОтчета = Неопределено Тогда + ТипОтчета = ТипыОтчетовОСравнении.Полный; + КонецЕсли; + + ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); + ПараметрыЗапуска.Добавить("/CompareCfg"); + Если ЗначениеЗаполнено(ИмяРасширения) Тогда + ПараметрыЗапуска.Добавить("-FirstConfigurationType ExtensionConfiguration"); + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.12") Тогда + ПараметрыЗапуска.Добавить(СтрШаблон("-FirstName %1", ИмяРасширения)); + Иначе + ПараметрыЗапуска.Добавить(СтрШаблон("-FirstConfigurationKey %1", ИмяРасширения)); + КонецЕсли; + Иначе + ПараметрыЗапуска.Добавить("-FirstConfigurationType MainConfiguration"); + КонецЕсли; + + ПараметрыЗапуска.Добавить("-SecondConfigurationType File"); + + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.12") Тогда + ПараметрыЗапуска.Добавить("-SecondFile "); + Иначе + ПараметрыЗапуска.Добавить("-SecondConfigurationKey "); + КонецЕсли; + + ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКФайлуКонфигурации)); + + ПараметрыЗапуска.Добавить("-ReportType "); + ПараметрыЗапуска.Добавить(ФорматОтчета); + + ПараметрыЗапуска.Добавить("-ReportFormat "); + ПараметрыЗапуска.Добавить(ТипОтчета); + + ПараметрыЗапуска.Добавить("-ReportFile "); + ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКОтчету)); + + ВыполнитьКоманду(ПараметрыЗапуска); + +КонецПроцедуры + +// Функция проверяет что основная конфигурация\конфигурация расширения идентична с файлом +// +// Параметры: +// ПутьКФайлуКонфигурации - Строка - Путь к файлу cf/cfe с которым необходимо произвести сравнение +// ИмяРасширения - Строка - Имя расширения конфигурации +// +// Возвращаемое значение: +// Булево - Истина - конфигурации идентичны. +// +Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "") Экспорт + + ЭталонОтчетаБезИзменений = НСтр( + "ru = ' + |***- Объект изменен + |-->- Объект присутствует только в %1 конфигурации + |<--- Объект присутствует только в файле + |^- Порядок объекта изменен' + |; + |en = ' + |***- Object changed + |-->- Object available only in the %1 + |<--- Object available only in the file + |^- Object order changed'", + мКонтекстКоманды.КодЯзыкаСеанса + ); + + Если ЗначениеЗаполнено(ИмяРасширения) Тогда + СтрокаДополнения = НСтр("ru = 'расширении'; en = 'configuration extension'", мКонтекстКоманды.КодЯзыкаСеанса); + Иначе + СтрокаДополнения = НСтр("ru = 'основной'; en = 'main configuration'", мКонтекстКоманды.КодЯзыкаСеанса); + КонецЕсли; + + ОтчетБезИзменений = СтрШаблон( + ЭталонОтчетаБезИзменений, + СтрокаДополнения + ); + + Лог.Отладка("Сформировал эталон отчета о сравнении: " + ОтчетБезИзменений); + + ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла(".txt"); + + Лог.Отладка("Формирую отчет о сравнении конфигураций"); + + ПолучитьОтчетОСравненииКонфигурацииСФайлом( + ПутьКФайлуКонфигурации, + ПутьКФайлуОтчета, + ТипыОтчетовОСравнении.Краткий, + "txt", + ИмяРасширения + ); + + ФайлОтчета = Новый Файл(ПутьКФайлуОтчета); + + Если ФайлОтчета.Существует() Тогда + + Лог.Отладка("Нашёл файл отчета о сранении. Читаю файл."); + + ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуОтчета); + СтрокаТекста = ЧтениеТекста.ПрочитатьСтроку(); + Отчет = ""; + + Пока СтрокаТекста <> Неопределено Цикл + + Если Не ПустаяСтрока(СтрокаТекста) Тогда + Отчет = Отчет + Символы.ПС + СокрЛП(СтрокаТекста); + КонецЕсли; + + СтрокаТекста = ЧтениеТекста.ПрочитатьСтроку(); + КонецЦикла; + + ЧтениеТекста.Закрыть(); + + Лог.Отладка("Прочитал файл отчета о сравнении: " + Отчет); + + Попытка + Лог.Отладка("Удаляю файл отчёта 1С"); + УдалитьФайлы(ФайлОтчета.ПолноеИмя); + Исключение + Лог.Предупреждение("Не удалось удалить файл отчёта: " + ОписаниеОшибки()); + КонецПопытки; + + Возврат Отчет = ОтчетБезИзменений; + + Иначе + Лог.Ошибка("Не сформирован файл сравнения конфигураций"); + КонецЕсли; + + Возврат Ложь; + +КонецФункции ////////////////////////////////////////////////////////////////////////////////// // Служебные процедуры @@ -1540,7 +1700,7 @@ Функция СтандартныеПараметрыЗапускаКонфигуратора() Лог.Отладка("КлючСоединенияСБазой "+КлючСоединенияСБазой()); - Лог.Отладка("ИмяПользователя <"+мКонтекстКоманды.ИмяПользователя+">"); + Лог.Отладка("ИмяПользователя <"+мКонтекстКоманды.ИмяПользователя + ">"); ПараметрыЗапуска = Новый Массив; ПараметрыЗапуска.Добавить("DESIGNER"); @@ -1565,10 +1725,10 @@ ПараметрыЗапуска.Добавить("/UC" + ОбернутьВКавычки(мКонтекстКоманды.КлючРазрешенияЗапуска)); КонецЕсли; Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыка) Тогда - ПараметрыЗапуска.Добавить("/L"+мКонтекстКоманды.КодЯзыка); + ПараметрыЗапуска.Добавить("/L" + мКонтекстКоманды.КодЯзыка); КонецЕсли; Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда - ПараметрыЗапуска.Добавить("/VL"+мКонтекстКоманды.КодЯзыкаСеанса); + ПараметрыЗапуска.Добавить("/VL" + мКонтекстКоманды.КодЯзыкаСеанса); КонецЕсли; ПараметрыЗапуска.Добавить("/DisableStartupMessages"); ПараметрыЗапуска.Добавить("/DisableStartupDialogs"); @@ -1618,7 +1778,7 @@ // // Параметры: // ОбъектОбработчик - Объект с экспортным методом ОбработкаОжиданияПроцесса(Отказ, Интервал) -// Интервал - Интервал ожидания (мс) через который вызывается ОбработкаОжиданияПроцесса, если он не завершен +// Интервал - Интервал ожидания (мс), через который вызывается ОбработкаОжиданияПроцесса, если он не завершен // Процедура УстановитьОбработчикОжидания(Знач ОбъектОбработчик, Знач Интервал = 5000) Экспорт @@ -1636,7 +1796,7 @@ СтрокаЗапуска = СтрокаЗапуска + " " + Параметр; - Если Лев(Параметр,2) <> "/P" и Лев(Параметр,25) <> "/ConfigurationRepositoryP" Тогда + Если Лев(Параметр, 2) <> "/P" и Лев(Параметр, 25) <> "/ConfigurationRepositoryP" Тогда СтрокаДляЛога = СтрокаДляЛога + " " + Параметр; КонецЕсли; @@ -1749,11 +1909,11 @@ КонецЕсли; Лог.Отладка("файл информации: - |"+Текст); + |" + Текст); Возврат Текст; КонецФункции -Функция УдалитьФайлИнформации() +Процедура УдалитьФайлИнформации() Файл = Новый Файл(ФайлИнформации()); Если Файл.Существует() Тогда @@ -1765,7 +1925,7 @@ КонецПопытки; КонецЕсли; -КонецФункции +КонецПроцедуры Процедура УстановитьВывод(Знач Сообщение) Если мОчищатьФайлИнформации @@ -1834,8 +1994,8 @@ Поз = Найти(ОстатокСтроки, Разделитель); Если Поз > 0 Тогда - Подстрока = Лев(ОстатокСтроки, Поз-1); - ОстатокСтроки = Сред(ОстатокСтроки, Поз+1); + Подстрока = Лев(ОстатокСтроки, Поз - 1); + ОстатокСтроки = Сред(ОстатокСтроки, Поз + 1); Иначе Подстрока = ОстатокСтроки; КонецЕсли; @@ -1893,7 +2053,7 @@ мКонтекстКоманды.Вставить("КодЯзыкаСеанса", ""); - ПутьКПлатформе1С(ПолучитьПутьКВерсииПлатформы("8.3")); + ПутьКПлатформе1С(ПолучитьПутьКВерсииПлатформы("8.3", РазрядностьПлатформы.x64x86)); мОчищатьФайлИнформации = Истина; мФайлИнформацииВнешний = Ложь; @@ -1919,11 +2079,11 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // -Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт +Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт Сообщить("ВНИМАНИЕ: метод ""ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища()"" УСТАРЕЛ и скоро будет удален. Вместо него используйте метод ""ЗагрузитьКонфигурациюИзХранилища()""!" , СтатусСообщения.Внимание); @@ -1936,11 +2096,11 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // -Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт +Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); @@ -1953,11 +2113,11 @@ // // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации -// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации -// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации +// ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации +// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // -Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт +Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); @@ -1971,16 +2131,16 @@ ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора(); - ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+""""); - ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); КонецЕсли; ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg"); // ВАЖНО!!!! Флаг <-v> должен быть обязательно после команды ConfigurationRepositoryUpdateCfg - // Если это нарушить то всегда получается последняя версия конфигурации + // Если это нарушить, то всегда получается последняя версия конфигурации Если НомерВерсииХранилища > 0 Тогда ПараметрыСвязиСБазой.Добавить("-v " + НомерВерсииХранилища); КонецЕсли; @@ -2109,7 +2269,7 @@ ПутьКФайлуИзменений = ВременныеФайлы.НовоеИмяФайла(); ОбновлениеВозможно = Ложь; - ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогВыгрузки,"ConfigDumpInfo.xml")); + ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогВыгрузки, "ConfigDumpInfo.xml")); ФайлВерсийДляСравнения = Новый Файл(ПутьКФайлуВерсийДляСравнения); Если НЕ ТекущийФайлВерсийМетаданных.Существует() И ПустаяСтрока(ПутьКФайлуВерсийДляСравнения) Тогда @@ -2123,7 +2283,7 @@ Если ФайлИзменений.Существует() Тогда СтрокаПолныйДамп = ВРег("FullDump"); чтениеФайла = Новый ЧтениеТекста(ПутьКФайлуИзменений); - СтрокаВыгрузки = Лев(ВРег(чтениеФайла.ПрочитатьСтроку()),СтрДлина(СтрокаПолныйДамп)); + СтрокаВыгрузки = Лев(ВРег(чтениеФайла.ПрочитатьСтроку()), СтрДлина(СтрокаПолныйДамп)); Если Не ПустаяСтрока(СокрЛП(СтрокаВыгрузки)) Тогда diff --git "a/src/\320\242\320\270\320\277\321\213\320\236\321\202\321\207\320\265\321\202\320\276\320\262\320\236\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\270.os" "b/src/\320\242\320\270\320\277\321\213\320\236\321\202\321\207\320\265\321\202\320\276\320\262\320\236\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\270.os" new file mode 100644 index 0000000..1ca072c --- /dev/null +++ "b/src/\320\242\320\270\320\277\321\213\320\236\321\202\321\207\320\265\321\202\320\276\320\262\320\236\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\270.os" @@ -0,0 +1,7 @@ +Перем Краткий Экспорт; +Перем Полный Экспорт; + +/////////////////////////////////////////////////////////////// + +Краткий = "Brief"; +Полный = "Full"; diff --git a/tests/v8runner-test.os b/tests/v8runner-test.os index 7d66264..3819a73 100644 --- a/tests/v8runner-test.os +++ b/tests/v8runner-test.os @@ -28,7 +28,11 @@ СписокТестов.Добавить("ТестДолжен_ПроверитьСозданиеФайловПоставки"); СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилища"); СписокТестов.Добавить("ТестДолжен_СкопироватьПользователейИзХранилища"); - СписокТестов.Добавить("ТестДолжен_ОставитьФайлИнформации"); + СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом"); + СписокТестов.Добавить("ТестДолжен_ПроверитьОсновнаяКонфигурацияИдентичнаФайлу"); + СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом"); + СписокТестов.Добавить("ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу"); + СписокТестов.Добавить("ТестДолжен_ОставитьФайлИнформации"); Возврат СписокТестов; @@ -381,6 +385,136 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом() Экспорт + + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); + + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); + ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("txt"); + + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); + + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( + ФайлКонфигурации, + ПутьКФайлуОтчета + ); + + ФайлОтчетаСуществует = ФС.ФайлСуществует(ПутьКФайлуОтчета); + + ВременныеФайлы.УдалитьФайл( ПутьКФайлуОтчета ); + ВременныеФайлы.УдалитьФайл( ВременныйКаталог ); + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + + Утверждения.ПроверитьИстину( + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + "Внутренний файл информации не должен существовать" + ); + + Утверждения.ПроверитьИстину( + ФайлОтчетаСуществует, + "Отчет о сравнении конфигурации с файлом должен существовать" + ); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьОсновнаяКонфигурацияИдентичнаФайлу() Экспорт + + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); + + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); + + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); + + КонфигурацииИдентичны = УправлениеКонфигуратором.КонфигурацияИФайлИдентичны( + ФайлКонфигурации + ); + + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + УдалитьФайлы(ВременныйКаталог); + + Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); + Утверждения.ПроверитьИстину( + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + "Внутренний файл информации не должен существовать" + ); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом() Экспорт + + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); + + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); + ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("txt"); + + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); + ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); + + ИмяРасширения = "Test_Extension"; + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); + УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); + + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( + ФайлРасширения, + ПутьКФайлуОтчета, + , + , + ИмяРасширения + ); + + ФайлОтчетаСуществует = ФС.ФайлСуществует(ПутьКФайлуОтчета); + + ВременныеФайлы.УдалитьФайл( ПутьКФайлуОтчета ); + ВременныеФайлы.УдалитьФайл( ВременныйКаталог ); + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + + Утверждения.ПроверитьИстину( + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + "Внутренний файл информации не должен существовать" + ); + + Утверждения.ПроверитьИстину( + ФайлОтчетаСуществует, + "Отчет о сравнении конфигурации с файлом должен существовать" + ); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу() Экспорт + + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); + + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); + + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); + ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); + + ИмяРасширения = "Test_Extension"; + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); + УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); + + КонфигурацииИдентичны = УправлениеКонфигуратором.КонфигурацияИФайлИдентичны( + ФайлРасширения, + ИмяРасширения + ); + + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + ВременныеФайлы.УдалитьФайл(ВременныйКаталог); + + Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); + Утверждения.ПроверитьИстину( + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + "Внутренний файл информации не должен существовать" + ); + +КонецПроцедуры + Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища) Возврат ФС.ФайлСуществует( ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD")); КонецФункции