запуск 1С из командной строки

  1. 9 г. назад

    Хочу запустить 1С из другой 1С чтобы я мог работать в 1С, пока работаю в 1С
    пишу во внешней обработке:

    &НаСервере
    Функция Команда1НаСервере()
    СТрокаКоманды = "C:\Program Files (x86)\1cv8\common\1cestart.exe";
    попытка
    WshShell=Новый COMОбъект("Wscript.Shell");
    	WshShell.Exec(СтрокаКоманды);	
    	ВОзврат "да";
    Исключение
    	ВОзврат "нет";
    	конецПопытки
    КонецФункции
    
    

    Возвращает "да", но 1cestart.exe не запускает, почему?

    Ответы: (4) (33) (34)
  2. на сервере нет рабочего стола.

    Ответы: (2)
  3. (1) мне не нужны окна. мне бы запустить приложение в толстом клиенте, чтобы можно было подсунуть ему обработку в параметры ком строки

  4. А как ты хочешь, что-бы запустилось графическое приложение, без возможности рисовать что-либо на экране? В частности у тебя на сервере никакого экрана нет.

  5. (0) а через WMI почему-бы не запустить?

    Ответы: (5)
  6. +(4) можно еще батик запускать, а в нем уже все прописано будет

  7. батник говоришь..

  8. а какая цель то?

    Ответы: (8)
  9. Бешеная Нога а какая цель то?

    хороший вопрос.

    основная цель - как-то работать с сом-объектом Ворд, заполнить поля шаблона, сохранить на диск и отправить файл по почте.
    все это должно происходить в веб-сервисе, т.е. на сервере.

    пока что у меня не получилось непосредственно на серве создать/получить ком-объект.
    пробую другие варианты.
    сейчас хочу попробовать запустить сеанс командной строкой с подключенной обработкой, где должно быть заполнение шаблона

    Ответы: (9)
  10. Stim хороший вопрос.

    сейчас хочу попробовать запустить сеанс командной строкой с подключенной обработкой, где должно быть заполнение шаблона

    какого шаблона?

    Ответы: (10)
  11. (9) шаблон - документ Word на диске, с добавленными полями, который нужно заполнять

  12. т.е. у тебя не получилось создать ком объект ворда на сервере, ты решил запустить еще одну базу и в ней создать ком объект ворда?

    Ответы: (12)
  13. (11) не еще одну, а ту же.
    создать подключение к этой же базе в толстом клиенте

  14. жесть же...

  15. реши вопрос с подключением ком объекта на сервере и не занимайся ерундой

    Ответы: (16)
  16. пока что у меня не получилось непосредственно на серве создать/получить ком-объект.
    пробую другие варианты.

    Вот это надо исправить и всего лишь..
    Для начала, дать права на ком объект в остнастке службы компонентов

    Ответы: (17)
  17. Бешеная Нога реши вопрос с подключением ком объекта на сервере и не занимайся ерундой

    да? а если это невозможно окажется в итоге?

    Ответы: (17) (18)
  18. (15) для начала, нужно убедиться, что он там есть. К примеру 32 бит 10-й офис не создает сом-ов на 64-битной выни. И без запуска сом объекта не в режиме "текущий пользователь" даже 64-х битный эксель на 64-х битной выне, запускаться не желает. И к локальному диску c:\ без входа пользователя 1С сервера, без дополнительных движений с настройками безопасности, его, сервера, скорее всего, не пустит.
    (16) Засунь шаблон в хранилищезначений и делай с ним шо хошь. Новый ХранилищеЗначения(Новый ДвоичныеДанные(файл));

    Ответы: (20)
  19. Stim да? а если это невозможно окажется в итоге?

    возможно

  20. На вот, памятку кто-то даже слепил
    http://infostart.ru/public/196323/

    Ответы: (23) (24)
  21. Идун Засунь шаблон в хранилищезначений и делай с ним шо хошь. Новый ХранилищеЗначения(Новый ДвоичныеДанные(файл))

    а что я сделаю с двочными данными?
    мне нужно работать с ком-объектом, чтобы заполнять поля

  22. там про эксель, но про ворд всё аналогично.
    Начать со служб компонентов на сервере и права на создание ком-объекта

  23. ну и папочки там насоздавать

  24. (19) пасиб, помучаю

  25. (19) Кстати да, напомнил что это за "что при открытии Excel открывает какое-нибудь окно". Это первый запуск экселя от пользователя, с фамилией и инициалами и двумя кнопками. Ждет.

  26. Жесть, стимка похоже специалист по чесанию за правым ухом левой ногой.

    Ответы: (26)
  27. Аленушка Жесть, стимка похоже специалист по чесанию за правым ухом левой ногой.

    тебе ли ДВ не знать

    Ответы: (28) (29)
  28. лан, вечером попробую с 2003, если админ успеет поставить

  29. (26) Как ты его влет вычислил. Глаз алмаз.

    Ответы: (29)
  30. Скользящий (26) Как ты его влет вычислил. Глаз алмаз.

    дурака видно издалека(с)

    Ответы: (30) (31)
  31. (29) ага, сразу по высказываниям видно :-)
    Он чё, ник сменил, чтобы не палитсо?

    Ответы: (31)
  32. Fedot (29) ага, сразу по высказываниям видно :-)
    Он чё, ник сменил, чтобы не палитсо?

    да, и не один ник.
    любит брать женские ники, ну тыпонел

    Ответы: (32)
  33. (31) ога, ога :-)

  34. Кстате по теме в (0) - повторюсь, почему-бы через WMI не запускать, что что тебе нужно?

    Ответы: (34)
  35. Fedot Кстате по теме в (0) - повторюсь, почему-бы через WMI не запускать, что что тебе нужно?

    это как?

  36. Как-то так:

    Locator=Новый COMОбъект("WbemScripting.SWbemLocator");
    objWMIService=Locator.ConnectServer(".");
    objProcess=objWMIService.Get("Win32_Process");
    strCommand="""C:\Program Files\1cv8\bin\1cv8.exe"" //здесь кароче строка запуска
    intProcessID=0; // это ID процесса, потом можно будет по нему отслеживать его работу и убивать если понадобиться
    Рез=objProcess.Create(strCommand,null,,intProcessID);

    Ответы: (36) (37)
  37. +(35) Это правда я давно делал, еще когда 8.0 тока была.
    Стояла задача из 1С запустить 2-ю и следить, чтобы она не зависла. Ну и отрубать ее когда надо.

    Ответы: (37)
  38. +(36) гасим запущенный процесс в (35)

    ИмяП="1cv8.exe";
    pEnum=objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '"+ИмяП+"'");

    Для Каждого Object Из pEnum Цикл
    Про=Object.Properties_;
    Для Каждого Свойство Из Про Цикл
    Если Свойство.Name="ProcessId" Тогда
    Если Свойство.Value=intProcessID Тогда
    Object.Terminate();
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;

  39. 06.04.2015 17:33:26 отредактировано Fedot

    но есть ньюанс - админские права нужны на серваке :-)

или зарегистрируйтесь чтобы ответить!