Имя: Пароль:
1C
1С v8
В созданном батнике из 1с выполняется только первая строка.
0 davlen86
 
31.05.17
16:15
Люди пожалуйста помогите.Уже с ума схожу))). В коде 1с создается батник и потом из кода же запускается. При этом выполняется только первая строчка батника. Если этот же батник запустить вручную то обрабатывает все как положено. В чем может быть причина?
1 Lexey_
 
31.05.17
16:15
(0) в коде
2 dezss
 
31.05.17
16:15
(0) сколько всего строк а батнике?
3 dezss
 
31.05.17
16:16
после последней строки советую добавить еще один Символы.ПС
4 SSSSS_AAAAA
 
31.05.17
16:17
(0) Первая, навскидку - у 1с есть права только то, что есть в первой строке и нет прав на то, что в остальных.
5 davlen86
 
31.05.17
16:17
montage C:\Test\2.jpg C:\Test\3.jpg -geometry 400x300 C:\Test\23.jpg
convert C:\Test\1.jpg -resize 1024x768 C:\Test\11.jpg
convert C:\Test\23.jpg -resize 1024x768 C:\Test\23.jpg
convert -append C:\Test\11.jpg C:\Test\23.jpg C:\Test\23.jpg
6 SSSSS_AAAAA
 
31.05.17
16:18
Кстати, содержимое батника жутко секретное и его нам надо угадать?
7 davlen86
 
31.05.17
16:18
(5) это батник
8 davlen86
 
31.05.17
16:19
Функция ЗаписатьИВыполнитьБатник(КоманднаяСтрока, ПутьКБатнику)
    
    Текст = Новый ТекстовыйДокумент;
    Текст.УстановитьТекст(КоманднаяСтрока);
    Текст.Записать(ПутьКБатнику, "cp866");
    
    Попытка
        Объект = Новый COMОбъект("wscript.shell");
        Объект.Run(ПутьКБатнику,0,Истина);
        Возврат Истина;
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
КонецФункции


в командной строке текст (5)
9 Fish
 
31.05.17
16:22
(8) А в записанном батнике точно все строки?
10 davlen86
 
31.05.17
16:23
(9), да я же его потом и запускаю вручную.
11 davlen86
 
31.05.17
16:23
кстати выполняется все на стороне сервера 1с
12 AlvlSpb
 
31.05.17
16:27
(8) Поставь знак переноса строки (как в тексте запроса).
13 davlen86
 
31.05.17
16:28
(12) спасибо попробую
14 mehfk
 
31.05.17
16:31
сделай так
echo Первая команда >> C:\Test\log.txt
montage C:\Test\2.jpg C:\Test\3.jpg -geometry 400x300 C:\Test\23.jpg >> C:\Test\log.txt
echo Вторая команда >> C:\Test\log.txt
convert C:\Test\1.jpg -resize 1024x768 C:\Test\11.jpg >> C:\Test\log.txt
echo Третья команда >> C:\Test\log.txt
convert C:\Test\23.jpg -resize 1024x768 C:\Test\23.jpg >> C:\Test\log.txt
echo Четвертая команда >> C:\Test\log.txt
convert -append C:\Test\11.jpg C:\Test\23.jpg C:\Test\23.jpg >> C:\Test\log.txt

и посмотри что будет в файле C:\Test\log.txt
15 uno-group
 
31.05.17
16:31
convert /? конвертирует диск в нтфс
16 davlen86
 
31.05.17
16:35
(12) не работает,
(14) спасибо, сейчас попробую.
(15) нет это команда ImageMagik
17 SSSSS_AAAAA
 
31.05.17
16:36
(5) Дополние свои montage и convert полными к ним путями.
18 arsik
 
гуру
31.05.17
16:36
(8) Шлак какой то. А не проще сразу через wscript все запускать? НАхера батник то?
19 Fish
 
31.05.17
16:36
(16) И команда винды:
"Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Windows\System32>convert /?
Преобразование файловой системы тома из FAT в NTFS.

CONVERT том: /FS:NTFS [/V] [/CvtArea:имя_файла] [/NoSecurity] [/X]

  том         Определяет букву диска (с последующим двоеточием),
              точку подключения или имя тома.
  /FS:NTFS    Задает преобразование файловой системы в NTFS.
  /V          Вывод подробных сообщений при выполнении преобразования.
  /CvtArea:имя_файла
              Указывает непрерывный файл в корневой папке для резервирования
              места для системных файлов NTFS.
  /NoSecurity К преобразуемым файлам и папкам будет разрешен доступ для
              всех пользователей.
  /X          Принудительное отключение этого тома (если он был подключен).
              Все открытые дескрипторы этого тома станут недействительными."


Похоже, дело именно в этом.
20 Garykom
 
гуру
31.05.17
16:37
(18) ну некто даже не в курсе про полный пути и если в мануале написано прописать в path то...
21 SSSSS_AAAAA
 
31.05.17
16:38
(16) " нет это команда ImageMagik" которая совпадает по имени с другой командой. Потому или пиши пути, или предщварительно заходи к в нужный каталог, дабы не было неоднозначности что таки вызывать
22 davlen86
 
31.05.17
16:38
(19) если вручную запускать то все же работает
23 SSSSS_AAAAA
 
31.05.17
16:39
(22) Вручную ты запускаешь из того же каталога, что и 1с и с  теми же правами?
24 arsik
 
гуру
31.05.17
16:39
(20) :)) ага (22)
25 davlen86
 
31.05.17
16:40
(23) абсолютно, прописано в переменные среды path
26 SSSSS_AAAAA
 
31.05.17
16:43
(25) Что абсолютно? Ну и что? Ты совсем не понимаешь что тьакое полные пути и зачем их иногда надо писать? Ты как определил какой каталог является текущим при запуске твое батника из 1с?
27 davlen86
 
31.05.17
16:44
(23) стоп, права не те же
28 SSSSS_AAAAA
 
31.05.17
16:46
Насколько я помню, все автоматизаторы запускают то, что их просят запустить из %systemdir%, то бишь c:\windows\system32
29 SSSSS_AAAAA
 
31.05.17
16:48
Как думаешь, дойдет ли дело до set path, если в нем сразу же найдется convert? При чем совершенно не от ImageMagic?
30 davlen86
 
31.05.17
16:52
(29) понятно.
А как тогда писать правильно команду
C:\Program Files\ImageMagick-7.0.5-Q16\convert ?
31 Fish
 
31.05.17
16:56
(30) Только в кавычках.
32 Garykom
 
гуру
31.05.17
16:57
(31) ну вот нафуя?
33 arsik
 
гуру
31.05.17
16:57
Объект.Run(WshShell.Run """C:\Program Files\ImageMagick-7.0.5-Q16\convert.exe"" -geometry 400x300 C:\Test\23.jpg""",0,Истина);
34 Garykom
 
гуру
31.05.17
16:57
(32)+ всю развлекуху испортил ((
35 arsik
 
гуру
31.05.17
16:57
Тьху ты копипаста
Объект.Run("""C:\Program Files\ImageMagick-7.0.5-Q16\convert.exe"" -geometry 400x300 C:\Test\23.jpg""",0,Истина);
36 Garykom
 
гуру
31.05.17
16:58
(33) (35) эээ сча будет веселуха с "кавычка hell" ))
37 arsik
 
гуру
31.05.17
16:59
Опять мимо :)
Объект.Run("""C:\Program Files\ImageMagick-7.0.5-Q16\convert.exe"" -geometry 400x300 C:\Test\23.jpg",0,Истина);
38 davlen86
 
31.05.17
17:08
(37) спасибо
39 SSSSS_AAAAA
 
31.05.17
17:09
(37) Извращенцы...
достаточно в его батник первой строкой добавить
cd "C:\Program Files\ImageMagick-7.0.5-Q16"
и все остальное оставить как есть.
40 Вафель
 
31.05.17
17:12
каталог не указан, а пути относительные для программ
41 arsik
 
гуру
31.05.17
17:13
(39) По уму вообще использовать COM, а не командную строку. Тем более ImageMagick это позволяет
42 SSSSS_AAAAA
 
31.05.17
17:15
(41) А вот с этим соглашусь полностью. :)
43 Garykom
 
гуру
31.05.17
17:18
(41) (42) при переноса сервера 1С на линукс кого то проклянут...
44 davlen86
 
31.05.17
17:19
(42) подскажите это как?
45 arsik
 
гуру
31.05.17
17:23
(44) Делай уже как делал. Тут (Garykom) против.
46 ILM
 
гуру
31.05.17
18:44
Голосую за
Converter=Новый COMObject("ImageMagick.Application");
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn