Имя: Пароль:
1C
1С v8
Обмен между базами 1С с помощью bat-файла
0 ARumshin
 
19.10.15
17:24
Коллеги, добрый вечер!

Никак не могу решить одну проблему, может вы поможете. Настроен обмен между 2 базами 1С.
Чтобы не снимать конфигурации с поддержки, реализовал через обработку «Универсальный обмен в формате XML».
У меня есть bat файл, который подгружен в планировщик Windows (используется SQL).
Bat-файл выполняет задачу: запускает 1С – запускает внешнюю обработку – внешняя обработка в свою очередь запускает обработку «Универсальный обмен в формате XML» и заполняет все необходимые параметры (подгружает правила обмена, подключается напрямую к базе Приемник и т.д.) – происходит выгрузка данных – после чего завершается работа 1С.
Проблема возникает в том, что когда запускаешь bat файл вручную, он все «шикарно» отрабатывает.
Но если закрываешь сеанс удаленного рабочего стола и ставишь выполнения задания ночью, планировщик заданий в свою очередь запускает 1С и через некоторое время завершается работа 1С, секунд примерно 10 держится сеанс.
В журнале регистрации ошибки не зафиксированы.
Есть ли мысли по данной проблеме?
Все перепробовал.
Заранее спасибо за ответ!!!
1 Stim
 
19.10.15
17:27
ставь запись лога в обработке. хз
2 KrabCore
 
19.10.15
17:28
юзео от имени которого запускается таск имеет права админа?
3 Jump
 
19.10.15
17:32
(0) Все очень просто.
Когда запускаешь руками - батник работает от имени текущего юзера в текущей директории.
Когда через планировщик - батник работает от имени системного юзера, если не указанно иное, и в системной директории.

Поэтому причины может быть две и только две -
Права - проверяем есть ли права у юзера от имени которого запускается батник.

Пути - пишем абсолютные пути к файлам, а не относительно текущей директории.
4 Jump
 
19.10.15
17:34
Скорее всего база подключается к базе приемнику по сети.
А батник запускается от системного пользователя, который не имеет права на работу с сетью.
5 anatoly
 
19.10.15
17:57
(0) неужели не получилось применить Полный план обмена с загруженными правилами обмена?

вижу неудобство только в том, что придется периодически руками регистрацию "лишних" объектов очищать...
6 ARumshin
 
19.10.15
18:00
Спс. кто откликнулся. У пользователя Windows полные права.
Скрины от планировщика заданий по этой ссылке - https://yadi.sk/d/huZGVPZmjqpEM
Попробую вышеуказанные методы.
7 Jump
 
19.10.15
18:33
(6) Да что там скрины планировщика.
Ты лучше содержимое батника покажи.

Есть там относительные пути, или все пути прописаны полностью?
8 Jump
 
19.10.15
18:35
А вообще чтобы не гадать, сделай так - в батнике включи вывод в файл.
Запустил планировщиком, посмотрел вывод ошибок батника из файла и все станет ясно.
9 ARumshin
 
19.10.15
18:53
(7) Вот пример батника "C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /S"server-1C\ZUP" /N"EMigachev" /P"12345" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\obmen\V.epf" /C"Выгрузка"
10 ARumshin
 
19.10.15
18:56
(8) Подскажи пож., как это реализовать? Ни разу не делал. Спасибо!
11 pumbaEO
 
19.10.15
18:57
(10) /out logfile.log
12 Jump
 
19.10.15
19:21
(11) Это вывод лога средствами 1с.
А если надо из батника вывод прочитать то добавляем >>C:\logfile.log
13 Jump
 
19.10.15
19:23
(9)А зачем 1cestart.exe запускаешь?
Делай так C:\Program Files (x86)\1cv8\8.3.5.1428\bin\1cv8.exe
14 ARumshin
 
19.10.15
21:57
(13) В твоем случае будет запускать только релиз платформы 8.3.5.1428, а в моем самый последний установленный релиз 1С
15 hhhh
 
19.10.15
22:11
(14) зато 1cestart.exe завершается через 10 секунд. Это всем известно.
16 ARumshin
 
19.10.15
22:24
(15) А почему?
17 hhhh
 
19.10.15
23:08
(16) просто интересное совпадение. 1cestart.exe он ведь ничего не делает, запускает \bin\1cv8.exe, а сам завершается через 10 секунд. И у тебя 10 секунд. Копай в сторону запускается у тебя сам файл 1cv8.exe или нет?
18 Jump
 
19.10.15
23:15
(14) В моем случае запускается нужный мне релиз.
Какой именно я явно указываю.
Путем нехитрых манипуляций и пары лишних строчек кода можно выбирать последний релиз.

Но самое главное - я запускаю 1с, и контролирую его запуск.
А вы запускаете стартер, и неизвестно запускает ли он 1с или нет, вы не можете посмотреть ни логов ничего.

Я из батника вижу сколько работает процесс, работает ли он, могу подождать пока он завершится, чтобы перейти к другому этапу, поэтому только напрямую, без всяких посредников вроде 1cestart.exe
19 Jump
 
19.10.15
23:16
(16) Потому что его задача запустить последний релиз и завершить работу.
Т.е вы его запускаете, он запускает 1с, и тут же закрывается.
20 rsv
 
19.10.15
23:21
(0) .... ну может вести все в одной базе ? И проблем нет.
21 hhhh
 
19.10.15
23:33
(19) точно, в планировщике указывается время выполнения процесса стартера. Там всегда будет время типа 5-10 секунд.
22 User_Agronom
 
19.10.15
23:34
(0) Можно снять конфигурацию с поддержки, но не снимать с поддержки объекты (точнее включить возможность изменения для конфы, но не включать её для объектов).
И тогда регламентное задание можно будет добавить. Рисков и сложностей будет на порядок меньше.
23 Стальная Крыса
 
20.10.15
05:41
(0) как вариант

при работе вашего батника, для 1С в этом режиме требуется клиентское окно, при отсутствующем пользовательском сеансе - его конечно же нет.

в свое время для решения такой проблемы мы на сервере ВСЕГДА оставляли консольный сеанс.
24 ARumshin
 
28.10.15
13:10
(23) Подскажите подробно как это реализовать?
25 rozer76
 
28.10.15
13:48
(24) это надо консольно зайти на сервер под пользователем под которым стартует задание
26 Гёдза
 
28.10.15
14:07
может проще расписание в 1с настроить?
27 Jump
 
28.10.15
14:10
(24) Вы до сих пор мучаетесь?
Блин, там делов на полчаса максимум.
Перенаправьте банальными >> вывод батника в лог файл, и посмотрите в логе на что он ругается.
28 ARumshin
 
29.10.15
11:36
(27) "C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /S"server-1C\ZUP" /N"EMigachev" /P"12345" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\obmen\V.epf" /C"Выгрузка" >>C:\logfile.log
В батнике необходимо прописать такую строку?
29 6kubikov
 
29.10.15
11:42
(0) На первом скрине есть пункт как выполнять скрипт. Поставь "Выполнять вне зависимости от регистрации пользователя".
30 ARumshin
 
29.10.15
11:45
(29) Тоже делал. Не помогло.
31 6kubikov
 
29.10.15
11:50
(30) У пользователя под которым запускается задание пароль не пустой?
32 ARumshin
 
29.10.15
11:54
Пароль заполнне. Там создан локальный пользователь.
Факт тот, что когда ставишь регламентное задание после завершение терминальной сессии и ставиь планировщик через 5 минут. Процесс запускается, а если ставишь например через 3 часа то процесс не запускается.
33 6kubikov
 
29.10.15
12:01
(32) Ну во-первых галка из пункта "Выполнять вне зависимости от регистрации пользователя" должна стоять обязательно и всегда.
Во-вторых при установке этой галки у тебя спросят пароль пользователя под которым запускается задание.
И потом непонятно про 5 минут. Ну поставь 10 минут, выполнится?
34 ARumshin
 
29.10.15
12:12
Два верхних параметра установлены.
Может он не при активном сеансе клиентскую функцию не может выполнить.
35 Jump
 
29.10.15
15:41
(34) Ему пофиг на сеанс - есть имя и пароль он под ними работает.
Не пофиг на сеанс если нет галки на выполнение без регистрации пользователя. Тогда только при залогиненом в систему пользователе выполняет.
36 Гёдза
 
29.10.15
15:49
Без логона нельзя запустить 1ску через шедулер никак
37 ARumshin
 
29.10.15
16:27
(36) Не понял
38 Гёдза
 
29.10.15
16:31
(37) Логон - это когда в виндувс входишь набирая имя и пароль
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший