Имя: Пароль:
1C
1С v8
проверка свободного места на жестком диске.
0 antgrom
 
27.10.15
17:32
есть БСП с подсистемой "РаботаСФайлами".
есть желание проверять жесткие диски : "есть ли свободное место".
Я в БСП этой проверки не нашел , но такая проверка должна быть в БСП.
кто встречался с этим вопросом - запостите код , плз.
1 ДенисЧ
 
27.10.15
17:33
кому должна?
2 antgrom
 
27.10.15
17:36
(1) ты лучше по теме напиши : встречался ли ты с проверкой свободного места на диске средствами 1С.
3 piter3
 
27.10.15
17:38
4 antgrom
 
27.10.15
17:47
(3) спасибо    )
5 antgrom
 
28.10.15
11:21
один из вариантов кода :
попытка // т.к. не во всех ОС может работать scripting
        лОтказ = Ложь;
        fso      =    Новый COMОбъект("scripting.fileSystemObject");
        Диски = fso.Drives;
        лВыводитьСообщение = Ложь;
        лТекст = "Корректная работа 1С невозможна.
        |Сообщите в техподдержку.";
        для каждого диск из Диски Цикл
            Если  диск.ShareName = "" и диск.IsReady Тогда
                // проверка
                лТотал =  диск.TotalSize/(1024*1024);// М
                лФриСпейс = диск.FreeSpace/(1024*1024);
                лПроцент =  диск.FreeSpace/диск.TotalSize;
                лДопустимое = 512;
                Если лПроцент<0.01   Тогда
                    лВыводитьСообщение = Истина;
                    лТекст = лТекст +"
                    |Недостаточно места на диске : "+диск.DriveLetter;
                    лТекст = лТекст +"
                    |Осталось меньше "+Формат(лПроцент*100, "ЧЦ=10; ЧДЦ=2") +"% на диске.";  
                КонецЕсли;
                Если лДопустимое>лФриСпейс   Тогда
                    лВыводитьСообщение = Истина;
                    лТекст = лТекст +"
                    |Недостаточно места на диске : "+диск.DriveLetter;
                    лТекст = лТекст +"
                    |Осталось меньше "+ Формат(лФриСпейс, "ЧЦ=10; ЧДЦ=2") +"Мб на диске.";  
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;    
        Если лВыводитьСообщение Тогда
            #Если Клиент Тогда
                Предупреждение(лТекст);
            #КонецЕсли
            ОбщегоНазначения.СообщитьОбОшибке(лТекст, лОтказ, "Недостаточно места на диске.");
        КонецЕсли;
    Исключение
        //
        //ОписаниеОшибки = ОписаниеОшибки();
        //ОбщегоНазначения.СообщитьОбОшибке("Не удалось проверить объём свободного места на дисках.", , "");
    КонецПопытки;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший