09.05.2014 12:29
KirillHome
 
Да что-то странное происходит.
Переделал чуть-чуть обработку - что бы она мне не только выходной файл создавала, но и хоть какую-то диагностику давала.
Пользователь, из под которого запускается - не залогинен на данном сервере.
Принудительно запускаю в планировщике - всё запускается, даёт и диагностику, и выходной файл, и 1с нормально завершается.
Возвращаю старую обработку - и тоже всё хорошо.

Вообще вышел с этого сервера, поставил в планировщике время на 11-40 - опять не работает.

Всё, разобрался, дело всё же в 1с и в моей голове.

В каталоге пользователя лежит ini-файл, необходимый для данной обработки.
Обращение к каталогу пользователя из 1с идёт через WSHSell
Код:
WSH=Новый COMobject("wscript.shell");
Объект.РеквизитИмяIniФайла = "" + WSH.ExpandEnvironmentStrings("%HomePath%") + "\MyIni.ini";
Если пользователь залогинен, то тогда его домашний каталог 1с понимает как
\Users\Пользователь

А если не залогинен, то, не смотря на явное указание пользователя, от которого запускается, домашний каталог 1с понимает как
%HomePath%\
Т.е. не инициируется системная переменная.

Мои ошибки:
1) Неправильно проверял существование ini-файла. Собственно, поэтому задание и "висело" (хотя странно, что оно не завершалось по таймеру).
2) Вместо ExpandEnvironmentStrings("%HomePath%") правильнее было использовать ExpandEnvironmentStrings("%UserProfile%") - первый вариант при невошедшем пользователе не инициализируется, а второе - инициализируется.

Всё.
Тему можно закрывать.
Всем спасибо за участие!
Часовой пояс GMT +3, время: 11:16.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.