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

Приступайте к шестому занятию продвинутого курса.

ps. На этой странице не нужно отчитываться о выполнении ДЗ.

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

  1. Не на той странице отчиталась, решения задания не видно :(.

  2. Доброго дня. Ход решения д/з №6:
    1. Создала внешнюю обработку “УтилитаАдминистрирования”. На форму поместила кнопки: “СинтаксическийКонтроль”,”ВыгрузитьИБ”,

    “ТестированиеИИсправлениеИБ”.

    2.Привожу модуль формы обработки:

    &НаКлиенте
    Процедура СинтаксическийКонтроль(Команда)
        ПутьКБазе=стрзаменить(стрзаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
        Строка="C:\Program Files\1cv82\common\1cestart.exe designer /f "+ПутьКБазе+" /n Администратор"+" /CheckModules  

    -ThinClient -WebClient  -Server  -ExternalConnection -ThickClientOrdinaryApplication"+"/DumpResult

    ""C:\Римма\ДЗ_6\result1c_синтаксис.txt""";
        ЗавершитьРаботуСистемы(ложь);
        ЗапуститьПриложение(Строка);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВыгрузитьИБ(Команда)
        ПутьКБазе=стрзаменить(стрзаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
        Строка="C:\Program Files\1cv82\common\1cestart.exe designer /f "+ПутьКБазе+" /n Администратор"+" /dumpib

    C:/Римма/ДЗ_6/ДЗ6.dt""";
        ЗавершитьРаботуСистемы(ложь);
        ЗапуститьПриложение(Строка);
    КонецПроцедуры

    &НаКлиенте
    Процедура ТестированиеИИсправлениеИБ(Команда)        
        ПутьКБазе=стрзаменить(стрзаменить(СтрокаСоединенияИнформационнойБазы(),"File=",""), ";","");
        Строка="C:\Program Files\1cv82\common\1cestart.exe designer /f "+ПутьКБазе+" /n Администратор"+" /IBCheckAndRepair

    -LogAndRefsIntegrity"+"/DumpResult ""C:\Римма\ДЗ_6\result1c_тестирование.txt""";
        ЗавершитьРаботуСистемы(ложь);
        ЗапуститьПриложение(Строка);  
    КонецПроцедуры

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

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
        Если ПроверкаМонопольности()=ложь Тогда
            Сообщить("Для выполнения обработки необходим монопольный режим!");
        КонецЕсли;
    КонецПроцедуры

    3.Проверить клиент-серверный вариант работы не удалось, но в этом случае добавилось бы условие при определении пути к базе:

    Если Лев(СтрокаСоединенияИнформационнойБазы(),5)="File=" Тогда
            ФайловыйВариант = Истина;
        Иначе
            ФайловыйВариант = Ложь;    
            ПозицияРазделителя = Найти(СтрокаСоединенияИнформационнойБазы(),";");
            ИмяКластера= Сред(СтрокаСоединенияИнформационнойБазы(),7, ПозицияРазделителя-8);
            ИмяИнформационнойБазы =

    Сред(СтрокаСоединенияИнформационнойБазы(),ПозицияРазделителя+5,СтрДлина(СтрокаСоединенияИнформационнойБазы())-ПозицияРаздели

    теля-5);
            ИмяИнформационнойБазы=СтрЗаменить(ИмяИнформационнойБазы,"""","");             
        КонецЕсли;

    4. в итоге база выгружается.Результат синтаксического контроля и тестирования ИБ сохраняется в текстовый файл в следующем

    виде: 0 – успешно, 1 – неудачно, 101 – в данных имеются ошибки.