Имя: Пароль:
1C
1C 7.7
v7: выгрузка на сайт даже если на сервере никто не работает
,
0 OnePrg
 
19.05.23
16:08
1С стоит на сервере. В планировщике задач создана задача, по которой запускается батник, который запускает 1С, та выгружает остатки куда надо и завершает работу.

Всё работает, только если пользователь зашёл в систему. Есть возможность, чтобы эта задача работала как служба? Чтобы если комп перезагрузился и пользователи ещё не зашли, то выгрузка всё равно идёт?
1 Волшебник
 
19.05.23
16:09
У вас пользователь заходит на сервер?
2 YFedor
 
19.05.23
16:11
Так в задаче что указано? Там же есть флаг работы только вошедших пользователей.
3 uno-group
 
19.05.23
16:11
1с в пакетном режиме. Делаешь пользователя выгрузка на сайт. При входе этого пользователя запустить обработки и после того как она отработала выйти из системы. настраиваешь планировщик на регулярный запуск 1с с именем этого пользователя
4 OnePrg
 
19.05.23
17:19
https://imagizer.imageshack.com/img924/1183/69WGbC.png

завершаю сеанс на сервере, через час захожу - в диспетчере куча фоновых процессов 1С, пока не убью их 1С по батнику не запускается - каталог пользователя занят

убрал у пользователя каталог - проверяю
5 OnePrg
 
19.05.23
17:29
не помогло

попробовал установить "Выполнять с наивысшими правами" - проверяю
6 OnePrg
 
19.05.23
17:37
думаю не получится
1С всё-таки приложение, а не служба
7 Aleksey
 
19.05.23
17:40
Если это 7-ка то задача запускается от пользователя System и у него не прописана база, т.е. тупо окошка висит регистрация новой базы
Если это 8-ка то делайте через регламентные и не парьтесь
8 OnePrg
 
19.05.23
17:43
(7) а как пользователю System прописать базу?
9 obs191
 
20.05.23
07:21
Импортируй единожды батником под System ветку реестра с "базами", полученную выгрузкой от обычного пользователя, например, так: regedit /s C:\1c\1cRobot\1cDbList.reg
10 NorthWind
 
20.05.23
10:35
Хм... А зачем под системом-то? В шедулере ведь можно настроить запуск задачи под нужным пользователем. У котрого в реестре все будет, что 1Ске нужно.
11 Bigbro
 
20.05.23
10:46
(4) это висят окна 1с с предложением добавить базу в список. после чего все должно работать.
так что два путя - или в реестр копируйте или под другим пользователем запускайте как уже сказали.
12 Злопчинский
 
20.05.23
11:42
все работает.
у меня так робот обмена крутится.
ну и нужно не забыть в 1С под 1Сным-пользователем, от имени которого она будет запускаться - поотключать все крыжики, которые вываливают диалоговые окна, которые ждут ручного действия пользовталя
13 ДедМорроз
 
20.05.23
13:42
Там еще желательно gdi ресурсов службе,которая будет запускать 1с,добавить ну или в ней новую Windows Station создавать.
14 NorthWind
 
20.05.23
16:52
(12) ну да, все так. Для вящей надежности можно еще время запуска процесса ограничить в шедулере - чтобы пристукивался по таймеру, если какое-то предупреждение все же вылезет. А в обработке сделать запись в файл лога, чтобы впоследствии в случае ошибок иметь возможность разобраться, что к чему.
15 Злопчинский
 
20.05.23
18:43
(14) "пристукивался" - если это файловая, потом при единственном заходе кого из пользователей - или того же самого робота - переиндексацию попросит.. ;-)
16 NorthWind
 
20.05.23
21:01
(15) ну тут нужно выбрать меньшее из зол, переиндексация или чтобы накапливались незавершенные процессы. С запросом на переиндексацию удалит точно так же, в конце концов или человек переиндексирует, или запустится задание на переиндексацию, после чего все восстановится.
17 rikkar
 
21.05.23
17:34
(8) Попробуй так. В свое время нашел такой алгоритм. Сам не проверял, не понадобилось. Но сохранил в менеджере заметок.
https://infostart.ru/1c/articles/101168/ - Реализация регламентных заданий для 1С 7.7/8.Х стандартными средствами Windows.
  У многих из нас возникала (и возникает) необходимости в запуске 1С в фоновом режиме для выполнения регламентных заданий.
Данную задачу я решил самым простым способом, с помощью стандартных возможностей Windows 2003. Полагаю, то, что в статье речь идет о серверной операционной системе, нисколько не уменьшит возможностей применения способа, т.к. фоновые регламентные задания именно на сервере обычно и запускаются.
Способ организации фонового регламентного задания прост.
1) Пишем bat файл запускающий 1с под определенным пользователем и паролем. Очень важно, чтобы 1С запускалась, не запрашивая ни пользователя, ни пароль, т.к. нам не суждено будет визуально увидеть запуск и работу 1С.
      а) Заранее предупреждаю что наш bat файл будет запускаться под учетной записью системы - для которой не зарегистрирована в реесте ни одна база 1С. То что мы сделаем дальше нужно для того чтобы зарегистрировать нужные нам базы для системной учетной записи. Тогда 1С при старте не будет "спотыкаться" и запрашивать регистрацию нашей базы.
      б) Экспортируем из реестра ветку HKEY_CURRENT_USER\Software\1C в файл baseslist.reg
      в) в начало нашего bat файла добавляем строчку "regedit /s d:\bases\baseslist.reg". Все. При первом запуске bat файла из под системной учетной записи в реестр будут добавлены все существующие базы 1с. В последущем эту команду из bat файла можно удалить.
2) Создаем задание в планировщике заданий. Я использую вариант запуска с 08:00 утра с повторным запуском каждые 30 мин.
3) В поле “От имени” вписываем NT AUTHORITY\SYSTEM (поле пароля оставляем пустым). Учетная запись NT Authority\System не имеет прав интерактивного входа, поэтому пользователи не видят программу запущенную от этой учетной записи как и не могут взаимодействовать с программами, запущенными от этой учетной записи.
4) Жмем “Ок”. Все задание создано.
Что такое по сути наше задание? Это наша программа (1С в данном случае) работающая под системной учетной записью, причем ввиду ограничений учетной записи не подающая никаких интерактивных и визуальных “признаков жизни”.
Чем наше фоновое регламентное задание отличается от службы? Для наших целей – ничем.
Данный способ можно применять для организации фонового регламентного задания периодически выполняющего некие действия. Например, для организации выгрузки данных о новых поступлениях для рассылки сторонней программой смс оповещающих об этом клиента.
P.S. Дополнения + недостатки метода:
При необходимости запустить наше фоновое задание можно командой
SchTasks /Run /TN "Имя_задания"
По такой же логике наше задание можно было бы остановить командой
SchTasks /End /TN "Имя_задания"
Но это невозможно к сожалению! Дело в том что запущенный процесс 1С не остановить таким образом, он будет висеть пока сам не "примет решение" остановиться. Поэтому мои регламентные задания запускаются с определенной периодичностью (раз в 30 мин например) и отработав, завершаются сами, ожидая следующего вызова.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
Не уверен, что экспортировать надо всю ветку HKEY_CURRENT_USER\Software\1C а не всего лишь HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles
18 Злопчинский
 
21.05.23
23:35
часто бывает что робот имеет смысл крутить пока кто-то есть в базе из интерактивных пользователей.
поэтому при входе пользователя проверяем есть ли кто в базе? если есть и он один и это робот (то есть зашел в базу робот) - то сразу автозавершение (я=робот, не имеет смысла одному вхолостую вертеть базу), если кто-то в базе есть - проверяем есть ли в базе робот - если нет ()я=пользовательнеротот) -запускаем из-под себя робота (из планировщика).
19 Builder
 
22.05.23
09:24
У меня сделано совсем по другому.
На серваке постоянно запущена 1С под определенным пользователем и через "обработку ожидания" запускает нужные задачи из своего шедулера.
Закрываю при обновлении и запускаю заново.
20 DGorgoN
 
22.05.23
10:51
Не ветка а ужас..
(19) Ну есть же регламентные задания! Они для чего нужны то? Я понимаю когда файловая, но когда сервер есть..
(0) По идее прав нет у пользователя под которым запускается сервер 1С. У него нет прав к локальным ресурсам и запусков программ.
21 Builder
 
22.05.23
11:03
(20) Тут староверы клюшки обсуждают, туда регламентных не завезли :)
22 OnePrg
 
22.05.23
11:26
(17) Спасибо. Попробую - отпишусь.
23 Builder
 
22.05.23
11:36
(22) Что мешает завести отдельного пользователя и под ним запускать?
Нахрена эти танцы с запуском от System ????
24 OnePrg
 
22.05.23
12:52
(23) если сервер перезагружается, такой обмен не идёт почему-то
25 uno-group
 
22.05.23
13:04
(24) а нафига сервер перегружается. и что значит не идет?
База какая скл. ДБФ? Может он предупреждениее выдает что программа была завершена аварийно запуститесь в монопольном режиме.
26 Djelf
 
22.05.23
13:04
(24) База в dbf? Видимо застревает на вопросе о переиндексации.
Если vbs скриптом запускать, то в нем можно такое проверять.
Давно такое делал, теперь уже и не припомнить.
27 uno-group
 
22.05.23
13:27
Можно проверять что в базе никого и если это так, прибивать индексы перед запуском. Тогда она индексируется без вопросов к пользователю
28 Злопчинский
 
22.05.23
13:41
у меня в 02:00 выдаетсяпредупреждение, что через 60 сек будет трндец.
через минуту на сервере киляются все 1Сины и запускается пакетное задание конфигуратора для переиндексации
29 OnePrg
 
22.05.23
22:44
(17) Работает! Спасибо!
30 victuan1
 
23.05.23
05:35
Еще бывает в полночь стопорит запросы смены рабочей даты в 1С. Поэтому для всяких юзеров-"роботов" я в Сервис-Параметры - всегда выставляю "Изменять в полночь автоматич.".
Ну и прочее отключаю, что выше уже написали.
31 DJ Anthon
 
23.05.23
06:18
(30) мало того, еще каждый месяц надо открывать период первого числа
32 rikkar
 
23.05.23
09:19
(29) Один вопрос: экспортировал всю ветку HKEY_CURRENT_USER\Software\1C
или только HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles ?
33 Злопчинский
 
23.05.23
11:37
(31) а у некоторых период итогов может быть и в 5 дней установлен... но за свою практику - таких не встречал, штатно - месяц.
34 Duke1C
 
27.06.23
20:26
(33) Как не встречал? У тебя ж проект какой-то был по автоматизации склада на основе твоих разработок, и по совету Ёпрста, ты использовал там такой период
35 Злопчинский
 
27.06.23
21:56
(34) так то личный проект с узкой спецификой, а не типовая конфига