Имя: Пароль:
1C
1С v8
как программно определить, запущена ли 1С в режиме польз
0 Adgjj
 
17.11.11
14:29
Скажите, пжл, как программно определить, запущена ли 1С в режиме польз?
1 PR
 
17.11.11
14:30
Нужн получ спис поль и если он пус, то нико не
2 Adgjj
 
17.11.11
14:30
спс
3 PR
 
17.11.11
14:30
акти поль имеетс в ви
4 Adgjj
 
17.11.11
14:31
спс, а метод не помните?
5 Rovan
 
гуру
17.11.11
14:32
(4) мож ИмяПольз()
6 zbv
 
17.11.11
14:32
фот!
7 Adgjj
 
17.11.11
14:32
спасибо ))
8 PR
 
17.11.11
14:32
СП помнит.
Не забудь про всякие консоли, регламентные задания, конфигуратор и прочую хрень.
9 Wobland
 
17.11.11
14:33
(6) она вредная, она не даст
10 apokrit
 
17.11.11
14:33
Почему тут нет кнопки - голосовать за закрытие темы?
11 Adgjj
 
17.11.11
14:33
(8) почему не забывать?
12 PR
 
17.11.11
14:33
(10) Ты только что проголовал
13 Живой Ископаемый
 
17.11.11
14:33
то ес мы во прям из нашег сеанс хоти узна - а выполняетс ли это во самы код, который выполняетс?
14 PR
 
17.11.11
14:34
(11) Потому что сеанс конфигуратора — это не сеанс в режиме 1С:Предприятия. Как и консоль кластера, регламентные задания и т. д.
15 Adgjj
 
17.11.11
14:34
Здравствуйте, Живой Ископаемый!
16 Adgjj
 
17.11.11
14:35
(14) надо только в режиме предприятия
17 Живой Ископаемый
 
17.11.11
14:36
2(16) вам не кажется ли, что если вы программно что-то выполняется, то это уже выполняется в предприятии, и стало быть 1С запущена в режиме пользователя?
18 Adgjj
 
17.11.11
14:38
мне не кажется, точно в режиме пользователя
19 Живой Ископаемый
 
17.11.11
14:39
2(18) ну, так что же еще вы хотите узнать? :)
20 Живой Ископаемый
 
17.11.11
14:40
хотите изобрести настоящий искусственный интеллект - чтобы программа обладала рефлексией и думала над вопросом  "А существую ли я на самом деле? Или просто снюсь бабочке?"
21 Adgjj
 
17.11.11
14:43
да я все обмен мучаю...
22 5 Элемент
 
17.11.11
14:58
   МассивСоединений = ПолучитьСоединенияИнформационнойБазы() ;
   Для Каждого ТекСоединение Из МассивСоединений Цикл
       Если (ТекСоединение.ИмяПриложения = "1CV8")
          И (НЕ ТекСоединение.НомерСоединения = НомерСоединенияИнформационнойБазы())
          И (НЕ ТекСоединение.Пользователь = неопределено) Тогда
             
               ОбщегоНазначения.Сообщение("Внимание! Вы изменили настройки параметров учета!
                        |В настоящий момент в базе работают пользователи.
                        |Некоторые настройки могут не начать действовать для них.
                        |Им необходимо перезапустить программу.
                        |Для Вас новые настройки уже вступили в силу, перезапускать программу не требуется.", СтатусСообщения.Важное);
               Прервать;        
       КонецЕсли;
   КонецЦикла;
23 Adgjj
 
18.11.11
13:03
(22) спасибо, но не помогло для моей задачи

из батника закрываю 1с:  TaskKill /IM 1cv8.exe
закрывает после того, как спрашивает закрывать или нет
а надо, чтоб закрылся без диалогового окна
24 Sangenytch
 
18.11.11
13:08
2 (23) ну не знаю у меня безо всяких закрывает все окна 1с
25 Живой Ископаемый
 
18.11.11
13:10
2(23) это оттого что нужно писать tskill:
tskill 1Cv8* /A
26 Живой Ископаемый
 
18.11.11
13:11
но это сработает только в том случае если у вас все пользователи работают в терминале
27 Живой Ископаемый
 
18.11.11
13:21
но самое смешное что этот код закроет и ваш сеанс тоже... а вам так нужно?
28 Живой Ископаемый
 
18.11.11
13:23
taskkill в этом плане более универсальная - позволит завершить процессы и на удаленных компах, но вам нужно знать имена компов на которых работают ваши пользователи
29 Живой Ископаемый
 
18.11.11
13:24
TaskKill /F /IM 1cv8.exe
30 Adgjj
 
18.11.11
13:31
Здравствуйте, Живой Ископаемый!
Перед обменом нужно, как я понимаю, чтобы пользователей в базе не было. Как раз мое 1сПредприятие (польз "obmen") я и спрашиваю как закрыть (это к (26)).
У нас пользователи не в терминале работают и я тоже, спасибо, учту.
Сейчас попробую сделать, как Вы советуете.
31 Adgjj
 
18.11.11
13:34
tskill 1Cv8* /A    - так ничего не сделалось
32 Adgjj
 
18.11.11
13:35
TaskKill /F /IM 1cv8.exe - закрылось без вопроса, спасибо Вам огромное
33 Stim213
 
18.11.11
13:35
доб.те фотк в лк
34 Adgjj
 
18.11.11
13:39
Другой вопрос:
почему если запускаю такой батник
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
один раз, жду когда выполнится, запускаю второй раз получаю один результат

а при запуске батника (1 раз)
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
другой результат?
35 Живой Ископаемый
 
18.11.11
13:39
наша задача состоит в том, чтобы угадать какой результат в каком случае? призы будут?
36 Adgjj
 
18.11.11
13:53
в случае1 выполняется то, чего хотелось - в периф базу загружается xml-файл (конф и данные)
во 2 случае только код в кону загружается, и даже из конф для обновления 1сПредпр не запускается - остается "!" в конф-ре
37 Живой Ископаемый
 
18.11.11
13:55
что такое "только код"? сообщение одно и тоже или разные?
38 Adgjj
 
18.11.11
13:59
"только код" - это я после выполнения случая2 захожу в конфигуратор и вижу что код заменился на новый и стоит в окне конф-ра "!"; те видимо сработала только первая строка батника,
"только код" - данные не загрузились
39 Adgjj
 
18.11.11
13:59
сообщений нет
40 Adgjj
 
18.11.11
14:00
сейчас вышло сообщения что ошибка в скрипте, используемом в обработке Obmen.epf
41 Живой Ископаемый
 
18.11.11
14:03
что такое код? код чего?
42 Живой Ископаемый
 
18.11.11
14:03
2(40) мучайтесь дальше... никто вас такую без фотки не пожалеет
43 Adgjj
 
18.11.11
14:05
код - это код программы 1С в ее конфигураторе
44 Живой Ископаемый
 
18.11.11
14:06
я это уже объяснял в одной из позапрошлых веток.. с тех пор причина та же
45 Adgjj
 
18.11.11
14:08
я прошу помочь, а не пожалеть
(44) я не поняла, скажите, пжл, еще 1 раз, если не затруднит
46 Живой Ископаемый
 
18.11.11
14:12
если в файле сообщения обмена есть данные и конфигурация, то при запуске обмена РИБ загружаются только изменения конфы, то есть метаданных - данные загружены не будут, потому что потенциально они могут быть уже для измененной конфы... Поэтому после первого обмена нужно зайти в конфигуратор и принять эти изменения. и после этого запустить в режиме предприятия обмен второй раз - ну просто представьте что вы выполняете этот обмен вручную.. и во второй раз уже загрузятся данные.

2(45) нет, не просите вы помочь.. вы сообщаете ничего не значащие замечания о работе какого-то припадочного скрипта.
47 Adgjj
 
18.11.11
14:13
припадочного скрипта))
48 Живой Ископаемый
 
18.11.11
14:17
Кстати, в (30) - предположение "Перед обменом нужно, как я понимаю, чтобы пользователей в базе не было" - абсолютно ложное... могут быть. Пользователей быть не должно только в том случае, если пришли изменения конфы, при чем такие, которые меняют структуру. Если же просто поменялся код модуля - то пусть будут, ничего страшного нет
49 Adgjj
 
18.11.11
14:18
я уже весь код опубликовала в одной из прошлых веток:
Процедура ОбновитьКонфигурацию() Экспорт
       МассивСоединений=ПолучитьСоединенияИнформационнойБазы();
       Если МассивСоединений.Количество()>1 Тогда
           Возврат;  // ждем дальше...    

       КонецЕсли;
       СтрокаСоединения=СтрокаСоединенияИнформационнойБазы();
       ПутьКСкрипту=КаталогВременныхФайлов()+"obmen.vbs";  
       Скрипт=Новый ЗаписьТекста(ПутьКСкрипту,КодировкаТекста.ANSI);
       Скрипт.ЗаписатьСтроку("WScript.Sleep 5000"); // на всякий случай

       
       Скрипт.ЗаписатьСтроку("Set WshShell=CreateObject(""WScript.Shell"")");                                                                                                                                
       Команда=""""""+КаталогПрограммы()+"1CV8.EXE"""" CONFIG"+?(НСтр(СтрокаСоединения,"File")<>""," /F "+НСтр(СтрокаСоединения,"File")," /S "+НСтр(СтрокаСоединения,"Srvr")+"\"+НСтр(СтрокаСоединения,"Ref"))+" /N Obmen /P Obmen /UpdateDBCfg";
       Скрипт.ЗаписатьСтроку("ReturnCode=WshShell.Run("""+Команда+""",1,1)"); //открыть конфигуратор

       
       Скрипт.ЗаписатьСтроку("If ReturnCode=0 Then"); // если обновились удачно, то пытаемся дочитать сообщение  

           Скрипт.ЗаписатьСтроку("WshShell.Run """+Команда+""",1,0");
           //Скрипт.ЗаписатьСтроку("WshShell.Run """+Команда+""",1,1");

           //Скрипт.ЗаписатьСтроку("WScript.Sleep 5000");

           //WshShell.Run(cmd, [windowStyle], [waitOnReturn])

           //Параметр waitOnReturn представляет собой булево значение, которое указывает должен ли сценарий ждать перед выполнением следующий команды.

       Скрипт.ЗаписатьСтроку("End If");
       
       Скрипт.ЗаписатьСтроку("Set FSO=CreateObject(""Scripting.FileSystemObject"")");
       Скрипт.ЗаписатьСтроку("Set File=FSO.GetFile(WScript.ScriptFullName)");
       Скрипт.ЗаписатьСтроку("File.Delete");  //скрипт сам себя удаляет

       Скрипт.Закрыть();
               
       ЗапуститьПриложение(ПутьКСкрипту); //запустить скрипт, записанный выше

       //ЗапуститьПриложение(ПутьКСкрипту,,Истина); //скрипт открывает предпр (подождите)

               сообщить("1сПредприятие запустилось");
       ЗавершитьРаботуСистемы(Ложь);        
   КонецПроцедуры
50 Adgjj
 
18.11.11
14:19
это не весь код ошибочка
51 Живой Ископаемый
 
18.11.11
14:19
2(49) да что вы говорите... вы серьезно думаете что кто-то будет следить за последней версией отлаживаемого вами кода? всем плевать на него.
52 Adgjj
 
18.11.11
14:20
(51) я не сомневалась никогда в этом))
53 Adgjj
 
18.11.11
14:21
(48) спасибо, не знала
54 Живой Ископаемый
 
18.11.11
14:21
(52)но ведете себя так, как будто предполагаете что все в курсе на какой именно строчке у вас сейчас ошибка.. у вас шаблончик не рвется от такой разницы в отношении и поведении?
55 Adgjj
 
18.11.11
14:58
(46) спасибо, я это еще в Ваше предыд. объяснение поняла
не ясно следующее:
если в батнике одна строка и батник запускаю дважды то 1 результат
если в батнике таже самая строка 2 раза написана и батник запускаю 1раз - другой результат
56 Adgjj
 
18.11.11
14:59
(55) по-моему результат в обиох случаях должен быть один
57 Живой Ископаемый
 
18.11.11
15:01
2(55) у вас вторая строка батника дожидается окончания выполнения приложения запущенного первой строкой?
58 Adgjj
 
18.11.11
15:06
видимо нет, т.е. нужно в батнике как-то определять, что первая строка закончила свою работу?

если в батнике написано
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
TaskKill /F /IM 1cv8.exe
и этот батник запускаю дважды все работает как надо, и без ожидания почему-то
59 Живой Ископаемый
 
18.11.11
15:07
2(58) ну так а чего вы придуриваетесь что не видите разницы?

читайте до посинения:


Запуск указанной программы или команды в отдельном окне.

START ["заголовок"] [/Dпуть] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
     [/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL]
     [/WAIT] [/B]
     [команда/программа] [параметры]

   "заголовок" Заголовок окна.
   путь        Рабочий каталог.
   B           Запуск приложения без создания нового окна с отключением
               обработки сочетания клавиш ^C. Если приложение не
               обрабатывает сочетание клавиш ^C самостоятельно,
               единственным способом его прерывания является
               использование сочетания клавиш ^Break.
   I           Новой средой станет исходная среда, переданная
               cmd.exe, а не текущая среда.
   MIN         Запуск команды/программы в свернутом окне.
   MAX         Запуск команды/программы в развернутом окне.
   SEPARATE    Запуск 16-разрядной программы Windows в отдельной
               области памяти.
   SHARED      Запуск 16-разрядной программы Windows в общей
               области памяти.
   LOW         Запуск приложения с приоритетом IDLE.
   NORMAL      Запуск приложения с приоритетом NORMAL.
   HIGH        Запуск приложения с приоритетом HIGH.
   REALTIME    Запуск приложения с приоритетом REALTIME.
   WAIT        Запуск приложения с ожиданием его завершения.
   ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL
   BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
   команда/программа
               Если это внутренняя команда cmd.exe или пакетный файл,
               обработчик команд (cmd.exe) запускается с ключом /K.
               Это означает, что окно не будет закрыто после завершения
               команды.

               Если это не внутренняя команда cmd.exe и не пакетный файл,
               значит, это программа, которая будет запущена в графическом
               или текстовом окне.

   параметры   Параметры, передаваемые команде/программе.


Изменения вызова внешних команд из командной строки или с помощью команды
START при включении расширенной обработки команд:

Для вызова неисполняемых файлов через механизм сопоставления типов файлов
   достаточно просто ввести имя файла в командной строке.  Например, команда
   WORD.DOC запускает приложение, сопоставленное расширению имени файла .DOC.
   Сведения о создании подобных сопоставлений из пакетных файлов приведены
   в описаниях команд ASSOC и FTYPE.

При запуске 32-разрядного приложения с графическим интерфейсом пользователя
   обработчик команд CMD.EXE не ожидает завершения работы приложения перед
   возвратом к приглашению командной строки.  Подобное новое поведение НЕ
   относится к запуску приложений из пакетных файлов.

При выполнении командной строки, первым элементом которой является текстовая
   строка "CMD" без расширения имени файла или указания пути, она заменяется
   значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из
   текущей активной папки, если таковая программа там имеется.

Если первый элемент командной строки не содержит расширения имени файла,
   обработчик команд CMD.EXE использует значение переменной среды PATHEXT,
   чтобы определить расширения имен исполняемых файлов и порядок поиска
   нужного файла.  По умолчанию для переменной PATHEXT задается
   значение:

       .COM;.EXE;.BAT;.CMD

   Обратите внимание, что этот синтаксис подобен синтаксису для переменной
   PATH, то есть отдельные элементы разделяются точкой с запятой.

Если при поиске исполняемого файла нет соответствия ни одному из расширений,
выполняется проверка соответствия указанного имени папки. Если имя папки
соответствует указанному, то команда START запускает EXPLORER для этого
пути. Если такое действие выполняется из командной строки, то оно
эквивалентно выполнению команды CD /D для указанного пути.
60 Живой Ископаемый
 
18.11.11
15:07
про ключ /WAIT
61 Живой Ископаемый
 
18.11.11
15:10
2(58) "и этот батник запускаю дважды все работает как надо, и без ожидания почему-то" - то есть вы не дожидаетесь самостоятельно окончания работы батника первый раз, второй раз сразу же запускаете? или все же дожидаетесь?
62 Adgjj
 
18.11.11
15:18
(61) ВЫ ПРАВЫ ДОЖИДАЮСЬ СПАСИБО
/WAIT Я КОГДА-ТО ПРОБОВАЛА СЕЙЧАС ЕЩЕ ПОПРОБУЮ ПОСТАВИТЬ ЕГО К 1ВОЙ СТРОКЕ
63 Живой Ископаемый
 
18.11.11
15:18
фу такой громкой и крашеной быть
64 Adgjj
 
18.11.11
15:20
Я ТИХО ГОВОРЮ И НЕ КРАШУСЬ)) просто капс лок нажат был
65 Живой Ископаемый
 
18.11.11
15:20
это и означает быть громкой и крашеной блондинкой на форуме.
66 Adgjj
 
18.11.11
15:26
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/WAIT/Execute Obmen.epf
"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
TaskKill /F /IM 1cv8.exe

в моих руках не сработала наверно WAIT не там указала
67 Живой Ископаемый
 
18.11.11
15:27
ой как интересно... и в каком же месте первой строки мы видим команду start?
68 Живой Ископаемый
 
18.11.11
15:29
кстати и во второй строке также надо и start и /wait иначе третья ваша команда сразу зарубит 1Сv8.exe только что запущенный второй командой...
69 Adgjj
 
18.11.11
15:29
START "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/WAIT/Execute Obmen.epf
написал не удалось найти ENTERPRISE
70 Живой Ископаемый
 
18.11.11
15:31
2(69) я даже уже и не знаю какими словами мне еще выразить - что всем на это плевать... и никто вас не пожалеет за то что вы не смогли вчитаться в вывод команды START /? и попробовать по разному кавычки и т.д. и т.п.
71 Живой Ископаемый
 
18.11.11
15:34
обращайте внимание на примеры которые можно найти в сети:
http://www.msfn.org/board/topic/47461-does-start-wait-work/

start /wait c:\blah.cmd
start /wait "this is my title" c:\blah.cmd
start /wait "title title" "c:\blah.cmd"
start /wait "" c:\blah.cmd
72 Живой Ископаемый
 
18.11.11
15:35
но мне кажется все равно у вас ничего не выйдет.. вы с кавычками не дружите.
73 Adgjj
 
18.11.11
15:35
спасибо)), а в прошлый раз у меня с кавычками получилось
74 Живой Ископаемый
 
18.11.11
15:37
но ДО прошлого раза было еще 10 раз когда не получилось.. сейчас также будет...
Но.. попытайтесь меня удивить
75 Adgjj
 
18.11.11
15:39
рада стараться
76 Adgjj
 
18.11.11
15:51
start /wait "" /DisableStartupMessages/WAIT/Execute Obmen.epf" C:\Program Files\1cv81\bin\1cv8.exe ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen

"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
первая строка выполняется а вторая нет
77 Adgjj
 
18.11.11
15:51
кавычка лишняя
78 Adgjj
 
18.11.11
15:52
вообще не то я этого не писала
79 Живой Ископаемый
 
18.11.11
15:53
о боги...
80 Snorkler
 
18.11.11
16:00
(79) И ведь хоть бы маленькую моральную компенсацию в виде фото…
Не судьба-с…   :0)
81 Живой Ископаемый
 
18.11.11
16:01
Напишите в батнике такое:

Dear computer Santa! I want you to acomplish my wish, but, I'm not able to express it properly. So, let's come to an agreement - i just put some words, and you feel free to combine them in a way, whichever you want.
Ok, here these words:

start
wait
DisableStartupMessages
WAIT
Execute
Obmen.epf
"C:\Program Files\1cv81\bin\1cv8.exe"
ENTERPRISE
/F C:\UAT8_les_KOT
/N obmen
/P obmen

And don't forget - I want you to accomplish my wish twice, deal?
82 Живой Ископаемый
 
18.11.11
16:01
толку будет больше
83 Adgjj
 
18.11.11
16:04
start /wait "" "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf

"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf

TaskKill /F /IM 1cv8.exe
84 Живой Ископаемый
 
18.11.11
16:08
у меня ограничение на 60 сообщений в день.. я уже написал 55.
85 Adgjj
 
20.11.11
10:12
start /wait "1C" "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf  - все равно не ждет

"C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"C:\UAT8_les_KOT" /N"obmen" /P"obmen" /DisableStartupMessages/Execute Obmen.epf
TaskKill /F /IM 1cv8.exe
86 Adgjj
 
20.11.11
10:17
87 Adgjj
 
20.11.11
10:22
start "Запускаем 1C..." /d "C:\Program Files\1cv81\bin" /wait "1cv8.exe Enterprise /F C:\UAT8_les_KOT /N obmen /P obmen /Execute Obmen.epf /DisableStartupMessages"
Рез-т: не удалось найти 1cv8.exe Enterprise /F C:\UAT8_les_KOT /N obmen /P obmen /Execute Obmen.epf /DisableStartupMessages
видимо с внешней обработкой не так пишется
88 Adgjj
 
20.11.11
10:35
а зачем в v8: Запуск 8.2 из командной строки в (6) значок Enterprise
89 Adgjj
 
20.11.11
10:35
это пробел так отобразился?
90 Adgjj
 
20.11.11
10:49
start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf

start "" "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf
rem "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf

TaskKill /F /IM 1cv8.exe

выполнеяет только 1-ю строку батника
91 Живой Ископаемый
 
20.11.11
12:04
у второй строки тоже должен быть вэйт.. иначе процесс ею запущенный сразуже убивается тертьей...
92 Живой Ископаемый
 
20.11.11
12:04
как и было написано в (68)
93 Живой Ископаемый
 
20.11.11
12:06
вообще зачем вам третья строка?
94 Adgjj
 
20.11.11
13:10
у меня с 12-13 всегда интернета нет, спасибо, сейчас попробую
95 Adgjj
 
20.11.11
13:11
(68) я тогда не прочитала
96 Adgjj
 
20.11.11
13:21
Вот такой батник из 2-ходинаковых строк:
start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf
start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf
строка1 выполняется, но 1с закрываю вручную - сама не закрывается. Видимо, "WAIT Запуск приложения с ожиданием его завершения." означает что следующая строка батника будет выполняться после завершения работы приложения, открытого предыд. строкой.
После выполнения строки2 тоже 1с надо закрывать вручную, причем данные не перенеслись (в окне конфигуратора знак "!")
97 ДенисЧ
 
20.11.11
13:27
"Видимо, "WAIT Запуск приложения с ожиданием его завершения." означает что следующая строка батника будет выполняться после завершения работы приложения, открытого предыд. строкой."

Да Вы гений... Точнее, @Гений1С !
98 Adgjj
 
20.11.11
13:30
ну потому что когда я вручную закрываю 1с, начинает выполняться дальше батник
99 ДенисЧ
 
20.11.11
13:32
то есть почитать хелп по start'у вам не позволяет женская гордость... female shovinist piggy!
100 Adgjj
 
20.11.11
13:33
до посинения читала (59)
101 ДенисЧ
 
20.11.11
13:35
"WAIT        Запуск приложения с ожиданием его завершения."

Что это значит? Правильно, приложение само должно завершиться. А что для этого нужно?
102 Adgjj
 
20.11.11
13:37
0_0
103 Adgjj
 
20.11.11
13:38
TaskKill /F /IM 1cv8.exe перестало помогать после использования start
104 Adgjj
 
20.11.11
13:40
Может ABOVENORMAL  использовать...
105 Adgjj
 
20.11.11
13:41
т.е. не это а ключ K
106 Adgjj
 
20.11.11
13:42
почему же она сама не закрывается?
107 Adgjj
 
20.11.11
13:55
exit тоже не помог
108 ДенисЧ
 
20.11.11
13:57
А кто ей сказал, что нужно закрываться? ЗавершитьРаботуСистемы() есть в обработке?
109 Adgjj
 
20.11.11
14:05
1. раскомментировала, теперь вручную ничего не нужно закрывать, спасибо огромное

2. данные не обновляются (при открытии периф. базы, куда xml-файл загружался этими двумя строчками пишет: конф-я базы данных не соответствует сохраненной конфигурации)
110 Adgjj
 
20.11.11
14:11
потому что при выполнении строки предприятие один раз открылось, внешняя обработка стала загружать xml-файл обмена и тут ее прикрыли...
111 Adgjj
 
20.11.11
14:13
пришли к началу: не ждет, пока полностью выполнится первая строка
112 Adgjj
 
20.11.11
14:19
наверно только паузой в батнике ждать
113 Живой Ископаемый
 
20.11.11
14:42
опухоль не операбельна
114 Dethmont
 
20.11.11
14:44
(113) =)
115 ДенисЧ
 
20.11.11
14:45
(113) это не опухоль... Это мозг такой...
116 Живой Ископаемый
 
20.11.11
14:46
чорд... мы резали мозг... мы ее потреяем.
117 Adgjj
 
20.11.11
16:28
да, я не понимаю: предприятие запустилось первой строкой батника, скрипт выдал, что конф тоже запустился (правда я этого не видела)
Процедура ОбновитьКонфигурацию() Экспорт
       МассивСоединений=ПолучитьСоединенияИнформационнойБазы();
       Если МассивСоединений.Количество()>1 Тогда  
           Возврат;  // ждем дальше...      
       КонецЕсли;
                       
       СтрокаСоединения=СтрокаСоединенияИнформационнойБазы(); //Пример результата метода: File="C:\1cv8\Base".
       ПутьКСкрипту=КаталогВременныхФайлов()+"obmen.vbs";  
       Скрипт=Новый ЗаписьТекста(ПутьКСкрипту,КодировкаТекста.ANSI);
       Скрипт.ЗаписатьСтроку("WScript.Sleep 5000"); // на всякий случай          
               
       Скрипт.ЗаписатьСтроку("Set WshShell=CreateObject(""WScript.Shell"")");                                                                                                                                
       Команда=""""""+КаталогПрограммы()+"1CV8.EXE"""" CONFIG"+?(НСтр(СтрокаСоединения,"File")<>""," /F "+НСтр(СтрокаСоединения,"File")," /S "+НСтр(СтрокаСоединения,"Srvr")+"\"+НСтр(СтрокаСоединения,"Ref"))+" /N Obmen /P Obmen /UpdateDBCfg";
       Скрипт.ЗаписатьСтроку("ReturnCode=WshShell.Run("""+Команда+""",1,1)"); //открыть конфигуратор
       Скрипт.ЗаписатьСтроку("WScript.Echo(""открыт конфигуратор"")"); //ПОЯВИЛОСЬ

       
       Скрипт.ЗаписатьСтроку("If ReturnCode=0 Then"); // если обновились удачно, то пытаемся дочитать сообщение  
           Команда=""""""+КаталогПрограммы()+"1CV8.EXE"""" ENTERPRISE"+?(НСтр(СтрокаСоединения,"File")<>""," /F "+НСтр(СтрокаСоединения,"File")," /S "+НСтр(СтрокаСоединения,"Srvr")+"\"+НСтр(СтрокаСоединения,"Ref"))+" /N Obmen /P Obmen";
           Скрипт.ЗаписатьСтроку("WshShell.Run """+Команда+""",1,0");
           Скрипт.ЗаписатьСтроку("WScript.Echo(""открыт ENTERPRISE"")");  //НЕ ПОЯВИЛОСЬ
        Скрипт.ЗаписатьСтроку("End If");
       
       Скрипт.ЗаписатьСтроку("Set FSO=CreateObject(""Scripting.FileSystemObject"")");
       Скрипт.ЗаписатьСтроку("Set File=FSO.GetFile(WScript.ScriptFullName)");
       Скрипт.ЗаписатьСтроку("File.Delete");  
       Скрипт.Закрыть();
               
       ЗапуститьПриложение(ПутьКСкрипту);
       
       //    ЗавершитьРаботуСистемы(Ложь); //Ложь - не выдавать сообщение "Закрыть программу?"
       
   КонецПроцедуры
118 Adgjj
 
20.11.11
18:40
как без паузы, если
при запуске батника
start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf
2 раза с небольшим промежутком (пока курсор промелькается) все загружается

а при запуске батника
start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf
данные не перенеслись из файла обмена?
119 Adgjj
 
20.11.11
19:28
с паузой получилось с батником:
@set @x=0 /*
@echo off

start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf

cscript //nologo /e:jscript "%~f0" 200000

start "" /wait "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F C:\UAT8_les_KOT /N obmen /P obmen /DisableStartupMessages/Execute Obmen.epf

goto:eof */ if(isFinite(WScript.Arguments(0))) WScript.Sleep(WScript.Arguments(0))

Паузу взяла отсюда: http://forum.ru-board.com/topic.cgi?forum=62&topic=11825&start=1300#6