|
Запуск Java-скрипт из 1С | ☑ | ||
---|---|---|---|---|
0
olgerd666
21.07.14
✎
15:37
|
День добрый!
Подскажите люди добрые, что делаю не так? Есть файлик Ява-скрипта, формирующийся из 1С и отправляющий смски через гейт. Если сформировать файлик из 1С и запустить его самому-вручную, то файл выполнится, смс отправится абоненту. Но если сделать запуск скрипта из 1С: КаталогПриложение = "C:\UT\SMS\JScript\batch.js" //формируется программно ЗапуститьПриложение(КаталогПриложение, , Ложь); То смс не отправится, файл сделает вид что исполнился. Вопрос: Какие либо ключи необходимо указать чтобы запустить Ява-скрипт? или есть какое-то хитрое решение, либо кто сталкивался с подобным. |
|||
1
olgerd666
21.07.14
✎
15:42
|
Текст Ява-Скрипта:
var LogFile; var WSHShell = WScript.CreateObject("WScript.Shell"); var fso = new ActiveXObject("Scripting.FileSystemObject"); var fname = "C:\\UT\\SMS\\Files\\"; Main(); function Main() { var f = fso.GetFolder(fname); var fc = new Enumerator(f.Files); LogOpen(fname + "\\log1.txt"); for (; !fc.atEnd(); fc.moveNext()) { var f1 = fc.item(); if(f1.Path.indexOf(".snpp") > 0) { var file = fso.OpenTextFile(f1.Path, 1, false); var str = file.ReadAll(); file.Close(); LogWrite(str); WSHShell.Run(str,0,true); LogWrite("Execute command from file: " + f1.name + " (" + f1.DateLastModified + ")"); fso.DeleteFile(f1.Path); //WSHShell.Popup(str); } } LogClose(); } function LogWrite(Text) { var today = new Date(); // Get today's date. //LogFile.WriteLine("[" + today.toLocaleString() + "] " + Text); LogFile.WriteLine(Text); } function LogClose() { LogFile.Close(); var Logfile = ""; } function LogOpen(LogPath) { LogFile = fso.OpenTextFile(LogPath, 8, true); } |
|||
2
Garykom
гуру
21.07.14
✎
15:43
|
(0)
КомандаСистемы (System) Синтаксис: КомандаСистемы(<СтрокаКоманды>, <ТекущийКаталог>) Параметры: <СтрокаКоманды> (обязательный) Тип: Строка. Команда системы. <ТекущийКаталог> (необязательный) Тип: Строка. Устанавливает текущий каталог на время выполнения команды. Описание: Вызывает на исполнение команду операционной системы, как если бы она была введена в командной строке. Доступность: Тонкий клиент, толстый клиент. Примечание: После загрузки Windows-приложения управление возвращается в 1С:Предприятие и исполнение модуля продолжается. |
|||
3
Garykom
гуру
21.07.14
✎
15:44
|
А вообще переходи с дурацких гейтов на нормальные сайты типа smspilot.ru и подобные
|
|||
4
Asmody
21.07.14
✎
15:48
|
КомандаСистемы("cscript "+КаталогПриложение);
|
|||
5
olgerd666
21.07.14
✎
15:55
|
(2)(4) Пробовал, не помогло(
вызывает cmd, запускает JS, файлы смс чистятся, но не отправляются. (3) Настраивал данное дело не я - суть задания: "Есть файлик, он до этого был привязан к конкретному жесткому диску типа "С:\...\exec.js", запускался по регламентному заданию, теперь все с сервера переходят на РИБ, и мало ли у кого где-эта папка будет лежать, надо чтобы по нажатию кнопки отправлялась смс (а не по запланированному заданию)" Поэтому я сделал чтобы файл JS формировался из 1С, из 1С создавалось тело письма а вот с запуском возникли проблемы. Отдельно "созданный программно JS" смски отправляет через snpp.exe, потом удаляет. Запущенный из 1С смски удаляет, но не отправляет. |
|||
6
Garykom
гуру
21.07.14
✎
16:15
|
(5) грохни этот скрипт и выполняй запуск этого "snpp.exe" из 1С-ки
|
|||
7
Garykom
гуру
21.07.14
✎
16:16
|
+(6)
скрипт у вас был потому что было задание в шедулере а раз из 1С запускаешь то и запускай все оттуда... |
|||
8
Garykom
гуру
21.07.14
✎
16:18
|
(1) еще пример лога приведи в который скрипт скидывает команды
скорее всего проблема в путях при вызове snpp.exe там |
|||
9
olgerd666
21.07.14
✎
16:25
|
(6) Ок. попробую.
Лог выполненного из 1С скрипта: C:\UT\SMS\snpp.exe +ххххххххх хх-.хххх.ххх." Execute command from file: ххххххххх -04.snpp (Mon Jul 21 15:22:29 UTC+0400 2014) |
|||
10
olgerd666
21.07.14
✎
18:20
|
(6) Все получилось, спасибо за подсказку решения)
Теперь кода 1 строка) КомандаСистемы("C:\UT\snpp.exe +xxxxxxxxxxx SMS"); |
|||
11
Garykom
гуру
21.07.14
✎
18:27
|
(10) А кавычки в "SMS" учел?
Т.е. в тексте смс не должно быть кавычек или сглючит, лучше всего заменить их (" двойные кавычки) на одинарные (') или на пусто. А еще лучше нормально работать с СМС шлюзом напрямую по его API (http или что там), а не через костыль в виде консольной проги )) |
|||
12
olgerd666
21.07.14
✎
18:37
|
да это просто пример) в тексте СМС кавычек нет.
Возьму на заметку про "А еще лучше нормально работать с СМС шлюзом напрямую по его API (http или что там), а не через костыль в виде консольной проги ))" |
|||
13
AquaKosh
21.07.14
✎
18:54
|
Особо не вникал, вариант так, на вскидку: есть программы, которые умеют компилить скрипты и, в частности, javascript в exe. Т.е. скомпилить в exe и запускать.
|
|||
14
olgerd666
22.07.14
✎
10:47
|
(13) Спасибо за вариант уже думал об этом - вариант не подходит, но вопрос уже решился методом (6) - избавиться от скрипта и обращаться напрямую к "snpp".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |