![]() |
![]() |
|
Запуск 1С 7.7 по шедулеру... | ☑ | ||
---|---|---|---|---|
0
Allan Stark
25.06.09
✎
01:08
|
Условия.
Маленькая одноранговая сеть. Есть WinXP SP2 Rus. Установлена 1С 7.7. За ПК под учеткой "Оператор" работает пользователь, пользователь имеет административные права, в 1С входит под пользователем Оператор. В самой 1С созданы два пользователя: Оператор и Робот. В системном шедулере создано задание на запуск 1С с параметрами базы и пользователя 1С Робот. Задание запускается из-под учетной записи "Администратор". Задача. Стартовать по системному шедулеру вторую 1С для запуска обработки автообмена под пользователем Робот. Окно 1С не должно появляться на экране (обработка автообмена умеет корректно закрывать 1С после сенса связи). Проблема. При запуске в журнале шедулера появляется сообщение об ошибке с кодом Сама 1С естественно не запускается. То же самое - при попытке использовать runas. В то же время, если просто сделать запуск еще одной 1С (из-под Оператора) - она запускается без проблем. Также без проблем отрабатывает задание в случае, если оно запускается при незапущенной Оператором 1С. Соотв. службы совместимости и входа в систему запущенны, в локальной политике вышеназванные учетки системы указаны как разрешенные к запуску в качестве пакетного задания. |
|||
1
JeHer
25.06.09
✎
03:49
|
А под этой учеткой "Администратор" база зарегена?
|
|||
2
Дядя Васька
25.06.09
✎
03:55
|
(0) Я таки и не вьехал... ты шедулером пользоваться не умеешь, или таки одинэской?
|
|||
4
Kavar
25.06.09
✎
05:07
|
(2)+1
|
|||
5
Allan Stark
25.06.09
✎
10:47
|
Объясняю популярно еще раз.
"Администратор" и "Оператор" - учетки в Windows. Вторая также в группе "Администраторы". Учетки в 1С: "Оператор" и "Робот". Вторая должна использоваться при вызове 1С для запуска обработки автообмена. Проблема в том, что при запущенной "Оператором" (Windows & 1C) 1С шедулер не хочет запускать второй экземпляр 1С. Если ни одной 1С на ПК не запущенно, щедулер отрабатывает без проблем. Если сделать запуск 1С по шедулеру от виндовой учетки "Оператор" - запускает, но открывается второе окно, что не есть гуд. |
|||
6
mrkorn
25.06.09
✎
10:59
|
(5) монопольно? назначен католог пользователя?
|
|||
7
Allan Stark
25.06.09
✎
11:04
|
(6)
Нет, не монопольный. Каталоги пользователей разные - запуск по шедулеру 1С отрабатывает по своему пользователю "Робот" - у него в Конфигураторе задан свой каталог. |
|||
8
Allan Stark
25.06.09
✎
11:05
|
Только что проверил на WinXP SP3 (станция в домене) - та же ошибка e06d7363.
Причем это только с 1С 7.7 (бинарники 25-е) такая ерунда. Для проверки запускал виндовый калькулятор - запускается без проблем. |
|||
9
KRV
25.06.09
✎
11:06
|
(8) случаем 1С не однопользовательская?
|
|||
10
ДенисЧ
25.06.09
✎
11:09
|
@При запуске в журнале шедулера появляется сообщение об ошибке с кодом@
Очень грамотный баг-репорт. Мы сразу поняли, в чём проблема... |
|||
11
KRV
25.06.09
✎
11:10
|
+(9) извиняюсь не дочитал
|
|||
12
Allan Stark
25.06.09
✎
11:13
|
(9)
Нет, сетевая. (10) Это вопросы не ко мне, а к MS... Кода ошибки в MSDN не нашел. Больше нигде в логах (в т.ч. системы) ничего нет. |
|||
13
ДенисЧ
25.06.09
✎
11:14
|
(!2) Даже кода ошибки и сообщения в логе нету?? О_о...
|
|||
14
KRV
25.06.09
✎
11:14
|
Смотри права, не вылезает ли модальное окно какое-нибудь... под Администратором + Робот заходил?
|
|||
15
Allan Stark
25.06.09
✎
11:16
|
(13)
Из SchedLgU.txt: --------------------------------------------------------------- "1CV7s.job" (1CV7s.exe) Началось в 25.06.2009 10:04:42 "1CV7s.job" (1CV7s.exe) Закончилось в 25.06.2009 10:04:42 Итог: Задание завершено с кодом (e06d7363). --------------------------------------------------------------- Все, что имеем... (14) Права на все есть. Под всеми заходил прекрасно + писал же выше, что БЕЗ запущенной другой 1С задание шедулера отрабатывает без проблем. |
|||
16
Allan Stark
25.06.09
✎
11:18
|
(14) В то же время Оператор (виндовый) может назапускать 1С-ок сколько влезет - все открываются без проблем.
|
|||
17
Allan Stark
25.06.09
✎
11:20
|
Проблема кстати не в обработке или в каких-то сторонних программах.
Попробовал отработать в качестве задания на совершенно левой (виртуальной машине) просто голую 1С - результат аналогичный. |
|||
18
Allan Stark
25.06.09
✎
11:20
|
Т.е. запуск даже не доходит до выбора базы и прочего - приложение просто не запускается...
|
|||
19
KRV
25.06.09
✎
11:21
|
как танец с бубном - переставь платформу... у меня аналогично автообмен работает, только не скриптами, а mopftp трудится (для урбд)
|
|||
20
Allan Stark
25.06.09
✎
11:24
|
(19) Толку от перестановки ?
На трех разных машинах пробовали - виртуальных и не очень. |
|||
21
Allan Stark
25.06.09
✎
11:26
|
сейчас nncron попробую, может поможет
чувствую проблема явно в шедулере или в службе runas |
|||
22
Allan Stark
25.06.09
✎
11:27
|
(19) дело не в самом обмене, обработке, внешних компонентах и прочем, даже сама 1С после установки "из коробки" даже без конфигураций - тупо не запускается
|
|||
23
KRV
25.06.09
✎
11:32
|
тоже из серии "работы с бубном" не пробовал пользовать не Администратора для обмена, а, допустим, еще одного пользователя? вспоминаю, что тоже как-то натыкался на подобное..
|
|||
24
Allan Stark
25.06.09
✎
11:33
|
(23) Пробовал, результат аналогичный.
В общем, решили задачу при помощи nnCron-а. Тот запускает и без выкрутасов. Все в MS через одно место бл... |
|||
25
ildary
25.06.09
✎
11:42
|
Сам сталкивался с глюками шедулера винды в стиле хочу - работаю, хочу - нет, с тех пор nncron-lite спасает или полный nncron
|
|||
26
Allan Stark
25.06.09
✎
11:56
|
В общем на одном из форумов один программер-системщик ответил что такое конкретно в 1С 7.7 из-за использования какой-то VisualC++ библиотеки...
|
|||
27
Allan Stark
25.06.09
✎
11:57
|
Что-то где-то как-то оно там конфликтует видать
|
|||
28
Allan Stark
28.06.09
✎
00:21
|
В общем, необходимо мыслить шире, господа.
Пару суток недосыпа в обнимку с книгой М. Руссиновича - и решение пришло само собой. Нужно запускать задание от имени системной учетной записи, т.е. "пользователя" SYSTEM... |
|||
29
Туц
28.06.09
✎
05:44
|
(0) Если хочешь что запускалось по оператором, но не интерактивно, создай задание средствами WMI.
Function Create ([in]Command As string, [in]DaysOfMonth As uint32, [in]DaysOfWeek As uint32, [in]InteractWithDesktop As boolean, [in]RunRepeatedly As boolean, [in]StartTime As datetime, [out]JobId As uint32) As uint32 Функция Create передает задание операционной системе на выполнение в указанное будущее время и дату. Для работы этой функции необходимо, чтобы на компьютере, на который передается задание, была запущена служба расписаний. Метод возвращает следующие целые значения: 0 - Успешное выполнение 1 - Не поддерживатеся 2 - Отказ в доступе 8 - Неизвестная ошибка 9 - Путь не найден 21 - Неверный параметр 22 - Служба не запущена Другое - Целочисленные коды, отличающихся от перечисленных выше, описаны в документации по кодам ошибок Win32. Command [in] CommandПараметр Command содержит имя командного файла или двоичного файла (с параметрами командной строки), который используется службой расписаний для запуска задания на выполнение. Пример: defrag /д. /f DaysOfMonth [in] DaysOfMonthПараметр DaysOfMonth указывает числа месяца, на которые запланировано выполнение задания. Параметр используется только если значение параметра RunRepeatedly равно TRUE. DaysOfWeek [in] DaysOfWeekПараметр DaysOfWeek указывает дни недели, на которые запланировано выполнение задания. Параметр используется только если значение параметра RunRepeatedly равно TRUE. InteractWithDesktop [in] InteractWithDesktopПараметр InteractWithDesktop позволяет выполнять задание интерактивно (пользователь может осуществлять ввод данных по ходу выполнения). Значения TRUE или FALSE. Если TRUE, задание будет выполняться в интерактивном режиме. RunRepeatedly [in] RunRepeatedlyПараметр RunRepeatedly указывает, должно ли задание выполняться неоднократно - по дням, на которые запланировано его выполнение. Значения: TRUE или FALSE. Если TRUE, задание выполняется неоднократно, с учетом значений параметров DaysOfWeek и DaysOfMonth. Если значение параметра RunRepeatedly не указано, то используется значение по умолчанию - FALSE. StartTime [in] StartTimeПараметр StartTime представляет время (UTC) запуска задания на выполнение, в виде: YYYYMMDDHHMMSS.MMMMMM(+-)OOO, где YYYYMMDD должно быть заменено на ********. Пример: ********123000.000000-420, что означает 12:30 РМ PST в период действия летнего времени. JobId [out] Параметр JobId указывает идентификатор задания. Значение параметра является дескриптором задания, выполнение которого запланировано на этом компьютере. |
|||
30
Туц
28.06.09
✎
05:46
|
(25) А у меня все нормально работает. Что я делаю не так?
|
|||
31
Allan Stark
28.06.09
✎
08:01
|
(30) В серверных ОС либо в терминале все работает прекрасно и без танцев с бубном.
Под XP - только так... http://infostart.ru/forum/forum16/topic10031/messages/ |
|||
32
Туц
28.06.09
✎
08:43
|
(31) Без разницы.
|
|||
33
Allan Stark
28.06.09
✎
09:14
|
(32)
Еще раз уточняем. 1. В сеансе текущего пользователя Windows запущена 1С 7.7 2. В шедулере делается попытка запуска из-под другого пользователя Windows еще одной копии 1С 7.7. Получается ? |
|||
34
Туц
28.06.09
✎
10:05
|
(33) Это глюк не шелудера, а 1с.
А средствами WMI (29) запускай под текущей учеткой неинтерактивно. |
|||
35
Туц
28.06.09
✎
10:33
|
А ёлки... всё просто. Создавай задание от имени того пользователя под которым оно будет запускаться.
|
|||
36
Allan Stark
28.06.09
✎
10:37
|
(34) Это глюк НЕ шедулера, а именно 1С.
В этом нетрудно убедиться, запустив например Калькулятор - в диспетчере задач Вы будете видеть два calc.exe, но запущенные под разными пользователями. С 1С этот фокус не пройдет - она просто не запустится из-под другого пользователя при уже загруженном экземпляре программы от другого. Попробуйте сделать это не через шедулер, а через runas - результат будет тот-же. (35) Вы не прочитали условий задачи... При запуске 1С из-под того же пользователя она показывает свою сплеш-заставку, тем самым перехватывая на себя фокус ввода и отвлекая оператора от работы. Предложенный в (28) вариант решения практически идеален: задача решена в полном объеме и штатными средствами, без необходимости патча 1С и установки стороннего ПО. |
|||
37
Туц
28.06.09
✎
10:45
|
(36) Ты (35) попробуй для начала. Задание выполняется полностью прозрачно для пользователя.
|
|||
38
Туц
28.06.09
✎
10:51
|
Каюсь... теперь не работает. (
|
|||
39
Allan Stark
28.06.09
✎
11:09
|
Так ото-ж...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |