Имя: Пароль:
1C
1C 7.7
v7: Ошибка при выполнении команды; - создать каталог
,
0 Масянька
 
12.02.16
08:33
Доброе утро!

Есть код:

    Если (ФС.СуществуетФайл(КаталогДляЗаписи) = 0) Тогда
        ТекстВопроса = "Каталог для записи не обнаружен." + РазделительСтрок + "Создать?";
        Если Вопрос(ТекстВопроса, "Да+Нет", 60) <> "Да" Тогда
            мОшибка = 1;
            Возврат мОшибка;
        Иначе
            ФС.СоздатьКаталог(КаталогДляЗаписи);
            Возврат мОшибка;
        КонецЕсли;
    КонецЕсли;    

При выполнении выдает ошибку: "Ошибка при выполнении команды;"
Каталог пытаюсь создать так: \\Имя компа\Общая папка\Вложенная папка\Вложенная папка\
Общая папка - общий доступ.

Что не так-то?

Заранее спасибо.
1 cw014
 
12.02.16
08:47
UNC пути
2 Ёпрст
 
12.02.16
09:13
(0) каталога \\Имя компа\Общая папка\Вложенная папка не существует, в котором ты пытаешься создать еще каталог Вложенная папка
3 Масянька
 
12.02.16
09:15
(2) Есесьно.
Сначала есть только "\\Имя компа\Общая папка\".
Там надо сначала папку, потом еще парочку папок.
Готового нет?
4 Mikeware
 
12.02.16
09:15
(3) 7 строк написать лениво?
5 Масянька
 
12.02.16
09:16
(4) Как-то не красиво... ИМХО.
6 Ёпрст
 
12.02.16
09:17
(3) ну есесьенно тебе на это ошибку выдаёт :)
7 Масянька
 
12.02.16
09:18
(6) А я уже догадалась. :)
8 Ёпрст
 
12.02.16
09:18
Доб="\\";
    Если Лев(Путь,2)<>Доб Тогда
        Доб="";
    Иначе
        Путь = Сред(Путь,3);
    КонецЕсли;
                
    СписокКаталогов = глРазложить(Путь,"\");
    СоздаваемыйКаталог= Доб+СписокКаталогов.ПолучитьЗначение(1)+"\";
    Для к = 2 По СписокКаталогов.РазмерСписка()  Цикл
        Имя = СписокКаталогов.ПолучитьЗначение(к);
        Если ПустоеЗначение(Имя)=0 Тогда
            СоздаваемыйКаталог=СоздаваемыйКаталог+ПравильноеИмя(Имя)+"\";    
            Если ФС.СуществуетФайл(СоздаваемыйКаталог+"*.*")=0 Тогда
                ФС.СоздатьКаталог(СоздаваемыйКаталог);
                //                    Сообщить(СоздаваемыйКаталог);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат  СоздаваемыйКаталог;
10 Масянька
 
12.02.16
09:19
(8) А одной строчкой не? :)
11 Масянька
 
12.02.16
09:20
+(10) А вообще, конечно, спасибо!
12 Ёпрст
 
12.02.16
09:21
(10) можно, но только не штатными методами
13 ДенисЧ
 
12.02.16
09:21
командаСистемы("mkdir c:\1\2\3\4\5\");
у меня сработало.
14 Fish
 
12.02.16
09:21
(10) Можно. Используй рекурсию.
15 Масянька
 
12.02.16
09:22
(13) Во! Мне - нравится. Тебе тоже - спасибо.
16 Ёпрст
 
12.02.16
09:25
тогда уж, писать не через команда системы, ну если конечно нравится как окошко мелькаеит
17 Масянька
 
12.02.16
09:27
(16) А как?
18 Ёпрст
 
12.02.16
09:27
(17) whs+run хотя бы
19 Масянька
 
12.02.16
09:32
(18) Еще раз - спасибо.
20 ADirks
 
12.02.16
09:48
нашёл тут в скриптах
Sub MakeDir(Dir)
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Left(Dir, 2) = "\\" Then
        'UNC Path
        pos = InStr(3, Dir, "\")    'Server name
        p = Left(Dir, pos)
        Dir = Mid(Dir, pos + 1)
    Else
        p = ""
    End If
    pos = 1
    While pos <> 0
        pos = InStr(Dir, "\")
        If pos = 0 Then
            p = p & Dir
        Else
            p = p & Left(Dir, pos)
            Dir = Mid(Dir, pos + 1)
        End If
        If fso.FolderExists(p) = False Then fso.CreateFolder p
    Wend
End Sub

не совсем идеологочески верно, но вроде работает
21 Злопчинский
 
12.02.16
14:14
(13) на сетевые пути не прокатит..
?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн