|   |   | 
| 
 | Не работает второй процесс 1с 7.7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        Shaman100M 21.12.11✎ 17:32 | 
        Добрый вечер! 
  Бьемся с системным администратором над проблемой где-то неделю. Может, кто-то ранее уже сталкивался... ОС Windows Server2008R2 + Remote Desktops 1С 7.70.0.27 SQL В глобальнике Процедура ПриНачалеРаботыСистемы() Если ИмяПользователя() = "test1" Тогда ОткрытьФорму("Отчет.Test1vn"); ЗавершитьРаботуСистемы(); ИначеЕсли ИмяПользователя() = "test2" Тогда ОткрытьФорму("Отчет.Test2vn"); ЗавершитьРаботуСистемы(); КонецЕсли; КонецПроцедуры В модуле отчета: Процедура ПриОткрытии() // служебный код СтатусВозврата(0); КонецПроцедуры В планировщике создаем задачу, которая выполняется под администратором домена+Выполнить с наивысшими правами. Задача запускает скрипт, который запускает 1С сначала с авторизацией test1, затем второй, - с test2. Задача под test1 работает, задача под test2 запускается и через несколько секунд завершается. Глобальный модуль во втором сеансе не отрабатывает вообще. Есть предположение, что что-то связано с расположением временных файлов. Заранее спасибо. | |||
| 1
    
        miki 21.12.11✎ 17:34 | 
        поменять местами, сначала для test2, а после для test1 пробовали?     | |||
| 2
    
        Shaman100M 21.12.11✎ 17:35 | 
        ага     | |||
| 3
    
        GLazNik 21.12.11✎ 17:35 | 
        пропишите разные рабочие каталоги для пользователя test1 и test2
  Интерактивно запускать под пользователем test1 и test2 пробывали? | |||
| 4
    
        andrewks 21.12.11✎ 17:36 | 
        ОткрытьФормуМодально() ?     | |||
| 5
    
        Shaman100M 21.12.11✎ 17:38 | 
        (3) каталоги разные - делали. 
  Интерактивно все работает. А в "нулевой" сессии (созданы планировщиком) - второй процесс полноценно не идет. | |||
| 6
    
        Shaman100M 21.12.11✎ 17:38 | 
        (4) тоже не помогло.     | |||
| 7
    
        miki 21.12.11✎ 17:41 | 
        (6)>>Интерактивно все работает. 
  может задача требует нажатия какой-нить кнопочки? :) | |||
| 8
    
        andrewks 21.12.11✎ 17:41 | 
        (6) я надеюсь, ты в обоих строчках поменял? ;-)     | |||
| 9
    
        Tatitutu 21.12.11✎ 17:44 | 
        Если ИмяПользователя() = "test1" Тогда
  ОткрытьФорму("Отчет.Test1vn"); ЗавершитьРаботуСистемы(); ИначеЕсли ИмяПользователя() = "test2" Тогда ОткрытьФорму("Отчет.Test2vn"); ЗавершитьРаботуСистемы(); КонецЕсли; у тебя во второй строчке ИмяПользователя() неправильно написано :-) | |||
| 10
    
        Shaman100M 21.12.11✎ 17:44 | 
        (7) код 1с ничего не требует. Интерактивно если запускать, все отрабатывает и закрывается без вмешательства человека. ) 
  (8) ну да, естественно. | |||
| 11
    
        andrewks 21.12.11✎ 17:45 | 
        что в ПриОткрытии() в Отчет.Test2vn?     | |||
| 12
    
        andrewks 21.12.11✎ 17:46 | 
        и как определил, что не отрабатывает ГМ? что в логах 1с?  пробовал ли в ГМ в ПриНачалеРаботыСистемы() писать в свой лог текст?     | |||
| 13
    
        miki 21.12.11✎ 17:47 | 
        (10)>>Интерактивно если запускать, все отрабатывает и закрывается без вмешательства человека
  Уточню, на всякий случай: оба одновремено запускал? | |||
| 14
    
        Shaman100M 21.12.11✎ 17:48 | 
        (9) )))
  ?("синий"="красный",1,0) = 0 | |||
| 15
    
        andrewks 21.12.11✎ 17:49 | 
        +(12) и есть ли что-то в логах выня     | |||
| 16
    
        Ленинград 21.12.11✎ 17:50 | 
        Может у тебя там в момент закрытия с первого юзе.....
  А нет, бл""ть SQL же | |||
| 17
    
        Shaman100M 21.12.11✎ 17:51 | 
        (11) спецом сделали одинаковые тестовые отчеты с "зацикливанием". Пока 1=1...
  (12) в ЖР писал первой строкой из ПриНачалеРаботыСистемы(). Записей не было. | |||
| 18
    
        Deathless 21.12.11✎ 17:52 | 
        А не монопольно ли 1с запускаете ?     | |||
| 19
    
        Кириллка 21.12.11✎ 17:53 | 
        (10)интерактивно одновременно под разными учетками работает?     | |||
| 20
    
        Shaman100M 21.12.11✎ 17:54 | 
        (13) Последовательно, после загрузки первого грузил второй. А в скрипте второй процесс запускается не сразу, спустя какое-то время. минуты, часы.     | |||
| 21
    
        Shaman100M 21.12.11✎ 17:55 | 
        (18) первым делом ключик М проверил...     | |||
| 22
    
        andrewks 21.12.11✎ 17:55 | 
        ну, кагбэ чудес-то не бывает...     | |||
| 23
    
        Shaman100M 21.12.11✎ 17:56 | 
        (15) ничего. Второй процесс отработал и завершился в норм. режиме.     | |||
| 24
    
        Shaman100M 21.12.11✎ 17:57 | 
        (19) да, и под одним тоже.     | |||
| 25
    
        Shaman100M 21.12.11✎ 17:57 | 
        (22) вот и я про то же...     | |||
| 26
    
        FN 21.12.11✎ 17:57 | 
        сделайте робота, который все время висит в базе в отключенной рдп сессии, а там через обработку ожидания + справочник заданий запускайте все что надо.     | |||
| 27
    
        andrewks 21.12.11✎ 17:58 | 
        на другом хосте проверь     | |||
| 28
    
        Кириллка 21.12.11✎ 17:58 | 
        (24)а может быть нет?     | |||
| 29
    
        rs_trade 21.12.11✎ 17:58 | 
        запускай тест2 в конце тест1     | |||
| 30
    
        Shaman100M 21.12.11✎ 18:01 | 
        (29) разные задания, д.б. разнесены по времени. 
  Кстати, ВАЖНОЕ ЗАМЕЧАНИЕ. Без оператора ОткрытьФорму() в первом сеансе, второй отрабатывает норм. | |||
| 31
    
        Shaman100M 21.12.11✎ 18:06 | 
        (27) проверяли и на другом виртуальном сервере     | |||
| 32
    
        Franchiser 21.12.11✎ 18:12 | 
        (31) попробуй  ЗавершитьРаботуСистемы(0)     | |||
| 33
    
        Shaman100M 21.12.11✎ 18:13 | 
        Выход, конечно, есть: грузить глобальный модуль из текстового файла, его содержимое менять для первого, второго процесса (они ночные) и для интерактивных процессов пользователей.
  Интересно разобраться, в чем проблема... | |||
| 34
    
        Shaman100M 21.12.11✎ 18:14 | 
        (32) Второй загружается - первый еще не завершен.     | |||
| 35
    
        Franchiser 21.12.11✎ 18:17 | 
        (34) у меня используется ОткрытьФормуМодально() в связке с Завершитьработусистемы(0)- все работает, 
  Надо бы знать что еще стоит в этих формах: в твоем случае может попасть вприоткрытии в приповторномоткрытии() | |||
| 36
    
        Shaman100M 21.12.11✎ 18:20 | 
        + (33) т.е. обойтись вообще без открытия форм и в то же время не дублировать код. 
  (35) в тестовых - одна кнопка "Закрыть", в ПриОткрытии() - бесконечный цикл. ЗавершитьРаботуСистемы(0) к моменту второго входа отработать не успевает. | |||
| 37
    
        Shaman100M 21.12.11✎ 18:21 | 
        Исчезну на час..     | |||
| 38
    
        Torquader 21.12.11✎ 18:24 | 
        Во-первых, через ключи запуска указать всё, что только можно:
  /u - директорию пользователя (разные) /t - директории временных файлов (тоже разные) В глобальном модуле проверить, что ExcluziveMode() не равно 1 (мало ли как оно там запускается). Проверить, что предыдущая 1С не "слопала" все ресурсы - если вход не интерактивный, то создаётся Desktop, у которого буферы и ресурсы сильно ограничены - может оказаться, что на вторую 1С просто не хватает ресурсов GDI (которых там не должно быть, так как экрана-то нет). | |||
| 39
    
        Franchiser 21.12.11✎ 18:25 | 
        (37) "задача под test2 запускается и через несколько секунд завершается" относится к планировщику? то есть, в журнале регистрации нет записи о том что произошел запуск/завершение 1с предприятия? Попробуй войти под тестом 2 интерактивно когда работает тест1. Может там окошко какое.     | |||
| 40
    
        Franchiser 21.12.11✎ 18:48 | 
        я думаю что либо 1с либо скуль не пускает теста2 в момент работа теста 1. Тест 2 проходит только до ввода пароля, после чего д.б сообщение и гм не отрабатывает.     | |||
| 41
    
        Torquader 21.12.11✎ 19:03 | 
        (40) Ну, например, никто не может войти, если открыта транзакция - ожидает какое-то время и выходит - вполне похоже, но, думаю, автор этот вопрос уже проверял - по его словам интерактивно всё работает.
  P.S. можно сменить планировщик на что-то самописное, чтобы можно было и окна посмотреть (есть мнение, что первое же окно сообщения от программы срубает процесс, так как система не может его вывести). | |||
| 42
    
        mvk 21.12.11✎ 19:26 | 
        Текст скрипта, который запускает 1С сначала с авторизацией test1, затем второй, - с test2, можно увидеть?     | |||
| 43
    
        Sk0rp 21.12.11✎ 19:38 | 
        Сильно меня смущают строки:
  ОткрытьФорму("Отчет.Test1vn"); ЗавершитьРаботуСистемы(); т.к. при немодальном открытии 1С не будет ждать пока отработает форма и сразу выполнит ЗавершитьРаботуСистемы(). И я не уверен, что затем произойдет раньше, будет передано управление в ПриОткрытии формы Test1vn или после окончания работы функции из которой вызваны эти команды сразу пойдет завершение работы системы. | |||
| 44
    
        Torquader 21.12.11✎ 21:03 | 
        (43) Так там формы - муляжи - в ПриОткрытии код будет выполняться до возврата из вызова ОткрытьФорму, а в конце кода ПриОткрытии наверняка стоит СтатусВозврата(0) - так что форма и не откроется, а вот если при исполнении происходит какая-то ошибка, то да - прерывание процесса открытия формы и завершение работы программы - но ошибку легко в журнале регистрации увидеть (конечно, если её через Try Except не перехватили).     | |||
| 45
    
        PZh 21.12.11✎ 21:46 | 
        (0) У нас та же песня. Просто смирились, что в скрытом режиме 2 1С-ки работать не могут нормально и все.
  Теперь всегда отключенный RDP сеанс висит и в нем пашет куча роботов. | |||
| 46
    
        Franchiser 21.12.11✎ 22:50 | 
        (45) у нас нормально работает под 2–3 роботами и пишется лог работы в 1 файл средствами vbs     | |||
| 47
    
        Franchiser 21.12.11✎ 22:57 | 
        кстати, почему нельзя зайти в сессию этого пользователя под которым происходит запуск планировщика     | |||
| 48
    
        PZh 21.12.11✎ 23:22 | 
        (46) Я глубоко не вникал, просто нужды в скрытом сеансе нет.
  А у вас VBS-ка планировщик запускает или минуя оный? Возможно это особенности взаимодействия планировщика с 1С? Если не влом поставьте опыт: Создайте задание и запускайте его через VBS-ку. | |||
| 49
    
        rider 21.12.11✎ 23:28 | 
        ЗавершитьРаботуСистемы();
  заменить на статусВозврат(0); возврат | |||
