Зависание 1С. Запуск BAT-ником внешней обработки с последующем закрытием 1С v.2 #759093


#0 by Nikoss
Зависание 1С. Запуск BAT-ником внешней обработки с последующем закрытием 1С Создавал уже тему, но побороть не смог. На сколько помню, перезагрузка сервера помогла. Вкратце. Есть BAT-ник запускающий 1с и обработку автоматически, после выполнения 1с закрывается. Если батник запустить вручную все срабатывает и закрывается нормально. Если сделать из планировщика задания, процедура отрабатывает, но остается зависший сеанс 1с. В планировщике выполняю под тем же пользователем, с наивысшими правами, вне зависимости от регистрации пользователя. Появляется эта история раз в пару-тройку месяцев. Из-за чего может быть?
#1 by cw014
Поставь в конце батника exit
#2 by Cyberhawk
"но остается зависший сеанс 1с" // конкретнее
#3 by Nikoss
остается запущенный процесс 1с. Причем интересный момент: допустим после выполнения процесс занимает в диспетчере задач 100Мб памяти, со временем в течении (не знаю точно, гдето час может быть) память уменьшается до  10Мб.
#4 by Nikoss
, так работало же без exit, на протяжении нескольких месяцев
#5 by Cyberhawk
такое бывает, когда 1С использует какую-нибудь dll, работа с которой не завершается корректно (или dll кривая). У меня так было, например, из-за драйвера сканера штрихкодов, проброшенного в терминал и используемого приложением 1С в терминале
#6 by Cyberhawk
Если платформа выше 8.3.3, то сделай регл. задание и просто запускай сеанс 1С - регл. задание отрабротает в файловой само
#7 by vde69
еще такое бывает когда 1с при завершении спрашивает "сохранить документ хххх", "вы действительно хотите выйти из 1с" и т.д. а еще учитывая асинхронность вызовов 1с может какой обработчик подвязанный к вызову не дает очистить память. короче вариантов масса, но они ВСЕ сводятся к одному 1с не смогла закрыть все дискртипторы (окон, памяти и т.д.)
#8 by Nikoss
еслиб так то и простой запуск батника (не через планировщик) не отрабатывал бы, не так ли?
#9 by Nikoss
Подскажите, где вообще запускается задание планировщика? Сижу под пользователем Пользователь1, в планировщике задание под этого-же пользователя. Но при запуске задания, оно выполняется где-то непонятно где, окон никаких нет, в диспетчере задач КодСеанса = 0 (не такой какой у тек.пользователя).
#10 by Nikoss
+ Изменил задание в планировщике, поставил "только при входе в систему" все отработало, закрылось. Ставлю обратно "вне зависимости от регистрации" фих...
#11 by hhhh
а как закрываете 1с? Ведь общеизвестно, что ЗавершитьРаботуСистемы во внешнем соединении не работает. Только на клиенте работает.
#12 by Мыш
Возможно без входа в систему нет доступа к профилю на диске. Вот и ждет, пытается записать.
#13 by Nikoss
БАТНИК: ------------------------- ntest1112.epf: Фодуль формы: ------------------------- &НаКлиенте ------------------------- Убрал вообще всё, тупо открываю 1с, и сразу закрываю.
#14 by Мыш
Фодуль - смешная ачипятка ) Процесс всё равно пытается записать данные в профиль, даже если обработка ничего не делает.
#15 by Cyberhawk
Покажи первую вкладку свойств задания планировщика, попробуй галку там поставить "Запускать с наивысшими правами"
#16 by Cyberhawk
"Процесс всё равно пытается записать данные в профиль, даже если обработка ничего не делает" // Ясен перец, 1С сохраняет данные пользователя в недрах каталога AppData
#17 by Cyberhawk
Имею в виду настройки пользователя при закрытии приложения
#18 by Nikoss
, так работало же всё... после перезагрузки сервера все заработает снова, уверен на 95% :) , стоит эта галка
#19 by Мыш
Смотри . У него все получилось после этого.
#20 by Cyberhawk
Шта?
#21 by vde69
нет прав на файл C:UsersuuserrDesktop test1112.epf перенеси его в D: ew
#22 by Мыш
Цитирую: поставил "только при входе в систему" все отработало, закрылось
#23 by Cyberhawk
Это Я понял. Я не понял, каким боком это к относится (ну т.е. зачем ты написал в , чтобы Я посмотрел на )?
#24 by Мыш
Потому шта Я не понял, зачем Ты написал )))
#25 by Cyberhawk
Там ответ на процитированную фразу
#26 by Nikoss
есть добавил в модуль формы: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КонецПроцедуры файл записывает, 1с не закрывается
#27 by vde69
У тебя служба 1с под админом работает???
#28 by Nikoss
о какой службе речь? База файл. Запуск происходит под административными правами в винде, и в 1с также - полные права.
#29 by hhhh
запускаешь ведь 1cv8s.exe - это вроде серверный вариант. Не файловый.
#30 by Cyberhawk
Ошибаешься. Это стартер 1С.
#31 by hhhh
зачем стартер запускаешь? Для прикола?
#32 by Nikoss
, да чтож такое... для какого прикола? Какое это значение имеет в данном случае? Говорю же всё работает уже на протяжение более года, с этими же батниками, только раз в 2-3 месяца вот такая беда случается зависшими 1с.
#33 by Nikoss
+ на всякий случай поставил "c", без изменений.
#34 by vde69
смотри логи... может там какой вопрос типа "не найдена лицензия" или "база устарела, обновить?"
#35 by Nikoss
в каком разделе?
#36 by Cyberhawk
"раз в 2-3 месяца вот такая беда случается" // В какой-то момент это начинает проявляться на всех последующих запусках батника или выборочно?
#37 by Nikoss
на любом батнике. Буквально сегодня создал новый, по сути пустой, просто закрытие базы идет. Указал даже базу другую, безрезультатно.
#38 by Nikoss
Попробовал на другой базе, файловой, но не упр.прил. Отработало, правда на 8.2 запускал. Смена платформы на той базе, где проблема, тоже не помогло.
#39 by Cyberhawk
Я не понял, как это согласуется с ? Я на текущий момент понял ситуацию так: наступает такой момент (назовем его "порча"), что перестает завершаться приложение 1С, если оно было запущено через планировщик Винды. Если после наступления порчи запустить бат-файл вручную, то что происходит - тоже остается висеть приложение 1С или все завершается успешно?
#40 by Nikoss
вручную запуск батника отрабатывает нормально, даже после "порчи")
#41 by Nikoss
+ и в случае ручного запуска и в случае запуска планировщиком, процедуры из батников отрабатывают исправно. Кроме, собственно, закрытия 1с.
#42 by Cyberhawk
в случае ручного запуска после порчи процесс 1С завершается (не остается висеть)?
#43 by Cyberhawk
И, кстати, после того, как задание планировщика отработало, а процесс 1С остался висет, статус у этого задания остается Running?
#44 by Nikoss
завершается. Но опять же запуск происходит под другим сеансом (к примеру 3), а запуск через планировщик с признаком "выполнять вне зависимости от регистрации пользователя" выполняется всегда под сеансом №0. нет, статус сразу после запуска становится "Выполнен". Это всегда так было, я так понимаю батник просто отрабатывает не дожидаясь 1с. Кстати попробовал прописать строку запуска прям в действия к задаче, а не запуск батника - вот в этом случае задача висит постоянно в статусе "Running", поведение 1с осталось тоже. В журнале ничего адекватного, просто говорится что было запущено и т.д.
#45 by Cyberhawk
Тогда бери Process Explorer и в дереве процессов смотри, кто подчинен планировщику. Будет дерево типа такого:     cmd.exe или такого: svchost.exe     cmd.exe         1cv8c.exe
#46 by Nikoss
wininit.exe services.exe   1cv8c.exe
#47 by Nikoss
wininit.exe    services.exe       1cv8c.exe
#48 by Cyberhawk
1. Ты уверен, что это именно твой процесс 1cv8c.exe? 2. В подчинении у него ничего нет, да? А почему тебя беспокоит, что остается висеть процесс - это чему-то мешает?
#49 by Nikoss
1. мой, по ID смотрел 2. ничего Потому что их через сутки будет под тысячу сеансов. И вроде даже как они даже лицензии откушивают каждый процесс 1с. Не уверен, но придя вчера с утра, не оказалось свободных лицензий, а их придостаточно с запасом.
#50 by Cyberhawk
Ну тогда предложить могу три варианта: 1. В батничек добавить taskkill 2. В свойства назначенного задания указать "Убивать если выполнение длится дольше чем N минут", правда это не всегда работает 3. Перейти с планировщика Винды на nncron
#51 by Cyberhawk
А, четвертый вариант: написать внешнюю обработку и запускать ее как регл. задание в файловой базе - сеанс будет всегда висеть, а нужный код выполнятся по расписанию
#52 by arsik
Может батник заменить на powershell скрипт?
#53 by Пикчер
делай через wscript
#54 by Nikoss
Стало закрываться нормально... Ничего не пойму... Поймал сеанс в отладчике, строка с ЗавершитьРаботуСистемы просто проходится и ничего не происходит. Посмотрел окна через ПолучитьОкна - 2 окна: раб.стол и сама форма 1с. Чтож ей не нравится та...
#55 by Cyberhawk
"Если вызов осуществляется из модуля формы, открытой в модальном режиме, завершение работы системы не выполняется." Это касательно ЗавершитьРаботуСистемы
#56 by Cyberhawk
А вот ПрекратитьРаботуСистему как раз независимо от наличия модальных диалогов прекратит работу системы :) И раз у тебя первое не работало, а второе - сработало, то, вероятно, дело как раз было в каком-нибудь диалоге, возникающем после порчи
#57 by Nikoss
Ещеб понять, что это может быть за диалог. Тут уже конечно больше "спортивный" интерес, т.к. переделать все процедуры на "Прекратить.." дело 5 минут.
#58 by Nikoss
Хотя на сколько вообще хороша идея выключать сеансы через "ПрекратитьРаботу...", это же тоже самое, что рубить сеансы taskkill-ом? Базу похерить не получится?
#59 by Cyberhawk
Почти ничем не отличается от закрытия главного окна приложения крестиком (ну и что, что модальные диалоги принудительно закрываются?)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С