RunEnterprise.js at tip Вы: nobody
Вход

File RunEnterprise.js from the latest check-in


$engine JScript
$uname RunEnterprise
$dname Запуск 1С
$addin global
$addin stdcommands
//$addin stdlib

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////{ Cкрипт "Запуск 1С Предприятия" (RunEnterprise.js) для проекта "Снегопат"
////
//// Описание: макрос выполняет запуск альтернативного режима работы.
////    Для обычного толстого клиента альтернативным является толстый клиент управляемое приложение и наоборот.
////    Для смены режима исправьте значения констант режимЗапуска1 и режимЗапуска2
////    
////    У меня сейчас активно юзается разработка как в обычном, так и в управляемом приложении - потихоньку начинаю переползать на упр.приложение
////    без этого макроса приходится вручную переключать в настройках режимы, режим запуски отладки также неудобен, т.к. запустить только один сеанс в режиме отладки
////
//// Автор: Артур Аюханов aka artbear <aartbear@gmail.com>
////}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

global.connectGlobals(SelfScript);
// stdlib.require('SettingsManagement.js', SelfScript);

function getPredefinedHotkeys(predef){
    predef.setVersion(1);
    predef.add("Альтернативный режим", "Ctrl + Alt + F5");
}

SelfScript.Self['macrosАльтернативный режим'] = function () {
    поменятьРежимЗапуска()
    
    //запустить 1С
    if(stdcommands.Config.RunEnterprise.getState().enabled)
        stdcommands.Config.RunEnterprise.send()
    
    поменятьРежимЗапуска()
}

function поменятьРежимЗапуска()
{
    var былРежимЗапуска = profileRoot.getValue(путьПрофиля)

    var новыйРежим = былРежимЗапуска;
    if(новыйРежим == режимЗапуска1)
        новыйРежим = режимЗапуска2
    else
        новыйРежим = режимЗапуска1
        
    profileRoot.setValue(путьПрофиля, новыйРежим)

    return былРежимЗапуска
}

// Дополнение 28.01.2014 Slider
function StartDebugAs( userName )
{
	путьПрофиляПользователя	= "Launch/UserNew"
	путьСпособАвторизации	= "Launch/AuthenticationTypeNew"
    var пользователь		= profileRoot.getValue(путьПрофиляПользователя);
	var авторизация			= profileRoot.getValue(путьСпособАвторизации);	
	
    profileRoot.setValue(путьПрофиляПользователя, userName );	
	profileRoot.setValue(путьСпособАвторизации, 1);		
	
	if( stdcommands.CDebug.Start.getState().enabled )
	{	
		stdcommands.CDebug.Restart.send();
	}
	
	// возвращаем настройки назад как было
	profileRoot.setValue(путьПрофиляПользователя, пользователь );	
	profileRoot.setValue(путьСпособАвторизации, авторизация );	
}


SelfScript.Self['macrosЗапуск отладки от имени (выбор при запуске)'] = function () {
	
	StartDebugAs( "" );	
}


SelfScript.Self['macrosЗапуск отладки от имени (по списку)'] = function () {
		
	путьДоСпискаПользователей		= "Launch/MRULaunchUserList"	
	var списокЗначенийПользователей	= profileRoot.getValue( путьДоСпискаПользователей );
	массив							= списокЗначенийПользователей.ВыгрузитьЗначения();
	
	быстрыйНаборКоличество		= списокЗначенийПользователей.Количество();			
	if ( быстрыйНаборКоличество > 0 )
	{
		var ListMode = v8New("ValueList");
		for ( i = 0; i < быстрыйНаборКоличество; i++ )
		{	
			пользователь = списокЗначенийПользователей.Получить( i );
			ListMode.add( i, пользователь );	   
		}
		первыйВСписке	= списокЗначенийПользователей.Получить(0);
		choice			= ListMode.ChooseItem("Выберите пользователя", первыйВСписке );
		if ( choice != undefined )
		{						
			имяВыбранногоПользователя = choice.Представление;			
			StartDebugAs( имяВыбранногоПользователя );
		}
	}	
}

SelfScript.Self['macrosЗапуск отладки от имени Администратор'] = function () {
		
	StartDebugAs("Администратор");
}
//ДополнениеКонец


SelfScript.Self['macrosНастроить режимы запуска'] = function () {

    var текущийРежимЗапуска = profileRoot.getValue(путьПрофиля);
    ////{ режимы запуска 1С, заданные в профайле
    // 1 тонкий клиент
    // 2 автоматически
    // 3 толстый клиент (управляемое приложение)
    // 4 толстый клиент (обычное приложение)
    // 5 веб-клиент
    ////}
    var ListMode = v8New("ValueList");
    ListMode.add(1, "Тонкий клиент");
    ListMode.add(2, "Автоматически");
    ListMode.add(3, "Толстый клиент (управляемое приложение)");
    ListMode.add(4, "Толстый клиент (обычное приложение)");
    ListMode.add(5, "Веб-клиент");
    
    var defaultItem = ListMode.FindByValue(текущийРежимЗапуска);
    var choice = ListMode.ChooseItem("Выберите режим запуска по умолчанию", defaultItem);
    if (choice!=undefined) {
        режимЗапуска1 = choice.value;
        if (режимЗапуска1!=текущийРежимЗапуска) profileRoot.setValue(путьПрофиля, режимЗапуска1);
    } 
    
    var defaultItem = ListMode.FindByValue(режимЗапуска2);
    var choice = ListMode.ChooseItem("Выберите альтернативный режим запуска", defaultItem);
    if (choice!=undefined) {
        режимЗапуска2 = choice.value;
    }
    
    //Сохраним режимы запуска 
    profileRoot.setValue(pflRunEnterpriseStartModeAlternative, режимЗапуска2);
    
}

var pflRunEnterpriseStartModeAlternative  = "RunEnterprise/StartAlternativeMode";
profileRoot.createValue(pflRunEnterpriseStartModeAlternative, 3, pflSnegopat); // управляемый толстый, для алтернативного режима

var путьПрофиля = "Launch/StartMode2"

var режимЗапуска1 = profileRoot.getValue(путьПрофиля);
var режимЗапуска2 = profileRoot.getValue(pflRunEnterpriseStartModeAlternative);