| 50
    
        Shaman100M 22.12.11✎ 09:54 | 
        (39) окошка там нет, каких либо диалоговых конструкций - тоже, т.к. это тестовая конфа, запускаемые отчеты - почти пустые, "клоны", с программной паузой (цикл). Записи в ЖР по второму процессу только: "подключение - отключение", а программных записей в ЖР из предопр. процедур - нет. Авторизация test2 проходит (если это первый процесс). Интерактивно второй процесс отрабатывает полностью, с открытием формы отчета. 
  (38) монопольный режим не дал бы второй раз войти вообще. Ключи /u и /t сегодня попробовали - результата нет. (43) не должно смущать, т.к. 1с все же подождет, пока отработают команды в модуле отчета и предопределенные процедуры. В немодальном режиме 1с не ждет закрытия формы, однако само "открытие" отрабатывает полностью. Команда ЗавершениеРаботыСистемы() ( и +(49) ) тоже не должна смущать, т.к. первый процесс -еще не завершен, там эта команда еще не выполняется, а второй процесс - вообще вылетает намного раньше, даже в гм не входит. | |||
| 51
    
        Shaman100M 22.12.11✎ 09:59 | 
        (44) отчеты тестовые, просто с "паузой". ошибки быть не должно. 
  (47) ее как таковой нет. | |||
| 52
    
        Shaman100M 22.12.11✎ 10:01 | 
        (45) Ну, наверно, тогда нужно помнить об этом сеансе, чтобы его случайно не вырубить.     | |||
| 53
    
        Shaman100M 22.12.11✎ 10:07 | 
        (48) В сессии пользователя VBS-ка отрабатывает оба подключения.
  +(45) серваков много, висящих сеансов тоже будет много, сисадмины сидят распределенно, - много организационных действий. | |||
| 54
    
        Shaman100M 22.12.11✎ 10:22 | 
        Пока единственный вариант, который работает: не открывать форму отчета, процедуры из отчета перенести в ГМ (не оч. хорошо, конечно...), в случае работы "роботов" эти процедуры вызываются из ПриНачалеРаботыСистемы()
  (46) а сервак 2003 ? | |||
| 55
    
        Shaman100M 22.12.11✎ 10:46 | 
        на 2003-ем работает. Это особенность 2008.     | |||
| 56
    
        Ковычки 22.12.11✎ 10:53 | 
        создать другого пользователя ос ?     | |||
| 57
    
        Ковычки 22.12.11✎ 10:54 | 
        а ремотестол указан для информации в сабже или ?     | |||
| 58
    
        Shaman100M 22.12.11✎ 10:58 | 
        (57) ну то что с-ка запускается в терминальной сессии, а не по сетке.     | |||
| 59
    
        Ковычки 22.12.11✎ 11:00 | 
        (58) еще раз и помедленнее
  "В планировщике создаем задачу" и "с-ка запускается в терминальной сессии" ? | |||
| 60
    
        Shaman100M 22.12.11✎ 11:13 | 
        (59) Session ID = 0     | |||
| 61
    
        Ковычки 22.12.11✎ 11:24 | 
        (60) т.е. терминал тут просто к слову ?     | |||
| 62
    
        Ковычки 22.12.11✎ 11:25 | 
        запускаете в одном задании или в двух ?     | |||
| 63
    
        Shaman100M 22.12.11✎ 11:41 | 
        (62) одно задание в планировщике, которое запускает один скрипт, который запускает 1с с разными параметрами. Задание стартует 2 раза в разное время     | |||
| 64
    
        Shaman100M 22.12.11✎ 16:14 | 
        Есть еще идеи?     | |||
| 65
    
        Ёпрст гуру 22.12.11✎ 16:19 | 
        (64) скрипт покажи, что ли.     | |||
| 66
    
        Shaman100M 22.12.11✎ 17:31 | 
        (65) 
  VBS команда запуска в первый раз Rez = WshShell.Run ("""C:\Program Files\1cv77s\BIN\1CV7s.exe"" enterprise /DD:\DB\Test\ /Ntest1", ,True) второе срабатывание планировщика (первое задание еще не завершено) Rez = WshShell.Run ("""C:\Program Files\1cv77s\BIN\1CV7s.exe"" enterprise /DD:\DB\Test\ /Ntest2", ,True) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |