Имя: Пароль:
IT
 
Пути к шарам в Linux из 1с
0 stonewolf
 
11.08.15
14:38
Доброго, камрады. Вот хочется из 1с почитать файлики на шаре, однако odin's'ass пути к шарам типа "net://" и "smb://" не жрёт, а монтировать это руками не комильфо. Подумал делать временный маунт в темпах, а потом чистить. Но оно хочет пароль, есессно. Т.е. надо править sudoers, что тоже "ниочинь". Больше вменяемых вариантов нет?
1 ДенисЧ
 
11.08.15
14:46
а шо, этот ваши лайнух через unc не понимает?
2 stonewolf
 
11.08.15
14:53
он-то понимает. одинэз, зараза, не хочет.
3 ДенисЧ
 
11.08.15
14:53
что значит - не хочет?
4 stonewolf
 
11.08.15
14:54
1с файлов не видит. Насколько я понял, она в начале неявно дописывает "file://"
5 18_plus
 
11.08.15
14:55
а чо, в линухе уже можно лазить по несмонтированным разделам?
6 stonewolf
 
11.08.15
14:56
мож чего поставить надо?
7 ДенисЧ
 
11.08.15
14:57
(6) ящик пива админу нужно поставить ))
8 stonewolf
 
11.08.15
14:57
ну есть же неявное монтирование. х.з. что там у 1с внутрях творится. всякие thunarы с кокверорами же могут.
9 stonewolf
 
11.08.15
14:58
(7) эт я для себя пока балуюсь ))
10 Garikk
 
11.08.15
14:58
ибо нефиг в православном линухе богомерзкий нетбиус использовать
11 ДенисЧ
 
11.08.15
14:58
А когда ты конкверором открываешь, он у теб япароль не спрашивает?
12 stonewolf
 
11.08.15
14:59
(11) ему sudo ж не нужен. а у шары пароля нет
13 stonewolf
 
11.08.15
15:01
вот мож чего поставить надо, чтобы ТекстовыйДокумент мог открыть напрямую "//srv/shara/shnyaga.txt"?
14 stonewolf
 
12.08.15
15:17
Вопчем, сделал пока так:

в sudoers добавил разрешения на mount/umount
в 1с вот такую фигню:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    шара=ПодключитьШару("//192.168.тыры.пыры/шара");
    т=новый ТекстовыйДокумент;
    т.Прочитать(шара+"/файлег.txt");
    УдалитьШару(шара);
    
КонецПроцедуры

Функция ПодключитьШару(путь,логин="guest",пароль="guest")
    
    КаталогШары=ПолучитьИмяВременногоФайла("");
    
    лог=" 2>> /tmp/1c_log";
    ЗапуститьПриложение("mkdir "+КаталогШары+лог,,истина);
    ЗапуститьПриложение("sudo mount "+путь+" "+КаталогШары+" -o username="+логин+",password="+пароль+лог,,истина);
    
    Возврат КаталогШары;
    
КонецФункции//    

Процедура УдалитьШару(шара)
    
    ЗапуститьПриложение("sudo umount "+шара+" 2>> /tmp/1c_log",,истина);
    ЗапуститьПриложение("rmdir "+шара+" 2>> /tmp/1c_log");
    
КонецПроцедуры//    УдалитьШару(шара)

Процедура ОчиститьШары()
    
    СписокШар=ПолучитьИмяВременногоФайла();
    КомандаСистемы("(ls /tmp | grep -E 'v8_\w+_\w+$') > "+СписокШар+" 2>> /tmp/1c_log");
    
    т=новый ТекстовыйДокумент;
    т.Прочитать(СписокШар);
    Для к=1 По т.КоличествоСтрок() Цикл
        шара="/tmp/"+т.ПолучитьСтроку(к);
        УдалитьШару(шара);
    КонецЦикла;
    ЗапуститьПриложение("rm "+СписокШар);
    
КонецПроцедуры//    ОчиститьШары

Процедура Кнопка1Нажатие(Элемент)
    ОчиститьШары();
КонецПроцедуры

Как-то так... Вооот. У кого мысли есть годные по этому поводу?
15 stonewolf
 
12.08.15
15:19
Через КомандуСистемы рандомно ошибку выдавал, поэтому заменил на ЗапуститьПриложение
16 18_plus
 
12.08.15
15:29
а чо бы в fstab не прописать и забыть?
17 Asmody
 
12.08.15
15:30
Использовать autofs http://linuxoid.in/Autofs
18 stonewolf
 
12.08.15
16:22
(16)
1. патамушта шары могут быть разные и появляться новые
2. ибо привязываться к одному локальному пути на разных машинах имхо не комильфо

(17) Чёт 1с не цепляет его...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший