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");
+//
+//    УправлениеКонфигуратором.ИспользоватьДополнительныеПараметры(ДопПараметры);
+//    УправлениеКонфигуратором.ВыполнитьКоманду(УправлениеКонфигуратором.ПолучитьПараметрыЗапуска());
 //
 // Параметры:
 //   ДопПараметры - Массив - Параметры, которые добавляются к очередной выполняемой команде