Имя: Пароль:
1C
1С v8
Программное создание каталога через http сервис
0 buketovav
 
22.01.21
15:30
Добрый день, Дорогие Форумчане!
Вопрос такой:
есть http сервис, он выполняет несложные действия по загрузке файлов в каталог, если каталога нет в системе, то создается новый.
Каталог сетевой.

Я сделал внешнюю обработку и сымитировал действия http сервиса именно под той учеткой, от которой выполняется этот сервис.
Все прошло успешно и каталог создался и в него записался наш файл.

Но когда это выполняется через реальный http сервис, то каталог не создается.

Я прошел отладчиком по коду при вызове его http сервисом и обнаружил такую странность.
На скриншоте по ссылке указано под цифрой "1" - в этом месте каталог создался и я могу посмотреть его полое имя и путь, а когда делаю один шаг и пытаюсь проверить наличие созданного каталога, то система мне говорит что нет такого каталога.
Вот и вопрос, как так получается и по какой причине?
Подскажите, пожалуйста.

https://prnt.sc/xg11hv
1 acht
 
22.01.21
15:36
(0) Режим совместимости у конфигурации какой?
2 buketovav
 
22.01.21
15:48
(1) Версия 8.3.6
3 buketovav
 
22.01.21
15:49
(1) так а почему работает через обработку? код то выполняется один и тот же в итоге, только параметры передаются входные другим способом
4 acht
 
22.01.21
15:54
(3) Пушо, это, когда через обработку, то файл создаешь ты, как пользователь ОС. А когда через сервер - пользователь ОС сервера. Это раз.

Посмотри в что параметрах не прилетает символов, которые не могут быть использованы в имени файла. До 8.3.11 СоздатьКаталог не выбрасывал исключения, но и каталог не создавал. Это два.
5 acht
 
22.01.21
15:55
Ну и тут скорей всего кккккомбо - у сервера нет прав, и исключение не выбрасывается
6 buketovav
 
22.01.21
15:58
вот и я думал про права, но как это проверить я не знаю, админского доступа у меня нет к серверу, где расположен сетевой каталог
7 buketovav
 
22.01.21
16:01
(4) да я разные варианты пробовал, проблема то не в записи файла, а в том, что после создания каталога бац и его нет уже, как-будто и не было, а файл уже потом пишется
8 mikecool
 
22.01.21
16:36
(6) используй каталог временных файлов
9 buketovav
 
22.01.21
16:46
(8) для чего? как мне это поможет в создании каталога?
10 Garykom
 
гуру
22.01.21
17:08
(0) сетевой каталог имеет задержку после команды на создание и моментом как можно обращаться к нему
паузу сделай ))
11 Garykom
 
гуру
22.01.21
17:09
(9) создавай свой каталог в темпе, затем переноси в реальный корень
12 buketovav
 
22.01.21
17:12
отличная идея! (11) попробую так
13 buketovav
 
22.01.21
18:01
(11) эм... только как создать каталог в КаталогеВременныхФайлов?
14 Garykom
 
гуру
22.01.21
18:29
(13) СоздатьКаталог(КаталогВременныхФайлов()+"\КаталогВаси")
15 buketovav
 
22.01.21
20:54
да, это работает, но вот есть проблема теперь скопировать весь каталог из временного каталога в сетевой, средствами 1с как сделать что-то не могу найти
16 buketovav
 
22.01.21
22:03
КомандаСистемы("xcopy /E /C /Y " + ВыбранныйКаталог + "\* " + "\\ИмяСервера\file_storage\" + УИДКонтрагента + "\"); - вот так сделал копирование каталога
17 buketovav
 
22.01.21
22:51
но вот есть еще проблема ))) Ошибка инициализации модуля: HTTPСервис при размещении этой строки в общем модуле ) мда...
18 buketovav
 
22.01.21
23:02
только тонкий и толстый клиент
19 buketovav
 
22.01.21
23:03
доступность
20 buketovav
 
22.01.21
23:35
сервис меня посылает теперь - Значение не является значением объектного типа (Записать)
21 buketovav
 
22.01.21
23:52
прав нет чтоль?
22 buketovav
 
22.01.21
23:54
то есть локально обработкой все работает,. а если тож самое через веб сервис, то не работает
23 buketovav
 
22.01.21
23:54
даже при попытке записать во временный каталог
24 buketovav
 
22.01.21
23:57
СоздатьКаталог(КаталогВременныхФайлов() + "\" + УИДКонтрагента);    
        КаталогНаДиске = Новый Файл(КаталогВременныхФайлов()+ "\" + УИДКонтрагента);
        Если КаталогНаДиске.Существует() Тогда
            ВыбранныйКаталог = КаталогНаДиске.ПолноеИмя;    
            ДвоичныеДанные   = ПолучитьИзВременногоХранилища(Адрес);
            ДвоичныеДанные.Записать(ВыбранныйКаталог + "\" + ИмяФайла + ".jpg");

вот здесь при попытке записать и падает
Основная теорема систематики: Новые системы плодят новые проблемы.