Один Ответ на “Продвинутый курс. Занятие №6”

  1. Денис Новосёлов 24.11.2015 в 19:35

    Задание выполнено через запуск платформы 1С через коммандную строку с соответсвующими параметрами.
    Для команд тестирования и архивирофания, проверяется возможность захвата монопольного доступа к базе.
    Для проверки синтаксиса, монопольного доступа не нужно.

    &НаСервереБезКонтекста
    Функция ВозможенМонопольныйРежим()
        Попытка
            УстановитьМонопольныйРежим(Истина);
            Возврат Истина;
        Исключение
            Возврат Ложь;
        КонецПопытки;
    КонецФункции

    &НаКлиенте
    Процедура РезервнаяКопия(Команда)
        Если ВозможенМонопольныйРежим() Тогда
            лКаталогВыгрузкиИБ = "e:\Курсы 1С\Продвинутый курс по программированию\ДомашниеЗадания";
            лФайлВыгрузки = """" + лКаталогВыгрузкиИБ + Формат(ТекущаяДата(),"ДФ='yyyy-MM-dd_hh-mm-ss"".dt""'") + """";
            лКаталог1С = """c:\Program Files (x86)\1cv8\common\1cestart.exe""";
            лИмяПользователья = "Администратор";
           
            ПутьКБазе = СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
            Строка = лКаталог1С + " designer /f " + ПутьКБазе + " /n " + лИмяПользователья + " /dumpib " + лФайлВыгрузки;
           
            ЗавершитьРаботуСистемы(ложь);
            ЗапуститьПриложение(Строка);  
        Иначе
            Сообщить("С информационной базой работают другие пользователи.
                |В данный момент невозможно установить монопольный режим!'");
        КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура СинтаксическийКонтроль(Команда)
        лИмяПользователья = "Администратор";
        ПутьКБазе = СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
        лКаталог1С = """c:\Program Files (x86)\1cv8\common\1cestart.exe""";
        лЛогФайл = """e:\Курсы 1С\Продвинутый курс по программированию\ДомашниеЗадания\SintaxError.log""";

        Строка = лКаталог1С + " designer /f "+ПутьКБазе+" /n "+лИмяПользователья+" /CheckModules  -ThinClient -WebClient  -Server  -ExternalConnection -ThickClientOrdinaryApplication /DumpResult " + лЛогФайл;
        ЗапуститьПриложение(Строка);
    КонецПроцедуры

    &НаКлиенте
    Процедура ТестированиеИсправлениеИБ(Команда)
        Если ВозможенМонопольныйРежим() Тогда 
            лИмяПользователья = "Администратор";
            ПутьКБазе = СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
            лКаталог1С = """c:\Program Files (x86)\1cv8\common\1cestart.exe""";
            лЛогФайл = """e:\Курсы 1С\Продвинутый курс по программированию\ДомашниеЗадания\Test.log""";
           
            Строка = лКаталог1С + " designer /f "+ПутьКБазе+" /n "+лИмяПользователья+" /IBCheckAndRepair -LogAndRefsIntegrity /DumpResult " + лЛогФайл;
            ЗавершитьРаботуСистемы(ложь);
            ЗапуститьПриложение(Строка);  
        Иначе
            Сообщить("С информационной базой работают другие пользователи.
                |В данный момент невозможно установить монопольный режим!'");
        КонецЕсли;
    КонецПроцедуры