Имя: Пароль:
1C
1С v8
Не выполняется команда системы на сервере под линуксом!
0 tciban
 
08.08.16
13:18
Добррого времени дня, уважаемые коллеги! И снова я и снова с глупыми вопросами про работу сервера 1С под убунтой! Помогите! Суть дела такова - 1С на сервере должна получать с некоего портала файл для дальнейшей его обработки. Сисадмины сказали делать это следующей командой: wget --user=Имя пользователя --password=\Пассворд -O /tmp/tmpbp.xlsx "http://portal.ural.croc.ru/Sale/DocLib/имя файла на портале.xlsx"

Когда выполняю команду от имени пользователя сервера 1С на терминале ручками - все ок, появляется нужный файл. Кода делаю это в конфигурации, на сервере командой ЗапуститьПриложение - файл появляется, но размер его 0 байт! Что делать? Что я делаю не так?
1 Garykom
 
гуру
08.08.16
13:19
ЗапуститьПриложение != КомандаСистемы
2 Garykom
 
гуру
08.08.16
13:21
(1)+ Если хочешь дождаться пока завершится/скачает то пишешь файлик .sh (внутри твой код wget...) с присвоением ему "прав на запуск" и уже его запускаешь
3 Garykom
 
гуру
08.08.16
13:23
(2)+ Да еще правильно сделать это переназначить вывод для скрипта из стандартной консоли в файл и затем из 1С анализ файла на ошибки и т.д.
4 tciban
 
08.08.16
13:24
КомандаСистемы работает только на клиенте.
5 tciban
 
08.08.16
13:26
(3) я бы попробовал, н опознания мои в синтаксисе линукса даже не нулевые, а отрицательные. Вобщем не знаю я как это сделать. А один одмин болеет, второй убежал с горестными крикаме...
6 Garykom
 
гуру
08.08.16
13:28
(4) Я что говорил что она работает на сервере?
Намекал что у тебя в (0) "Сисадмины сказали делать это следующей командой"

(5) Попроси сисадминов сделать "батник" для линукса с параметрами выходными и выходными
На вход подается адрес/логин/пароль/путь_файла_xls/путь_файла_лога
7 Garykom
 
гуру
08.08.16
13:29
(6) *параметрами входными и выходными
8 tciban
 
08.08.16
13:32
(6) Попробую, но есть вопрос - чем может быть неправилен вызов команды через ЗапуститьПриложение? Другую команду я уже так делал, работает. Делал конкретно ЗапуститьПриложение("unoconv -f ods "+ИмяФайла, , Истина, КодВозврата);
9 Garykom
 
гуру
08.08.16
13:38
(8) Не забыл "Истина" ?
10 Йохохо
 
08.08.16
13:38
(0) а почему \Пассворд? дописывать в лог добавьте "-a /tmp/wgeturalcroc.log" и желательно как то рандомизировать имя выходного файла, впоретесь на ровном месте. Может рано смотрите размер? может вгет в фоне еще качает
11 Garykom
 
гуру
08.08.16
13:39
(9)+ ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)
12 hhhh
 
08.08.16
13:40
(8) твоя программа параллельно работает с ЗапуститьПриложение. Запустить приложение еще не успело даже стартовать, па ты уже тут как тут со своей обработкой, уже начинаешь обрабатывать.
13 Garykom
 
гуру
08.08.16
13:40
(10)+ Да еще с 1С77 под wine была трабла что КомандаСистемы не ждала завершения )) может тут нечто вроде такого бага
14 tciban
 
08.08.16
13:54
(10) Пассворд - это там должен пароль быть, конечно он не такой :) Все файлы удаляются по завершению обработки.
15 Йохохо
 
08.08.16
13:55
(13) ман в вгете прямо говорит, что вгет сдизайнен для работы в фоне без залогиненного юзера, он может вернуть что то и уйти в фон, -v нету. Проще лог посмотреть и нетстат
16 tciban
 
08.08.16
13:56
(9)(12) Да нет, я после wget на точке останова ждал не раз достаточное время, но не появлялся размер у файла. А вручную команду ввожк - сразу же появляется правильный файл :(
17 Йохохо
 
08.08.16
13:58
(16) выведи лог и посмотри, мб что то с кавычками и тупо ошибка
18 tciban
 
08.08.16
14:01
(17) как его вывести?
19 Йохохо
 
08.08.16
14:01
(18) добавь в команду "-a /tmp/wgeturalcroc.log"
20 tciban
 
08.08.16
14:09
(19) лог появился, как его посмотреть?
21 Йохохо
 
08.08.16
14:13
(20) в консоли nano /tmp/wgeturalcroc.log или tail -f -n 20 /tmp/wgeturalcroc.log или cat /tmp/wgeturalcroc.log
22 tciban
 
08.08.16
14:16
мда... много чего там написано оказалось. все больше со словом Unauthorized Пошел одмина ловить :)
23 Йохохо
 
08.08.16
14:16
(22) что то не экранировал правильно в команде
24 Йохохо
 
08.08.16
14:17
(23) + и админ пошлет) ошибка в коде 1с
а много потому что -a это дописывать
25 Garykom
 
гуру
08.08.16
14:19
(22) ты еще пароля рута попроси... и скажи что если не даст то руткиты пойдешь искать ))
26 tciban
 
08.08.16
14:20
(23) Но что? Вот блин.
27 Йохохо
 
08.08.16
14:22
(26) обрами все параметры ' или " или "", хз. --password='DerParol'
28 tciban
 
08.08.16
14:22
(25) Да чего уж там, андроид на разных девайсах рутил и с этим справлюсь...
29 Garykom
 
гуру
08.08.16
14:22
--password=\Пассворд

тут "\" не нуна
30 arsik
 
гуру
08.08.16
14:27
(0) А разве нельзя все это средствами 1С делать? Через HTTPСоединение?
31 tciban
 
08.08.16
14:29
(29) Yes!!! Это сработало!
32 tciban
 
08.08.16
14:30
(30) возможно наврное и можно. Но так по идее проще.
33 Йохохо
 
08.08.16
14:31
(31) мдя, намек в (10) недостаточно прозрачен) ну хоть поговорили
34 arsik
 
гуру
08.08.16
14:34
(32) А если где то на сервере wget не стоит? Или скрипт потеряете? Ну и лазить по всяким дебрям нужно будет, при изменении логики. В моем же случае все в одном месте и работает как в винде, так и в линуксе.
35 arsik
 
гуру
08.08.16
14:40
Соединение=Новый HTTPСоединение("portal.ural.croc.ru",,"Юзер","Пароль");
    ИмяВременногоФайла=ПолучитьИмяВременногоФайла("tmp");
    Соединение.Получить("/Sale/DocLib/ImyaFaila.txt", ИмяВременногоФайла);
36 tciban
 
08.08.16
14:41
(35) Спасибо за совет, сейчас попробую и так