Имя: Пароль:
1C
1С v8
Копирование файла по сети, в чем проблема?
0 prokat
 
25.01.20
16:47
1С Обычные формы, замописная конфигурация
Стоит задача, в процессе регламентного задания скопировать файл с одного сервера на другой...
Если использовать стандартную процедуру "КопироватьФайл" то выдает ошибку - "Ошибка при выполнении файловой операции" но при этом если не регламентом, а вручную (то есть на клиенте) то перемещает...
Попробовал через COMОбъект("Scripting.FileSystemObject"); аналогично на клиенте работает регламентом нет.
Но есть момент....
1С сервер расположен на одном сервере, файлы на другом сервере, а я запускаю это все на трем....
Доступ к файлам на сервере запаролен(с клиента вручную указываю пароль и логин - так работает) скорее всего в этом и причина из-за авторизации...
Но пробовал через
"WScript.Shell" net use
где указывал пароль и логин все ровно не перемещает файл....
Подскажите куда копать?
1 Garykom
 
гуру
25.01.20
17:11
(0) Копать в сторону повышения скиллов в ИТ
2 Garykom
 
гуру
25.01.20
17:13
(1)+ Ну или админа уже позовите, который умеет
net help use
3 prokat
 
25.01.20
17:16
а реально есть идеи?
4 Garykom
 
гуру
25.01.20
17:17
(3) Реально открой командную строку на сервер где 1С стоит, зайдя туда по RDP с теми же правами юзера от которого сервер 1С пашет и экспериментируй
5 Garykom
 
гуру
25.01.20
17:39
(4)+ Реально не понимаю в чем проблема
https://i.paste.pics/8eff283661549fbecbd87c9e707f412a.png
6 prokat
 
25.01.20
22:18
спасибо,сейчас попробую
7 prokat
 
26.01.20
01:30
(4) Так и сделал, зашел по RDP где сам сервер 1С, выполнил команду через cmd и файл скопировался!
Эту же команду закинул в WshShell.Run(текст) - и код выполняется якобы и без ошибок(ранее если не правильный путь падал в ошибку) но при этом файл не копируется...
Команда одна и та же...
8 prokat
 
26.01.20
01:50
Кстати, если в команде WshShell убрать"net use \\server/user:USR" то падает на ошибку...если использовать "net use" отработает без ошибки но файл не переносит...
10 Turku
 
26.01.20
02:17
А почему бы не поднять FTP-сервер?
11 Злопчинский
 
26.01.20
02:18
(7) "WshShell.Run(текст)" - смотри под каким правами выполняется, очень похоже что нет прав на папку-получатель/запись/итд.
код выполняется ЯКОБЫ без ошибок - это как. как ты это увидел? при выполнении run - окно открывается? что выводится в окно?

посмотри, здесь подробно расписано, в т.ч. про код возврата RUN или смотри переменную окружения ERRORLEVEL
https://celitel.info/klad/wsh/wshshell.htm
12 Злопчинский
 
26.01.20
02:18
3.4. Run
Синтаксис:

Run(<Command>,<WindowStyle>,<WaitOnReturn>)
Назначение: создаёт новый независимый процесс, который запускает заданное приложение.

Параметры:

<Command> - строка, командная строка запуска приложения.
<WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения. Некоторые возможные значения:
0 - Не отображает окно.
1 - Активизирует и отображает окно.
2 - Активизирует окно и отображает его в свёрнутом виде.
3 - Активизирует окно и отображает его в максимизированном виде.
<WaitOnReturn> - необязательный, булево (число). True - сценарий возобновит работу только после завершения вызванного процесса. False (по умолчанию) - управление передаётся сразу обратно в сценарий.
Описание: если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.

Пример:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /e,/root,""C:\Program Files"""
Другой пример:

Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
13 Garykom
 
гуру
26.01.20
02:21
(7) Ты понимаешь что сервер 1С (откуда ты вызываешь копирование) может (чаще всего так и есть) быть запущен от имени другого пользователя операционки, не от того от имени кого ты зашел по rdp?

Надо смотреть права юзеров.

И создай батник (.bat или .cmd) и запускай его на выполнение из 1С, причем Wscript.Shell нафик не нужен ибо есть ЗапуститьПриложение и КомандаСистемы
14 Garykom
 
гуру
26.01.20
02:24
15 prokat
 
26.01.20
22:12
(13) ЗапуститьПриложение и КомандаСистемы - это все работает только на клиенте!
16 prokat
 
26.01.20
22:15
(12) "WaitOnReturn" - указал третьим параметром, вернул после выполнения "1" (то есть ИСТИНА), отработало без ошибок но файл не передается.
Касательно пользователя то именно под нужным запускается регламент под которым работает служба...
И по RDP под ним захожу...
17 acht
 
26.01.20
22:17
(15) Я вот думаю... Распространяются ли авторские права 1С на синтакс-помощник? Не нарушу ли я пункт форума, прямо запрещяющий распространение материалов, защищенных авторским правом, если я процитирую здесь кое-что и потыкаю тебя туда носом?
18 prokat
 
26.01.20
22:17
Как то странно, на самом сервере где 1С через командную строку работает....возможно что-то в правах или политики безопасности...
19 prokat
 
26.01.20
22:19
(17) читать умею и я не админ....но твое право, можешь показать свою воспитанность)
20 Garykom
 
гуру
26.01.20
22:23
(19) Вот и позови уже админа и спроси USR1CV8 (или от кого там у вас сервер 1С пашет) какие права имеет?
https://forum.infostart.ru/forum71/topic123795/
21 Garykom
 
гуру
26.01.20
22:24
(20)+ Если тебе не понятны слова на форуме по ссылке - менять профессию пока не поздно

Ты с тупейшим вопросом (который 5 минут не стоит) уже сколько возишься?
22 Garykom
 
гуру
26.01.20
22:26
Уверен что админ или то там ставил сервер 1С вероятно прочитал нечто вроде https://habr.com/ru/company/pc-administrator/blog/349620/
23 prokat
 
26.01.20
22:26
(20) USR1CV8 имеет полный права с правом записи на сетевые ресурсы
24 Garykom
 
гуру
26.01.20
22:27
(23) Тогда сцуко КопироватьФайл()
25 Garykom
 
гуру
26.01.20
22:29
(24)+ Возможно ты с путями накосячил, если файловый сервер на линукс то там рЕгИсТр ИмЕеТ зНаЧеНиЕ
26 Garykom
 
гуру
26.01.20
22:34
27 JeHer
 
27.01.20
06:42
(25) "рЕгИсТр ИмЕеТ зНаЧеНиЕ"
у меня кровь потекла из глаз
28 ДенисЧ
 
27.01.20
06:51
(23) Как проверял?
29 prokat
 
28.01.20
00:53
(14) именно эта ссылка и помогла!
БОЛЬШОЕ СПАСИБО!!!