From 2c00306fe4ee1e37efb27bd2ca26e32ea800b0e8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov <aartbear@gmail.com> Date: Sun, 6 Mar 2022 19:45:06 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=B0=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit подмешиваются к любой команде, если использовать метод "ИспользоватьДополнительныеПараметры" --- src/v8runner.os | 593 +++++++++++++++++++++-------------------- tests/v8runner-test.os | 231 +++++++++------- 2 files changed, 436 insertions(+), 388 deletions(-) diff --git a/src/v8runner.os b/src/v8runner.os index 4fc14b6..599514d 100644 --- a/src/v8runner.os +++ b/src/v8runner.os @@ -28,6 +28,7 @@ Перем мОбработчикОжиданияПроцессаGUI; Перем мПризнакОжиданияВыполненияПрограммы; +Перем ДополнительныеПараметры; // доп.параметры, подмешиваемые к любой команде #КонецОбласти @@ -57,9 +58,9 @@ Лог.Отладка(?(ПустаяСтрока(мКонтекстКоманды.Пароль), "Пароль не задан", " Задан пароль "+ мКонтекстКоманды.Пароль)); КонецПроцедуры -Функция ПолучитьВерсиюИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, - Знач ПарольХранилища, +Функция ПолучитьВерсиюИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, + Знач ПарольХранилища, Знач НомерВерсии = Неопределено) Экспорт Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); @@ -85,12 +86,12 @@ КонецФункции -// Построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости -// указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости -// "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. -// Если конфигурация базы данных отличается от редактируемой по свойству совместимости, +// Построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости +// указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости +// "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. +// Если конфигурация базы данных отличается от редактируемой по свойству совместимости, // при обработке командной строки учитывается значение режима совместимости конфигурации базы данных. -// +// // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации @@ -101,10 +102,10 @@ // ТипГруппировки - ТипыГруппировкиОтчетаПоВерсиямХранилища - тип группировкой отчета // ГруппировкаПоОбъектам - признак формирования отчета по версиям с группировкой по объектам; // ГруппировкаПоКоммитам - признак формирования отчета по версиям с группировкой по комментарию (по умолчанию). -// -Процедура ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, - Знач ПарольХранилища = "", +// +Процедура ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, + Знач ПарольХранилища = "", Знач ПутьКФайлуРезультата, Знач НомерНачальнойВерсии = 1, Знач НомерКонечнойВерсии = Неопределено, @@ -124,7 +125,7 @@ Параметры.Добавить("-NBegin "+НомерНачальнойВерсии); Если ЗначениеЗаполнено(НомерКонечнойВерсии) Тогда - + Параметры.Добавить("-NEnd "+НомерКонечнойВерсии); КонецЕсли; @@ -134,46 +135,46 @@ КонецЕсли; Параметры.Добавить(ТипГруппировки); - + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.17") Тогда - Параметры.Добавить("-IncludeCommentLinesWithDoubleSlash"); + Параметры.Добавить("-IncludeCommentLinesWithDoubleSlash"); КонецЕсли; ВыполнитьКоманду(Параметры); КонецПроцедуры -Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", +Процедура СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", Знач ПутьФайлаПоставкиОбновления = "", Знач ДистрибутивыДляОбновления = Неопределено, // Массив файлов дистрибутива cf Знач ПутьФайлаСПараметрамиЛицензирования = "") Экспорт Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Параметры.Добавить("/CreateDistributionFiles "); - Если НЕ ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) + Если НЕ ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) И НЕ ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) Тогда ВызватьИсключение "Не правильно заданы параметры процедуры <" + "СоздатьФайлыПоставки" + ">"; - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаПолнойПоставки) Тогда Параметры.Добавить("-cffile "+ОбернутьВКавычки(ПутьФайлаПолнойПоставки) +" "); КонецЕсли; - Если ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) - И Не ДистрибутивыДляОбновления = Неопределено + Если ЗначениеЗаполнено(ПутьФайлаПоставкиОбновления) + И Не ДистрибутивыДляОбновления = Неопределено И ДистрибутивыДляОбновления.Количество() > 0 Тогда - + Параметры.Добавить("-cfufile "+ОбернутьВКавычки(ПутьФайлаПоставкиОбновления) +" "); - + // Поддерживаются только файлы cf Для каждого ДистрибутивОбновления Из ДистрибутивыДляОбновления Цикл - + Параметры.Добавить("-f "+ОбернутьВКавычки(ДистрибутивОбновления) +" "); - + КонецЦикла; - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ПутьФайлаСПараметрамиЛицензирования) Тогда Параметры.Добавить("-digisign "+ОбернутьВКавычки(ПутьФайлаСПараметрамиЛицензирования) +" "); @@ -183,28 +184,28 @@ КонецПроцедуры -Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, - Знач ПользовательХранилища, - Знач ПарольХранилища = "", +Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, + Знач ПользовательХранилища, + Знач ПарольХранилища = "", Знач ПодключитьБазуКХранилищу = Ложь) Экспорт - + ОбеспечитьКаталог(ПапкаХранилища); - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Параметры.Добавить("/ConfigurationRepositoryF """+ПапкаХранилища + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCreate "); - + Параметры.Добавить("-AllowConfigurationChanges"); Параметры.Добавить("-ChangesAllowedRule ObjectNotSupported"); Параметры.Добавить("-ChangesNotRecommendedRule ObjectNotSupported"); - + Если ПодключитьБазуКХранилищу = Ложь Тогда Параметры.Добавить("-NoBind"); КонецЕсли; @@ -221,12 +222,12 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // ПутьКФайлуСоСпискомОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // путь к файлу формата XML со списком объектов. Если опция используется, будет выполнена попытка захватить только объекты, -// указанные в файле. Если опция не используется, будут захвачены все объекты конфигурации. +// указанные в файле. Если опция не используется, будут захвачены все объекты конфигурации. // Если в списке указаны объекты, захваченныедругим пользователем, эти объекты не будут захвачены и будет выдана ошибка. // При этом доступные для захвата объекта будут захвачены. Подробнее о формате файла см в документации. // ПолучатьЗахваченныеОбъекты - булево - Флаг получения захваченных объектов (По умолчанию равно "Ложь") // -Процедура ЗахватитьОбъектыВХранилище(Знач СтрокаСоединения, +Процедура ЗахватитьОбъектыВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ПутьКФайлуСоСпискомОбъектов = "", @@ -236,23 +237,23 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryLock "); - + Если Не ПустаяСтрока(ПутьКФайлуСоСпискомОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", ПутьКФайлуСоСпискомОбъектов)); - КонецЕсли; + КонецЕсли; Если ПолучатьЗахваченныеОбъекты Тогда Параметры.Добавить("-revised"); - КонецЕсли; + КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ЗахватитьОбъектыВХранилище() @@ -264,13 +265,13 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка отменить захват только для объектов, указанных в файле. -// Если опция не используется, захват будет отменен для всех объектов конфигурации. +// Если опция не используется, захват будет отменен для всех объектов конфигурации. // При наличии в списке объектов, не захваченных текущим пользователем или захваченных другим пользователем, ошибка выдана не будет // ИгнорироватьИзменения - булево - Флаг игнорирования локальных изменений (По умолчанию равно "Ложь") -// Локально измененные объекты будут получены из хранилища, и внесенные изменения будут потеряны. +// Локально измененные объекты будут получены из хранилища, и внесенные изменения будут потеряны. // Если опция не указана, то при наличии локально измененных объектов операция будет отменена и будет выдана ошибка. // -Процедура ОтменитьЗахватОбъектовВХранилище(Знач СтрокаСоединения, +Процедура ОтменитьЗахватОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, @@ -280,23 +281,23 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryUnlock "); - + Если Не ПустаяСтрока(СписокОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", СписокОбъектов)); - КонецЕсли; + КонецЕсли; Если ИгнорироватьИзменения Тогда Параметры.Добавить("-force"); - КонецЕсли; + КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ВыполнитьОтменуЗахватаВХранилище() // Помещение изменений объектов в хранилище конфигурации @@ -307,15 +308,15 @@ // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // СписокОбъектов - Строка - Строка путь к файлу xml c содержанием в формате http://its.1c.ru/db/v839doc#bookmark:adm:TI000000712 // Если опция используется, будет выполнена попытка поместить только объекты, указанные в файле. -// Если опция не используется, будут помещены изменения всех объектов конфигурации. +// Если опция не используется, будут помещены изменения всех объектов конфигурации. // При наличии в списке объектов, не захваченных текущим пользователем или захваченных другим пользователем, ошибка выдана не будет // Комментарий - Строка - Комментарий к помещаемым. Чтобы установить многострочный комментарий, для каждой строки следует использовать свою опцию comment. -// ОставитьОбъектыЗахваченными - булево - оставлять захват для помещенных объектов. +// ОставитьОбъектыЗахваченными - булево - оставлять захват для помещенных объектов. // ИгнорироватьУдаленные - булево - Флаг игнорирования удаления объектов. По умолчанию = Ложь // Если опция используется, при обнаружении ссылок на удаленные объекты будет выполнена попытка их очистить. // Если опция не указана, при обнаружении ссылок на удаленные объекты будет выдана ошибка. // -Процедура ПоместитьИзмененияОбъектовВХранилище(Знач СтрокаСоединения, +Процедура ПоместитьИзмененияОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, @@ -327,16 +328,16 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCommit "); - + Если Не ПустаяСтрока(СписокОбъектов) Тогда Параметры.Добавить(СтрШаблон("-objects ""%1""", СписокОбъектов)); - КонецЕсли; + КонецЕсли; МассивСтрок = СтрРазделить(Комментарий, Символы.ПС); @@ -349,13 +350,13 @@ Если ОставитьОбъектыЗахваченными Тогда Параметры.Добавить("-keepLocked"); КонецЕсли; - + Если ИгнорироватьУдаленные Тогда Параметры.Добавить("-force"); - КонецЕсли; + КонецЕсли; ВыполнитьКоманду(Параметры); - + КонецПроцедуры // ПоместитьИзмененияОбъектовВХранилище() @@ -366,12 +367,12 @@ // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации // ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищу конфигурации // Метка - Строка - текст метки -// Комментарий - Строка - текст комментария к устанавливаемой метки. -// Версия - Строка - номер версии хранилища, для которого устанавливается метка. -// Если версия не указана, метка ставится для самой последнее версии хранилища. +// Комментарий - Строка - текст комментария к устанавливаемой метки. +// Версия - Строка - номер версии хранилища, для которого устанавливается метка. +// Если версия не указана, метка ставится для самой последнее версии хранилища. // Если указана несуществующая версия, выдается ошибка // -Процедура УстановитьМеткуДляВерсииВХранилище(Знач СтрокаСоединения, +Процедура УстановитьМеткуДляВерсииВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач Метка, @@ -383,30 +384,30 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositorySetLabel "); - + Параметры.Добавить(СтрШаблон("-name ""%1""", Метка)); - + МассивСтрок = СтрРазделить(Комментарий, Символы.ПС); Для Каждого СтрокаКомментария Из МассивСтрок Цикл Параметры.Добавить(СтрШаблон("-comment ""%1""", СтрокаКомментария)); - + КонецЦикла; Если Не ПустаяСтрока(Версия) Тогда Параметры.Добавить("-v " + Версия); - КонецЕсли; - - + КонецЕсли; + + ВыполнитьКоманду(Параметры); - + КонецПроцедуры // УстановитьМеткуДляВерсииВХранилище() @@ -421,7 +422,7 @@ // ЗаменитьКонфигурациюБД - Булево - Флаг замены конфигурации БД на конфигурацию хранилища (По умолчанию Истина) // Если конфигурация непустая, данный ключ подтверждает замену конфигурации на конфигурацию из хранилища. // -Процедура ПодключитьсяКХранилищу(Знач СтрокаСоединения, +Процедура ПодключитьсяКХранилищу(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ИгнорироватьНаличиеПодключеннойБД = Ложь, @@ -431,20 +432,20 @@ Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryBindCfg "); - + Если ИгнорироватьНаличиеПодключеннойБД Тогда Параметры.Добавить("-forceBindAlreadyBindedUser "); КонецЕсли; Если ЗаменитьКонфигурациюБД Тогда Параметры.Добавить("-forceReplaceCfg "); - КонецЕсли; - + КонецЕсли; + ВыполнитьКоманду(Параметры); КонецПроцедуры @@ -456,8 +457,8 @@ КонецПроцедуры -// Добавление пользователя хранилища конфигурации. -// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами. +// Добавление пользователя хранилища конфигурации. +// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами. // Если пользователь с указанным именем существует, то пользователь добавлен не будет. // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации @@ -472,30 +473,30 @@ // Администрирование - право на административные функции. // ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленного пользователя // Если обнаружен удаленный пользователь с таким же именем, он будет восстановлен. -// -Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения, - Знач ПользовательХранилища, +// +Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения, + Знач ПользовательХранилища, Знач ПарольХранилища, Знач НовыйПользователь, Знач ПарольПользователя = "", Знач Право = Неопределено, Знач ВосстановитьУдаленного = Ложь) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + Параметры.Добавить("/ConfigurationRepositoryAddUser "); Параметры.Добавить(СтрШаблон("-User ""%1""", НовыйПользователь)); Если Не ПустаяСтрока(ПарольПользователя) Тогда Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольПользователя)); - КонецЕсли; - + КонецЕсли; + Если Не ЗначениеЗаполнено(Право) Тогда Право = ПраваПользователяХранилища.ТолькоЧтение; КонецЕсли; @@ -504,15 +505,15 @@ Если ВосстановитьУдаленного Тогда Параметры.Добавить("-RestoreDeletedUser"); - КонецЕсли; + КонецЕсли; ВыполнитьКоманду(Параметры); КонецПроцедуры -// Копирование пользователей из хранилища конфигурации. Копирование удаленных пользователей не выполняется. +// Копирование пользователей из хранилища конфигурации. Копирование удаленных пользователей не выполняется. // Если пользователь с указанным именем существует, то пользователь не будет добавлен. -// +// // Параметры: // СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации // ПользовательХранилища - строка - Пользователь для подключения к хранилищу конфигурации @@ -521,62 +522,62 @@ // ПользовательХранилищаКопии - Строка - Имя пользователя хранилища, из которого выполняется копирование пользователей. // ПарольХранилищаКопии - Строка - Пароль пользователя хранилища, из которого выполняется копирование пользователей. // ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленных пользователей -// -Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения, - Знач ПользовательХранилища, +// +Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения, + Знач ПользовательХранилища, Знач ПарольХранилища, Знач СтрокаСоединенияХранилищаКопии, Знач ПользовательХранилищаКопии, Знач ПарольХранилищаКопии = "", Знач ВосстановитьУдаленного = Ложь) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; + КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryCopyUsers "); Параметры.Добавить(СтрШаблон("-Path ""%1""", СтрокаСоединенияХранилищаКопии)); Параметры.Добавить(СтрШаблон("-User ""%1""", ПользовательХранилищаКопии)); Если Не ПустаяСтрока(ПарольХранилищаКопии) Тогда Параметры.Добавить(СтрШаблон("-Pwd ""%1""", ПарольХранилищаКопии)); - КонецЕсли; - + КонецЕсли; + Если ВосстановитьУдаленного Тогда Параметры.Добавить("-RestoreDeletedUser"); - КонецЕсли; + КонецЕсли; ВыполнитьКоманду(Параметры); КонецПроцедуры // Выгрузка конфигурации в файлы -// +// // Параметры: // КаталогВыгрузки - Строка - Путь к каталогу, в который будет выгружена конфигурация; // ФорматВыгрузки - РежимВыгрузкиКонфигурации - По умолчанию выгрузка производится в иерархическом формате: // ТолькоИзмененные - Булево - указывает, что выгрузка будет обновлена (будут выгружены только файлы, версии которых отличаются от ранее выгруженных). -// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. -// По завершении выгрузки файл версий обновляется +// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки. +// По завершении выгрузки файл версий обновляется // ПутьКФайлуИзменений - Строка - Указывает путь к файлу,в который будут выведены изменения текущей конфигурации. Изменения вычисляются относительно файла версий в текущем каталоге выгрузки. // ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений. // -// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. +// Для того, чтобы работали функции 8.3.10, необходимо явно указать версию. Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") Экспорт - + Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить(СтрШаблон("/DumpConfigToFiles %1", ОбернутьВКавычки(КаталогВыгрузки))); Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); - - + + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда Если ТолькоИзмененные Тогда @@ -584,13 +585,13 @@ Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда Параметры.Добавить("-update"); - + Параметры.Добавить("-force"); - + Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда - + Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения))); - + КонецЕсли; КонецЕсли; @@ -598,86 +599,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", ФорматВыгрузки)); - + КонецЕсли; Если ОбновитьКонфигурациюИБ Тогда @@ -685,41 +686,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", ОбернутьВКавычки(КаталогЗагрузки))); @@ -745,29 +746,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" Тогда @@ -779,7 +780,7 @@ Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.7.1759") Тогда Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки)); КонецЕсли; - + Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда Если ТолькоИзмененные Тогда @@ -787,13 +788,13 @@ Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда Параметры.Добавить("-update"); - + Параметры.Добавить("-force"); - + Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда - + Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения))); - + КонецЕсли; КонецЕсли; @@ -801,7 +802,7 @@ КонецЕсли; КонецЕсли; - + ВыполнитьКоманду(Параметры); КонецПроцедуры @@ -817,8 +818,8 @@ ФайлКонфигурации = Новый Файл(ПутьФайлКонфигурации); Ожидаем.Что(ФайлКонфигурации.Существует(), "Файл конфигурации <"+ПутьФайлКонфигурации +"> существует, а это не так").ЭтоИстина(); - Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, - "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); + Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, + "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); // Выполняем загрузку и обновление за два шага, т.к. // иногда обновление конфигурации ИБ на новой базе проходит неудачно, @@ -846,8 +847,8 @@ ФайлРасширения = Новый Файл(ПутьФайлРасширения); Ожидаем.Что(ФайлРасширения.Существует(), "Файл расширения <"+ПутьФайлРасширения +"> существует, а это не так").ЭтоИстина(); - Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, - "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); + Ожидаем.Что(ОбновитьКонфигурациюИБ = Ложь ИЛИ ОбновитьКонфигурациюИБ = Истина, + "Параметр ОбновитьКонфигурациюИБ должен быть или Истина или Ложь, а это не так").ЭтоИстина(); // Выполняем загрузку и обновление за два шага, т.к. // иногда обновление конфигурации ИБ на новой базе проходит неудачно, // если запустить две операции в одной команде. @@ -869,11 +870,11 @@ // ФайлКонфигурации - Строка - путь к файлу конфигурации // Процедура ВыгрузитьКонфигурациюВФайл(Знач ФайлКонфигурации) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/DumpCfg """ + ФайлКонфигурации + """"); ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Выгружает конфигурацию расширения в файл @@ -883,12 +884,12 @@ // ИмяРасширения - Строка - имя расширения // Процедура ВыгрузитьРасширениеВФайл(Знач ПутьФайлРасширения, Знач ИмяРасширения) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/DumpCfg """ + ПутьФайлРасширения + """"); Параметры.Добавить("-Extension """ + ИмяРасширения + """"); ВыполнитьКоманду(Параметры); - + КонецПроцедуры // Выполнить объединение текущей конфигурации с файлом (с использованием файла настроек) @@ -908,17 +909,17 @@ // Ложь: очищать ссылки на объекты с неразрешенными ссылками. // Принудительно - Булево - флаг принудительного обновления. // Обновление будет производиться в случае наличия: -// предупреждений об удаляемых объектов, на которые есть ссылки в объектах, +// предупреждений об удаляемых объектов, на которые есть ссылки в объектах, // не участвующих в объединении (такие объекты будут исключены из объединения); // предупреждений о применении настроек. // Если не указан, то объединение будет прервано в вышеуказанных случаях. // -Процедура ОбъединитьКонфигурациюСФайлом(Знач ФайлКонфигурации, - Знач ФайлНастроек, - Знач ПоставитьНаПоддержку = Неопределено, - Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, +Процедура ОбъединитьКонфигурациюСФайлом(Знач ФайлКонфигурации, + Знач ФайлНастроек, + Знач ПоставитьНаПоддержку = Неопределено, + Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь) Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); Параметры.Добавить("/MergeCfg " + ОбернутьВКавычки(ФайлКонфигурации)); Параметры.Добавить("-Settings " + ОбернутьВКавычки(ФайлНастроек)); @@ -952,7 +953,7 @@ // ИмяРасширения - Строка - имя расширения. Необязательно. // Процедура ОбновитьКонфигурациюБазыДанных( - ПредупрежденияКакОшибки = Ложь, НаСервере = Истина, + ПредупрежденияКакОшибки = Ложь, НаСервере = Истина, ДинамическоеОбновление = Ложь, ИмяРасширения = "") Экспорт @@ -961,7 +962,7 @@ Если Не ДинамическоеОбновление И Не ЗначениеЗаполнено(ИмяРасширения) Тогда ПараметрыСвязиСБазой.Добавить("-Dynamic-"); КонецЕсли; - + Если ПредупрежденияКакОшибки Тогда ПараметрыСвязиСБазой.Добавить("-WarningsAsErrors"); КонецЕсли; @@ -979,16 +980,16 @@ // Обновить конфигурацию БД на сервере // // Параметры: -// ПредупрежденияКакОшибки - Булево - если есть предупреждения, они выдаются как ошибки. Необязательно. +// ПредупрежденияКакОшибки - Булево - если есть предупреждения, они выдаются как ошибки. Необязательно. // По Умолчанию - Ложь. // ДинамическоеОбновление - Булево - использовать. Необязательно. По Умолчанию - Ложь. -// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). +// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). // Например, РежимыРеструктуризации().Второй // Необязательно. По Умолчанию - Неопределено. т.е. использовать режим 1С по умолчанию // ИмяРасширения - Строка - имя расширения. Необязательно. // Процедура ОбновитьКонфигурациюБазыДанныхНаСервере( - ПредупрежденияКакОшибки = Ложь, + ПредупрежденияКакОшибки = Ложь, ДинамическоеОбновление = Ложь, РежимРеструктуризации = Неопределено, ИмяРасширения = "") Экспорт @@ -998,13 +999,13 @@ Если Не ДинамическоеОбновление Тогда ПараметрыСвязиСБазой.Добавить("-Dynamic-"); КонецЕсли; - + Если ПредупрежденияКакОшибки Тогда ПараметрыСвязиСБазой.Добавить("-WarningsAsErrors"); КонецЕсли; ПараметрыСвязиСБазой.Добавить("-Server"); Если ЗначениеЗаполнено(РежимРеструктуризации) Тогда - ПараметрыСвязиСБазой.Добавить(РежимРеструктуризации); + ПараметрыСвязиСБазой.Добавить(РежимРеструктуризации); КонецЕсли; Если ЗначениеЗаполнено(ИмяРасширения) Тогда ПараметрыСвязиСБазой.Добавить("-Extension " + ИмяРасширения); @@ -1090,8 +1091,8 @@ // Если не указан, то объединение будет прервано в вышеуказанных случаях. // Значение по умолчанию - Ложь // -Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено, - Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, +Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено, + Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь, Знач ВывестиДваждыИзмененныеОбъекты = Ложь) Экспорт ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); @@ -1154,7 +1155,7 @@ Иначе ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()) + " -NoTruncate"); КонецЕсли; - + Если ИмяБазыВСписке <> "" Тогда ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; @@ -1210,15 +1211,15 @@ Знач ОшибкаЕслиСуществует = Ложь, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт - + Сервер1С = ПолучитьПараметр(ПараметрыБазы1С, "Сервер1С"); ИмяИБ = ПолучитьПараметр(ПараметрыБазы1С, "ИмяИБ"); Лог.Отладка("Создание серверной ИБ ""%1\%2""", Сервер1С, ИмяИБ); - + РазрешитьРегЗадания = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьРегЗадания", Ложь); РазрешитьВыдачуЛицензий = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьВыдачуЛицензий", Ложь); - + ТипСУБД = ПолучитьПараметр(ПараметрыСУБД, "ТипСУБД", "MSSQLServer"); СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД"); ПользовательСУБД = ПолучитьПараметр(ПараметрыСУБД, "ПользовательСУБД"); @@ -1232,10 +1233,10 @@ СмещениеДат = ПолучитьПараметр(ПараметрыСУБД, "СмещениеДат", "2000"); СоздаватьБД = ПолучитьПараметр(ПараметрыСУБД, "СоздаватьБД", Ложь); - + АдминистраторКластера = ПолучитьПараметр(АвторизацияВКластере, "Имя", Ложь); ПарольКластера = ПолучитьПараметр(АвторизацияВКластере, "Пароль", Ложь); - + СтрокаЗапуска = "Srvr=" + СокрЛП(Сервер1С) + ";Ref=" + СокрЛП(ИмяИБ) + ";DBMS=" + СокрЛП(ТипСУБД) @@ -1251,11 +1252,11 @@ Если НЕ ПустаяСтрока(АдминистраторКластера) Тогда СтрокаЗапуска = СтрокаЗапуска + ";SUsr=" + АдминистраторКластера; КонецЕсли; - + Если НЕ ПустаяСтрока(ПарольКластера) Тогда СтрокаЗапуска = СтрокаЗапуска + ";SPwd=" + ПарольКластера; КонецЕсли; - + Лог.Отладка("Строка запуска: %1", СтрокаЗапуска); ПараметрыЗапуска = Новый Массив; @@ -1267,7 +1268,7 @@ Иначе ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()) + " -NoTruncate"); КонецЕсли; - + Если НЕ ПустаяСтрока(ИмяБазыВСписке) Тогда ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; @@ -1299,7 +1300,7 @@ КонецЕсли; КонецПроцедуры // СоздатьСервернуюБазу() - + Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) Экспорт ФайлВыгрузки = Новый Файл(ПутьВыгрузкиИБ); Ожидаем.Что(ФайлВыгрузки.Существует(), "Файл выгрузки <"+ПутьВыгрузкиИБ +"> существует, а это не так").ЭтоИстина(); @@ -1333,34 +1334,34 @@ // ПутьКВнешнейОбработкеИлиОтчету - Строка - Путь к файлу внешнего отчета или обработки // Формат - РежимВыгрузкиКонфигурации - Формат выгрузки. По умолчанию используется "Hierarchical" // -Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки, +Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки, Знач ПутьКВнешнейОбработкеИлиОтчету, Знач Формат = "") Экспорт - + Если НЕ ЗначениеЗаполнено(Формат) Тогда Формат = РежимВыгрузкиКонфигурации.Иерархический; КонецЕсли; Файл = Новый Файл(ПутьККаталогуВыгрузки); КаталогВыгрузки = Файл.ПолноеИмя; - + ОбеспечитьКаталог(КаталогВыгрузки); - + Файл = Новый Файл(ПутьКВнешнейОбработкеИлиОтчету); ПутьКВнешнейОбработкеИлиОтчету = Файл.ПолноеИмя; - + ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора(); ПараметрыЗапуска.Добавить("/DumpExternalDataProcessorOrReportToFiles"); ПараметрыЗапуска.Добавить(ОбернутьВКавычки(КаталогВыгрузки)); ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКВнешнейОбработкеИлиОтчету)); ПараметрыЗапуска.Добавить("-Format"); ПараметрыЗапуска.Добавить(Формат); - + ВыполнитьКоманду(ПараметрыЗапуска); - + КонецПроцедуры -// Выгружает конфигурацию мобильного приложения в zip-файл. Файл содержит собственно описание +// Выгружает конфигурацию мобильного приложения в zip-файл. Файл содержит собственно описание // конфигурации и сопутствующие материалы // // Параметры: @@ -1394,7 +1395,7 @@ КодВозврата = ЗапуститьИПодождать(Параметры); УстановитьВывод(ПрочитатьФайлИнформации()); - + Если КодВозврата <> 0 И мИсключениеПриОшибкеВыполненияКоманды Тогда Лог.Ошибка("Получен ненулевой код возврата "+КодВозврата +". Выполнение скрипта остановлено!"); ВызватьИсключение ВыводКоманды(); @@ -1410,32 +1411,41 @@ Возврат СтандартныеПараметрыЗапускаКонфигуратора(); КонецФункции +// Устанавливаются дополнительные параметры, которые добавляются (подмешиваются) к очередной выполняемой команде +// +// Параметры: +// ДопПараметры - Массив - Параметры, которые добавляются к очередной выполняемой команде +// +Процедура ИспользоватьДополнительныеПараметры(Знач ДопПараметры) Экспорт + ДополнительныеПараметры = ДопПараметры; +КонецПроцедуры + Процедура ВыполнитьРасширеннуюПроверкуКонфигуратора(Ключи, Знач СтрокаСоединенияСХранилищем = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "") Экспорт - + Параметры = СтандартныеПараметрыЗапускаКонфигуратора(); - + Если Не ПустаяСтрока(СтрокаСоединенияСХранилищем) Тогда Параметры.Добавить("/ConfigurationRepositoryF """ + СтрокаСоединенияСХранилищем + """"); Параметры.Добавить("/ConfigurationRepositoryN """ + ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда Параметры.Добавить("/ConfigurationRepositoryP """ + ПарольХранилища + """"); КонецЕсли; КонецЕсли; Параметры.Добавить("/CheckConfig"); - + Для Каждого СтрокаКлюча Из Ключи Цикл Если СтрокаКлюча.Значение = Истина Тогда Параметры.Добавить(СтрокаКлюча.Ключ); КонецЕсли; - КонецЦикла; - + КонецЦикла; + ВыполнитьКоманду(Параметры); - + КонецПроцедуры Процедура ВыполнитьСинтаксическийКонтроль( @@ -1470,7 +1480,7 @@ ДопустимыеКлючи = КлючиПроверкиКонфигурации(); Для Каждого Проверка Из Проверки Цикл - КлючПроверки = ДопустимыеКлючи.Получить(СокрЛП(Проверка)); + КлючПроверки = ДопустимыеКлючи.Получить(СокрЛП(Проверка)); Если КлючПроверки <> Неопределено Тогда КлючЗапуска = ?(НРег(КлючПроверки) = "-extension", СтрШаблон("%1 %2", КлючПроверки, ИмяРасширения), КлючПроверки); @@ -1603,7 +1613,7 @@ Если Лев(ВерсияПлатформы, 2) <> "8." Тогда ВызватьИсключение "Неверная версия платформы <"+ ВерсияПлатформы + ">"; КонецЕсли; - + ПутьКПредприятию = Платформа1С.ПутьКПредприятию(ВерсияПлатформы, Разрядность); Возврат ПутьКПредприятию; @@ -1616,7 +1626,7 @@ Процедура УстановитьКодЯзыка(Знач Код) Экспорт мКонтекстКоманды.КодЯзыка = Код; - Если ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда + Если ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда мКонтекстКоманды.КодЯзыкаСеанса = Код; КонецЕсли; КонецПроцедуры @@ -1695,19 +1705,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С(); @@ -1717,7 +1727,7 @@ КаталогНаДиске = Новый Файл(ПутьКПлатформе1С); Если Не КаталогНаДиске.Существует() Тогда ВызватьИсключение "Не существует установленной платформы 1С по пути: " + ПутьКПлатформе1С; - КонецЕсли; + КонецЕсли; ВерсияПлатформы = ""; ШаблонВерсии = Новый РегулярноеВыражение("8(\.\d+){3}"); @@ -1731,7 +1741,7 @@ КаталогКонфигурационныхФайлов1С = СтрЗаменить(ПутьКПлатформе1С, "\" + ВерсияПлатформы + "\bin\1cv8.exe", "\conf"); Иначе КаталогКонфигурационныхФайлов1С = СтрЗаменить(ПутьКПлатформе1С, "\1cv8.exe", "\conf"); - КонецЕсли; + КонецЕсли; Лог.Отладка("КаталогКонфигурационныхФайлов1С: получили путь конфигурационных файлов 1С " + ВидПути + " <" + КаталогКонфигурационныхФайлов1С + ">"); Возврат КаталогКонфигурационныхФайлов1С; @@ -1770,7 +1780,7 @@ // Функция УстановитьПризнакОжиданияВыполненияПрограммы(НовыйПризнак) Экспорт - Ожидаем.Что(НовыйПризнак = Ложь ИЛИ НовыйПризнак = Истина, + Ожидаем.Что(НовыйПризнак = Ложь ИЛИ НовыйПризнак = Истина, "Параметр ""Признак ожидания выполнения программы 1С"" должен быть или Истина или Ложь, а это не так").ЭтоИстина(); СтарыйПризнак = мПризнакОжиданияВыполненияПрограммы; @@ -1784,16 +1794,16 @@ // // Параметры: // НовоеЗначение - <Булево> - Новое значение флага "ИсключениеПриОшибкеВыполненияКоманды" -// если не указано, то возвращается текущее значение +// если не указано, то возвращается текущее значение // // Возвращаемое значение: // <Булево> - значение признака // Функция ИсключениеПриОшибкеВыполненияКоманды(НовоеЗначение = Неопределено) Экспорт - - Ожидаем.Что(НовоеЗначение = Ложь ИЛИ НовоеЗначение = Истина ИЛИ НовоеЗначение = Неопределено, + + Ожидаем.Что(НовоеЗначение = Ложь ИЛИ НовоеЗначение = Истина ИЛИ НовоеЗначение = Неопределено, "Параметр ""Исключение при ошибке выполнения команды"" должен быть или Истина, Ложь или Неопределено, а это не так").ЭтоИстина(); - + Если НЕ НовоеЗначение = Неопределено Тогда мИсключениеПриОшибкеВыполненияКоманды = НовоеЗначение; КонецЕсли; @@ -1801,7 +1811,7 @@ Возврат мИсключениеПриОшибкеВыполненияКоманды; КонецФункции // ИсключениеПриОшибкеВыполненияКоманды() Экспорт - + // Формирует отчёт о сравнении основной конфигурации\конфигурации расширения в файл. // // Параметры: @@ -1817,7 +1827,7 @@ Знач ТипОтчета = Неопределено, Знач ФорматОтчета = "txt", Знач ИмяРасширения = "") Экспорт - + Если ТипОтчета = Неопределено Тогда ТипОтчета = ТипыОтчетовОСравнении.Полный; КонецЕсли; @@ -1829,8 +1839,8 @@ Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.12") Тогда ПараметрыЗапуска.Добавить(СтрШаблон("-FirstName %1", ИмяРасширения)); Иначе - ПараметрыЗапуска.Добавить(СтрШаблон("-FirstConfigurationKey %1", ИмяРасширения)); - КонецЕсли; + ПараметрыЗапуска.Добавить(СтрШаблон("-FirstConfigurationKey %1", ИмяРасширения)); + КонецЕсли; Иначе ПараметрыЗапуска.Добавить("-FirstConfigurationType MainConfiguration"); КонецЕсли; @@ -1840,20 +1850,20 @@ Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.12") Тогда ПараметрыЗапуска.Добавить("-SecondFile "); Иначе - ПараметрыЗапуска.Добавить("-SecondConfigurationKey "); - КонецЕсли; + ПараметрыЗапуска.Добавить("-SecondConfigurationKey "); + КонецЕсли; - ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКФайлуКонфигурации)); + ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКФайлуКонфигурации)); ПараметрыЗапуска.Добавить("-ReportType "); ПараметрыЗапуска.Добавить(ТипОтчета); ПараметрыЗапуска.Добавить("-ReportFormat "); ПараметрыЗапуска.Добавить(ФорматОтчета); - + ПараметрыЗапуска.Добавить("-ReportFile "); - ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКОтчету)); - + ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКОтчету)); + ВыполнитьКоманду(ПараметрыЗапуска); КонецПроцедуры @@ -1868,7 +1878,7 @@ // Булево - Истина - конфигурации идентичны. // Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "") Экспорт - + ЭталонОтчетаБезИзменений = НСтр( "ru = ' |***- Объект изменен @@ -1880,21 +1890,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"); @@ -1920,7 +1930,7 @@ Отчет = ""; Пока СтрокаТекста <> Неопределено Цикл - + Если Не ПустаяСтрока(СтрокаТекста) Тогда Отчет = Отчет + Символы.ПС + СокрЛП(СтрокаТекста); КонецЕсли; @@ -1938,13 +1948,13 @@ Исключение Лог.Предупреждение("Не удалось удалить файл отчёта: " + ОписаниеОшибки()); КонецПопытки; - + Возврат Отчет = ОтчетБезИзменений; Иначе Лог.Ошибка("Не сформирован файл сравнения конфигураций"); КонецЕсли; - + Возврат Ложь; КонецФункции @@ -1961,7 +1971,7 @@ ПараметрыЗапуска = Новый Массив; ПараметрыЗапуска.Добавить("DESIGNER"); ПараметрыЗапуска.Добавить(КлючСоединенияСБазой()); - + Если мОчищатьФайлИнформации Тогда ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации())); Иначе @@ -1989,6 +1999,13 @@ ПараметрыЗапуска.Добавить("/DisableStartupMessages"); ПараметрыЗапуска.Добавить("/DisableStartupDialogs"); + Если ЗначениеЗаполнено(ДополнительныеПараметры) Тогда + Для каждого ДопПараметр Из ДополнительныеПараметры Цикл + ПараметрыЗапуска.Добавить(ДопПараметр); + КонецЦикла; + + КонецЕсли; + Возврат ПараметрыЗапуска; КонецФункции @@ -2037,7 +2054,7 @@ // Интервал - Интервал ожидания (мс), через который вызывается ОбработкаОжиданияПроцесса, если он не завершен // Процедура УстановитьОбработчикОжидания(Знач ОбъектОбработчик, Знач Интервал = 5000) Экспорт - + мОбработчикОжиданияПроцессаGUI = Новый Структура; мОбработчикОжиданияПроцессаGUI.Вставить("Объект", ОбъектОбработчик); мОбработчикОжиданияПроцессаGUI.Вставить("Интервал", Интервал); @@ -2063,7 +2080,7 @@ Приложение = ОбернутьВКавычки(ПутьКПлатформе1С()); Лог.Отладка(Приложение + СтрокаДляЛога); - Если ЭтоWindows = Ложь Тогда + Если ЭтоWindows = Ложь Тогда СтрокаЗапуска = "sh -c '"+Приложение + СтрокаЗапуска + "'"; Иначе СтрокаЗапуска = Приложение + СтрокаЗапуска; @@ -2072,7 +2089,7 @@ Если мОбработчикОжиданияПроцессаGUI = Неопределено Тогда Если мПризнакОжиданияВыполненияПрограммы Тогда Команда = Новый Команда; - + Команда.УстановитьКоманду(Приложение); Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8); Команда.ДобавитьЛогВыводаКоманды("oscript.lib.v8runner"); @@ -2085,14 +2102,14 @@ ЗапуститьПриложение(СтрокаЗапуска, , Ложь, КодВозврата); КонецЕсли; - + Иначе - + ЗапуститьПроцессGUI(СтрокаЗапуска, КодВозврата); КонецЕсли; Лог.Отладка("Получен код возврата %1", КодВозврата); - + Возврат КодВозврата; КонецФункции @@ -2145,10 +2162,10 @@ Исключение Лог.Предупреждение("Не удалось прочитать файл информации %1. |" + ОписаниеОшибки(), Файл.ПолноеИмя); - + Возврат ""; КонецПопытки; - + Текст = Чтение.Прочитать(); Чтение.Закрыть(); @@ -2170,7 +2187,7 @@ КонецФункции Процедура УдалитьФайлИнформации() - + Файл = Новый Файл(ФайлИнформации()); Если Файл.Существует() Тогда Попытка @@ -2180,7 +2197,7 @@ Лог.Предупреждение("Не удалось удалить файл информации: " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; - + КонецПроцедуры Процедура УстановитьВывод(Знач Сообщение) @@ -2236,7 +2253,7 @@ Функция ВременнаяБазаСуществует() Экспорт ФайлБазы = Новый Файл(ОбъединитьПути(ПутьКВременнойБазе(), "1Cv8.1CD")); - + Возврат ФайлБазы.Существует(); КонецФункции @@ -2260,13 +2277,13 @@ // Произвольный - Значение параметра // Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию = "") - + ЗначениеПараметра = ЗначениеПоУмолчанию; - + Если Параметры.Свойство(Имя) Тогда ЗначениеПараметра = Параметры[Имя]; КонецЕсли; - + Возврат ЗначениеПараметра; КонецФункции // ПолучитьПараметр() @@ -2316,12 +2333,12 @@ // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт - + Сообщить("ВНИМАНИЕ: метод ""ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища()"" УСТАРЕЛ и скоро будет удален. Вместо него используйте метод ""ЗагрузитьКонфигурациюИзХранилища()""!" , СтатусСообщения.Внимание); ЗагрузитьКонфигурациюИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + КонецПроцедуры // Выполняет загрузку конфигурации из хранилища конфигурации определенной версии, если задана, иначе получает последнюю версию. @@ -2335,7 +2352,7 @@ Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + ВыполнитьКоманду(ПараметрыСвязиСБазой); КонецПроцедуры @@ -2350,26 +2367,26 @@ // НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия. // Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) Экспорт - + ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища); - + ПараметрыСвязиСБазой.Добавить("/UpdateDBCfg"); - + ВыполнитьКоманду(ПараметрыСвязиСБазой); - + КонецПроцедуры -Функция СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища) - +Функция СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища) + ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора(); - + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения + """"); ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища + """"); - + Если Не ПустаяСтрока(ПарольХранилища) Тогда ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """+ПарольХранилища + """"); - КонецЕсли; - + КонецЕсли; + ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg"); // ВАЖНО!!!! Флаг <-v> должен быть обязательно после команды ConfigurationRepositoryUpdateCfg // Если это нарушить, то всегда получается последняя версия конфигурации @@ -2377,9 +2394,9 @@ ПараметрыСвязиСБазой.Добавить("-v " + НомерВерсииХранилища); КонецЕсли; ПараметрыСвязиСБазой.Добавить("-force"); - + Возврат ПараметрыСвязиСБазой; - + КонецФункции Функция ВариантОбработкиНесуществующихСсылок() Экспорт @@ -2394,7 +2411,7 @@ КонецФункции // ИмяФункции() Функция ВариантОбработкиЧастичнойПотериДанных() Экспорт - + Варианты = Новый Структура; Варианты.Вставить("СоздаватьОбъекты", 1); Варианты.Вставить("УдалятьОбъекты", 2); @@ -2414,7 +2431,7 @@ // ВариантОбработкиЧастичнойПотериДанных: // - создавать объекты (по умолчанию) // - удалять объекты -// +// Функция ПолучитьОпцииТиИ() Экспорт ВариантыОбработкиНесуществующихСсылок = ВариантОбработкиНесуществующихСсылок(); @@ -2484,17 +2501,17 @@ СтрокаОпций = СтрокаОпций + ?(Параметры.ПродолжитьТиИСТочкиПрерывания, " -UseStartPoint", ""); СтрокаОпций = СтрокаОпций + ?(Параметры.МаксВремяТестирования = "", ""," -TimeLimit:" + Параметры.МаксВремяТестирования); - + ПараметрыСвязиСБазой.Добавить(СтрокаОпций); - Лог.Отладка("Параметры запуска ТиИ: " + СтрокаОпций); + Лог.Отладка("Параметры запуска ТиИ: " + СтрокаОпций); ВыполнитьКоманду(ПараметрыСвязиСБазой); КонецПроцедуры // ИмяПроцедуры() -// Функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий +// Функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий // Функция ПроверитьВозможностьОбновленияФайловВыгрузки(Знач КаталогВыгрузки, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") @@ -2516,7 +2533,7 @@ СтрокаПолныйДамп = ВРег("FullDump"); чтениеФайла = Новый ЧтениеТекста(ПутьКФайлуИзменений); СтрокаВыгрузки = Лев(ВРег(чтениеФайла.ПрочитатьСтроку()), СтрДлина(СтрокаПолныйДамп)); - + Если Не ПустаяСтрока(СокрЛП(СтрокаВыгрузки)) Тогда Лог.Отладка("Строка проверки на возможность выгрузки конфигурации: <%1> = <%2> ", СтрокаПолныйДамп, СтрокаВыгрузки); @@ -2532,10 +2549,10 @@ КонецФункции -// Функция проверяет версию текущей платформы по сравнению с требуемой +// Функция проверяет версию текущей платформы по сравнению с требуемой // Функция ИспользуемаяВерсияПлатформыСтаршеИлиРавна(Знач ТребуемаяВерсияПлатформы) Экспорт - + Лог.Отладка(СтрШаблон("Сравниваю версию <%1> с эталоном <%2>", мВерсияПлатформы, ТребуемаяВерсияПлатформы)); РезультатСравнения = СтроковыеФункции.СравнитьВерсии(мВерсияПлатформы, ТребуемаяВерсияПлатформы); diff --git a/tests/v8runner-test.os b/tests/v8runner-test.os index dd7bdff..09b83e8 100644 --- a/tests/v8runner-test.os +++ b/tests/v8runner-test.os @@ -9,7 +9,7 @@ Перем ВременныйКаталог; Процедура Инициализация() - + УправлениеКонфигуратором = Новый УправлениеКонфигуратором; Лог = Логирование.ПолучитьЛог("oscript.lib.v8runner"); Лог.УстановитьУровень(УровниЛога.Отладка); @@ -17,9 +17,9 @@ КонецПроцедуры Функция ПолучитьСписокТестов(Тестирование) Экспорт - + юТест = Тестирование; - + СписокТестов = Новый Массив; СписокТестов.Добавить("ТестДолжен_ИзменитьКаталогСборки"); СписокТестов.Добавить("ТестДолжен_СоздатьВременнуюБазу"); @@ -29,14 +29,16 @@ СписокТестов.Добавить("ТестДолжен_ПроверитьСозданиеФайловПоставки"); СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилища"); СписокТестов.Добавить("ТестДолжен_СкопироватьПользователейИзХранилища"); - СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом"); + СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом"); СписокТестов.Добавить("ТестДолжен_ПроверитьОсновнаяКонфигурацияИдентичнаФайлу"); СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом"); - СписокТестов.Добавить("ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу"); - СписокТестов.Добавить("ТестДолжен_ОставитьФайлИнформации"); + СписокТестов.Добавить("ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу"); + СписокТестов.Добавить("ТестДолжен_ОставитьФайлИнформации"); + + СписокТестов.Добавить("ТестПроверяетИспользованиеДополнительныхПараметров_ПоказываетСписокРасширений"); Возврат СписокТестов; - + КонецФункции Процедура ПослеЗапускаТеста() Экспорт @@ -44,7 +46,7 @@ Если ЗначениеЗаполнено( ВременныйКаталог ) Тогда Утверждения.ПроверитьИстину( НайтиФайлы( ВременныйКаталог, "*").Количество() = 0, "Во временном каталоге " + ВременныйКаталог + " не должно остаться файлов" ); - + ВременныеФайлы.УдалитьФайл( ВременныйКаталог ); Утверждения.ПроверитьИстину( Не ФС.КаталогСуществует(ВременныйКаталог), "Временный каталог должен быть удален"); @@ -56,20 +58,20 @@ КонецПроцедуры Процедура ТестДолжен_ИзменитьКаталогСборки() Экспорт - + ПоУмолчанию = ТекущийКаталог(); Утверждения.ПроверитьРавенство(УправлениеКонфигуратором.КаталогСборки(), ПоУмолчанию, "По умолчанию каталог сборки должен совпадать с текущим каталогом"); - + СтароеЗначение = УправлениеКонфигуратором.КаталогСборки(КаталогВременныхФайлов()); Утверждения.ПроверитьРавенство(СтароеЗначение, ПоУмолчанию, "Предыдущее значение каталога должно возвращяться при его смене"); Утверждения.ПроверитьРавенство(УправлениеКонфигуратором.КаталогСборки(), КаталогВременныхФайлов(), "Каталог сборки должен быть изменен"); - + КонецПроцедуры Процедура ТестДолжен_СоздатьВременнуюБазу() Экспорт - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + Утверждения.ПроверитьЛожь(УправлениеКонфигуратором.ВременнаяБазаСуществует(), "Временной базы не должно быть в каталоге <"+УправлениеКонфигуратором.ПутьКВременнойБазе()+">"); УправлениеКонфигуратором.СоздатьФайловуюБазу(УправлениеКонфигуратором.ПутьКВременнойБазе()); Сообщить(УправлениеКонфигуратором.ВыводКоманды()); @@ -81,7 +83,7 @@ Процедура ТестДолжен_СоздатьХранилищеКонфигурации() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); @@ -89,8 +91,8 @@ КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); // по идеи надо проверить что конфигурация загружена. // Вопрос как? @@ -102,138 +104,138 @@ ВременныеФайлы.УдалитьФайл( КаталогВременногоХранилища ); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилища() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("mxl"); - + КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); Ожидаем.Что(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + УправлениеКонфигуратором.ПолучитьОтчетПоВерсиямИзХранилища(КаталогВременногоХранилища, "Администратор", , ПутьКФайлуОтчета); Ожидаем.Что( ФС.ФайлСуществует( ПутьКФайлуОтчета ) , "Отчет из хранилища конфигурации должен существовать"); - + Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); ВременныеФайлы.УдалитьФайл( ПутьКФайлуОтчета ); ВременныеФайлы.УдалитьФайл( КаталогВременногоХранилища ); - УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + КонецПроцедуры Процедура ТестДолжен_ПроверитьСозданиеФайловПоставки() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); КаталогПоставки = ОбъединитьПути(ВременныйКаталог, "v8r_TempDitr"); - + ПутьФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + НомерВерсииВыпуска = "1.0"; - - ПутьФайлПредыдущейПоставки = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "0.9", "1Cv8.cf"); + + ПутьФайлПредыдущейПоставки = ОбъединитьПути(ТекущийСценарий().Каталог, "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"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + НовыйПользователь = "ТестовыйПользователь"; ПарольПользователя = "ТестПароль"; - УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, + УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, "Администратор", "", НовыйПользователь, ПарольПользователя, ПраваПользователяХранилища.ТолькоЧтение, Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя); Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); - + ВременныеФайлы.УдалитьФайл( КаталогВременногоХранилища ); ВременныеФайлы.УдалитьФайл( ПутьКФайлуВерсии ); УправлениеКонфигуратором.УдалитьВременнуюБазу(); @@ -242,58 +244,58 @@ Процедура ТестДолжен_СкопироватьПользователейИзХранилища() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, "Администратор", "ПарольАдминистратора"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать"); - + НовыйПользователь = "ТестовыйПользователь"; ПарольПользователя = "123"; - УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, + УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища, "Администратор", "ПарольАдминистратора", НовыйПользователь, ПарольПользователя, ПраваПользователяХранилища.ТолькоЧтение, Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); - + КаталогВременногоХранилища2 = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository2"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - - + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища2, "Администратор2", "ПарольАдминистратора2"); Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища2), "Временное хранилище 2 конфигурации должно существовать"); - - УправлениеКонфигуратором.КопироватьПользователейИзХранилища(КаталогВременногоХранилища2, + + УправлениеКонфигуратором.КопироватьПользователейИзХранилища(КаталогВременногоХранилища2, "Администратор2", "ПарольАдминистратора2", КаталогВременногоХранилища, "Администратор", "ПарольАдминистратора", Истина); - + ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища2, НовыйПользователь, ПарольПользователя); - + Утверждения.ПроверитьИстину(ФС.ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать"); Утверждения.ПроверитьИстину( Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать"); @@ -305,7 +307,7 @@ КонецПроцедуры Процедура ТестДолжен_ОставитьФайлИнформации() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); // Переинициализация класса, чтобы предыдущие установки не влияли на чистоту теста @@ -319,7 +321,7 @@ КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, @@ -361,7 +363,7 @@ КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository"); ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации( КаталогВременногоХранилища, @@ -383,22 +385,22 @@ ВременныеФайлы.УдалитьФайл( КаталогВременногоХранилища ); ВременныеФайлы.УдалитьФайл( внешнийФайлИнформацииДописываемый ); УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииОсновнойКонфигурацииСФайлом() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); ПутьКФайлуОтчета = ПолучитьИмяВременногоФайла("txt"); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); - + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( - ФайлКонфигурации, + ФайлКонфигурации, ПутьКФайлуОтчета ); @@ -406,47 +408,47 @@ ВременныеФайлы.УдалитьФайл( ПутьКФайлуОтчета ); ВременныеФайлы.УдалитьФайл( ВременныйКаталог ); - УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + Утверждения.ПроверитьИстину( - Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); Утверждения.ПроверитьИстину( ФайлОтчетаСуществует, "Отчет о сравнении конфигурации с файлом должен существовать" - ); - + ); + КонецПроцедуры Процедура ТестДолжен_ПроверитьОсновнаяКонфигурацияИдентичнаФайлу() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); - + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); - + КонфигурацииИдентичны = УправлениеКонфигуратором.КонфигурацияИФайлИдентичны( ФайлКонфигурации ); - УправлениеКонфигуратором.УдалитьВременнуюБазу(); + УправлениеКонфигуратором.УдалитьВременнуюБазу(); УдалитьФайлы(ВременныйКаталог); Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); Утверждения.ПроверитьИстину( - Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); КонецПроцедуры Процедура ТестДолжен_ПроверитьФормированиеФайлаОтчетаОСравненииКонфигурацииРасширенияСФайлом() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); @@ -454,14 +456,14 @@ ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - + ИмяРасширения = "Test_Extension"; УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); - + УправлениеКонфигуратором.ПолучитьОтчетОСравненииКонфигурацииСФайлом( - ФайлРасширения, + ФайлРасширения, ПутьКФайлуОтчета, , , @@ -472,31 +474,31 @@ ВременныеФайлы.УдалитьФайл( ПутьКФайлуОтчета ); ВременныеФайлы.УдалитьФайл( ВременныйКаталог ); - УправлениеКонфигуратором.УдалитьВременнуюБазу(); - + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + Утверждения.ПроверитьИстину( - Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); Утверждения.ПроверитьИстину( ФайлОтчетаСуществует, "Отчет о сравнении конфигурации с файлом должен существовать" - ); - + ); + КонецПроцедуры Процедура ТестДолжен_ПроверитьКонфигурацияРасширенияИдентичнаФайлу() Экспорт - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); - + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); - - ИмяРасширения = "Test_Extension"; - + + ИмяРасширения = "Test_Extension"; + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); @@ -505,17 +507,46 @@ ИмяРасширения ); - УправлениеКонфигуратором.УдалитьВременнуюБазу(); + УправлениеКонфигуратором.УдалитьВременнуюБазу(); ВременныеФайлы.УдалитьФайл(ВременныйКаталог); Утверждения.ПроверитьИстину(КонфигурацииИдентичны, "Конфигурации отличаются"); Утверждения.ПроверитьИстину( - Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), + Не ФС.ФайлСуществует(УправлениеКонфигуратором.ФайлИнформации()), "Внутренний файл информации не должен существовать" ); КонецПроцедуры +Процедура ТестПроверяетИспользованиеДополнительныхПараметров_ПоказываетСписокРасширений() Экспорт + + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); + + УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог); + + ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cf"); + ФайлРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0", "1Cv8.cfe"); + + ИмяРасширения = "Test_Extension"; + + УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации); + УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ФайлРасширения, ИмяРасширения); + + ДопПараметры = Новый Массив; + ДопПараметры.Добавить("/DumpDBCfgList -AllExtensions"); + + УправлениеКонфигуратором.ИспользоватьДополнительныеПараметры(ДопПараметры); + УправлениеКонфигуратором.ВыполнитьКоманду(УправлениеКонфигуратором.ПолучитьПараметрыЗапуска()); + + ТекстВывода = УправлениеКонфигуратором.ВыводКоманды(); + ОжидаемыйТекст = "Test_Extension"; + + УправлениеКонфигуратором.УдалитьВременнуюБазу(); + + Утверждения.ПроверитьВхождение( ТекстВывода, ОжидаемыйТекст, "В выводе команды должно быть название расширения " + ОжидаемыйТекст); + +КонецПроцедуры + Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища) Возврат ФС.ФайлСуществует( ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD")); КонецФункции From b01859fbf19747a3ce3b52cb8260eae05cf62db8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov <aartbear@gmail.com> Date: Sun, 6 Mar 2022 19:45:32 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=91=D0=B0=D0=B3=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=20=D0=BD=D0=B0=20Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/tasks.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 26e307a..588fcac 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -11,7 +11,7 @@ "_runner": "terminal", "windows": { "command": "cmd", - "args": ["/c", "chcp 65001 ;"] + "args": ["/c", "chcp 65001 & "] }, "linux": { "command": "sh", @@ -70,8 +70,8 @@ "args": [ "1bdd", "${workspaceRoot}/features", - "-fail-fast", - "-out", + "-fail-fast", + "-out", "${workspaceRoot}/exec.log" ], "echoCommand": true, @@ -94,8 +94,8 @@ "args": [ "1bdd", "${file}", - "-fail-fast", - "-out", + "-fail-fast", + "-out", "${workspaceRoot}/exec.log" ], "echoCommand": true, @@ -120,8 +120,8 @@ "args": [ "1bdd", "${fileDirname}/../${fileBasenameNoExtension}.feature", - "-fail-fast", - "-out", + "-fail-fast", + "-out", "${workspaceRoot}/exec.log" ], "echoCommand": true, @@ -147,7 +147,7 @@ "1bdd", "gen", "${file}", - "-out", + "-out", "${workspaceRoot}/exec.log" ], "echoCommand": true, @@ -239,4 +239,4 @@ } } ] -} \ No newline at end of file +} From e57482ce8200fa4797c34d349a3bb5ad566084aa Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov <aartbear@gmail.com> Date: Sun, 6 Mar 2022 19:45:54 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=B2=D1=81=D0=BF=D0=BE=D0=BC=D0=BE=D0=B3?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B4=D1=83=D0=BB=D0=B8=20=D0=B2=20=D0=B3=D0=B8=D1=82=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3332d98..6e18e33 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ test-reports/* *.ospx tests.xml .scannerwork/ +oscript_modules/ From e0149fe1d78d20b6b58435391b1bcd4e0f9f3159 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov <aartbear@gmail.com> Date: Tue, 15 Mar 2022 15:07:59 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - добавил пример использования --- src/v8runner.os | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/v8runner.os b/src/v8runner.os index 599514d..fc172e0 100644 --- a/src/v8runner.os +++ b/src/v8runner.os @@ -1411,7 +1411,13 @@ Возврат СтандартныеПараметрыЗапускаКонфигуратора(); КонецФункции -// Устанавливаются дополнительные параметры, которые добавляются (подмешиваются) к очередной выполняемой команде +// Установить дополнительные параметры, которые добавляются (подмешиваются) к очередной выполняемой команде +// Пример использования - получить список всех установленных расширений - полезный функционал без необходимости доработки продукта +// ДопПараметры = Новый Массив; +// ДопПараметры.Добавить("/DumpDBCfgList -AllExtensions"); +// +// УправлениеКонфигуратором.ИспользоватьДополнительныеПараметры(ДопПараметры); +// УправлениеКонфигуратором.ВыполнитьКоманду(УправлениеКонфигуратором.ПолучитьПараметрыЗапуска()); // // Параметры: // ДопПараметры - Массив - Параметры, которые добавляются к очередной выполняемой команде