Имя: Пароль:
1C
1C 7.7
v7: Автозадачи блокируют базу, если не запущен профиль.
0 MAGia
 
13.12.11
13:33
День добрый!
Может кто поможет с такой проблемой?
Существует база 1С 7.7 SQL.
Есть назначенное задание, которое в определенное время запускает 1С, делает в нем определенные процедуры и закрывает 1С.
Назначенное задание запускается от имени Admin.
Пользователь Admin указан в группе Administrators на данном сервере.
Проблема заключается в том, что когда я захожу на сервер под Admin (т.е. когда запущен профиль Admin), автозадача отрабатывает нормально.
Когда профиль не запущен - автозадача зависает, при этом блокирует базу 1С.
1 dk
 
13.12.11
13:42
больше подробностей
терминал?
кто-нибудь еще под этой учеткой работает / выполняются другие задания?
2 dk
 
13.12.11
13:42
время старта?
сколько выполняется задание?
OLE используется?
3 MAGia
 
13.12.11
13:52
Под этой учеткой больше никто не работает. Я под Admin захожу непосредственно на сервер, не через терминал. Часть пользователей работает через терминал, часть - через удаленный доступ.
Другие задания есть, но они разграничены по времени, не пересекаются.

Задание выполняется от силы минуты 3. Без OLE. Просто идет перебор элементов справочника. И рассылка по почте. Рассылка по почте реализовано с помощью CDO объектов:  createObject("CDO.Configuration") и createObject("CDO.Message");
4 dk
 
13.12.11
13:56
1. странно как простой перебор справочника может заблокировать базу 1С
2. пиши логи после выполнения каждого блока или строчки кода
3. автозадача при незалогиненном пользователе зависает стабильно или периодически?
5 MAGia
 
13.12.11
14:03
Думала проблема в коде 1С. Но уже просто оставила один перебор элементов справочника - все равно виснет и блокирует.
Но блокирует именно когда профиль не загружен. Когда я нахожусь на сервере автозадачи выполняются отлично.

Зависает стабильно (при незалогиненном пользователе), причем нет зависшего окна 1С и DOS. Когда я на сервере, при запуске автозадачи отслеживается и открытие 1С и окна DOSа.

Наверное все же что то с профилем, но вот что именно.
6 dk
 
13.12.11
14:04
зависает до входа в 1С? в журнале регистрации есть вход 1с пользователя в базу?
--
Если нет входа, то проблема с реестром скорее всего - нет ветки со списком баз 1С
7 ЧеловекДуши
 
13.12.11
14:09
Если Автоматы запускаются монопольно, то у вас проблема в ДНК и в неграмотности.
Если автоматы подключаются к другим БД под средством SQL,то тут все просто.
При первом запуске 1С 7.7 система 1С требует монопольного доступа к таблицам для проверки.
...решение проблемы: перед запуском прямых запросов, к определенной БД, осуществлять ОЛЕ подключение, для того что бы другие пользователи смогли подключиться к этой БД...
8 MAGia
 
13.12.11
14:10
В журнале регистрации есть (это в мониторе пользователей).
9 dk
 
13.12.11
14:10
>При первом запуске 1С 7.7 система 1С требует монопольного доступа к таблицам для проверки.
что за бред?
10 MAGia
 
13.12.11
14:11
7 Автоматы запускаются не монопольно.
11 dk
 
13.12.11
14:12
(8) значит не в реестре
тогда смотри какие компоненты грузятся в ПриНачалеРаботы
12 rider
 
13.12.11
14:14
Покажи код выхода из системы.
13 MAGia
 
13.12.11
14:15
Еще посмотрела на Event Viewer в случае если профиль запущен - при запуске автозадачи создается четыре записи: первая от имени SYSTEM  и три следующие от имени Admin.
А когда блокируется первая  - SYSTEM, две следующие - Admin и сново SYSTEM и две слудующие от имени  Admin (может это поможет).
14 MAGia
 
13.12.11
14:18
Внешние компоненты для автозадачи не загружаю. Уже упростила до минимума.

//--------------------------------------------
Процедура ПриНачалеРаботыСистемы()
Если ИмяПользователя() = "Auto" Тогда  
     ОткрытьФорму("Обработка", 1, КаталогИБ() + "ExtErt\АвтоотправительПисем.ert");    
     СтатусВозврата(0); Возврат;
КонецЕсли;    
   
   ЗагрузитьВнешниеКомпоненты();  
.....
15 ЧеловекДуши
 
13.12.11
14:18
(9)Что за бред? (полоска это не признак ентилекта ;))
Напиши прямой запрос к SQL БД, и попробуй подключиться к БД за тот промежуток времени пока выполняется запрос.
Тебя немного удивит. ;)
16 ЧеловекДуши
 
13.12.11
14:19
(14)Бред, лучше осуществлять сеи манипуляции через обработку ожидания.
17 rider
 
13.12.11
14:21
Доменая безопасность??
18 ЧеловекДуши
 
13.12.11
14:21
+(9)к подключаемой базе не должно быть подключений от каких либо пользователей.
Чисто первый запуск 1С в режиме пользователя.
19 MAGia
 
13.12.11
14:22
(17) сорри, не поняла ...
20 GreyK
 
13.12.11
14:22
(0) Runas с загрузкой профиля от имени админа спасёт отца Русской демократии! :)
21 rider
 
13.12.11
14:24
Сервер домена есть?
22 MAGia
 
13.12.11
14:25
есть
23 FN
 
13.12.11
14:25
(15) все нормально подключается. описанный тобой эффект можно получить если подключиться к БД из ЕнтерпрайзМенеджера или Квери. Прямой запрос из 1С (да и любая штатная транзакция) никак не мешает подключиться к базе.
24 MAGia
 
13.12.11
14:27
(20)  GreyK, а как для не особо продвинутых в сис. админ. можно подробнее.
25 rider
 
13.12.11
14:27
Возможно с этим проблемы надо админа напряч.
26 MAGia
 
13.12.11
14:28
(25). Ок. Спасибо.
27 ЧеловекДуши
 
13.12.11
14:30
Очень полезная штука, и почти даром.
http://araxgroup.ru/content/view/114/65/

Обратить внимание на :
Если хотите видеть заппущенный сеpвис в виде окна на десктопе, то отметьте чекбокс "Разрешить взаимодействие с рабочим столом".
28 FN
 
13.12.11
14:31
(0) можно сделать батник:
--------
1с.ехе
логофф
--------

завести пользователя робот, в свойства пользователя в качестве среды прописать запуск этого батника.

потом сделать рдп файл с сохраненным паролем пользователя робот
в планировщик засунуть mstsc robot.rdp

Получим полноценный вход робота в систему.
29 ЧеловекДуши
 
13.12.11
14:33
(28)Робот через рдп :)
И как оно, работает?
Есть нарекание на ошибки при запуске и подключения к серверу?
30 MAGia
 
13.12.11
14:34
(29) нет
31 ЧеловекДуши
 
13.12.11
14:35
(30)Что нет?
И где ФОТО? :)
32 FN
 
13.12.11
14:38
(29)  работает супер. даже если какой-то зависон или другая проблема, то всегда можно просто подключиться к сессии и посмотреть что там творится.
33 MAGia
 
13.12.11
14:38
нареканий нет :)
34 dk
 
13.12.11
14:38
так что с логами?
35 ЧеловекДуши
 
13.12.11
14:39
(32)Неплохо :)
Но для этого придется поднять терминал сервер.
Или у вас обходится штатным сервером в 2 подключения?
36 FN
 
13.12.11
14:39
(35) конкретно у меня поднят, но всегда есть 2 штатных :)
37 ЧеловекДуши
 
13.12.11
14:40
(36)Идея хорошая :)
38 MAGia
 
13.12.11
14:42
dk, это вопрос ко мне ?
39 dk
 
13.12.11
14:45
(38) правильно
40 MAGia
 
13.12.11
14:52
(39) Какие логи смотреть? я уже совсем запуталась.
При начале работы системы, если загрузка идет от автозадаче, никакие внешние компоненты не загружаются.
41 MAGia
 
13.12.11
14:54
Еще есть "Event Viewer в случае если профиль запущен - при запуске автозадачи создается четыре записи: первая от имени SYSTEM  и три следующие от имени Admin.
А когда блокируется: первая  - SYSTEM, две следующие - Admin и сново SYSTEM и две слудующие от имени  Admin (может это поможет)"

Один из вариантов, как я поняла, это посмотреть в настройках сервера домена?
42 dk
 
13.12.11
14:54
не, в обработке логи настроить
1. при открытии обработки
2. при начале формирования
3. после формирования
4. призакрытии
43 MAGia
 
13.12.11
14:55
(42) А, поняла.
44 rider
 
13.12.11
15:01
У меня когда подняли домен многие задания перстали выполняться. Админ два дня там что-то прописывал. потом заработало. Я так понимаю что надо запускать задания от имени прописаном в домене, а не на локальном сервере.
45 MAGia
 
13.12.11
15:05
Может и тут проблема, у меня тоже это началось после манипуляций админов, но мне прежде чем идти к админу, надо все другие варианты просмотреть.
46 MAGia
 
13.12.11
15:16
(42). При выполнении автозадачи без профиля логи вообще не посоздавались. Прописала создание лога в начале проц. "ПриНачалеРаботыСистемы()". получается 1С даже не запустилась, но если в мониторе пользователя запись есть, то получается, что открыть 1С автозадача пыталась, но ... не получилось. Правильно ?
47 dk
 
13.12.11
15:19
не в мониторе смотри, а в журнале регистрации
48 ЧеловекДуши
 
13.12.11
15:19
(46)Можешь пинать админа на недостачу прав.
49 GreyK
 
13.12.11
15:26
(24) Ссылок в инете полно. Вот хотя-бы:
как написать bat-ка (проблема внутри +)

Зачем это нужно пусть админ думает :) Не надо брать его работу на себя, а то привыкнет...
50 chief accountant
 
13.12.11
16:00
(44) Нее, у меня работает на локальном
51 MAGia
 
13.12.11
16:11
(47) в журнале регистрации стоит подключение.
52 rider
 
13.12.11
16:18
Можно попробывать включить обработку в конфигурацию а не вызывать как внешнюю. И проверить хотябы запускается или нет .
53 chief accountant
 
13.12.11
16:27
(51) Читай (48)
54 MAGia
 
13.12.11
16:28
По логам видно, что не попадает в процедуру "ПриНачалеРаботыСистемы()"
55 MAGia
 
13.12.11
16:31
я прочитала. Тут своя политика. Типа у меня есть все права на сервере, я должна сама решить проблему.
56 chief accountant
 
13.12.11
16:31
(55) Решай, я не возражаю
57 rider
 
13.12.11
16:33
Отключи его от сети перегрузи и попробуй:)
58 vcv
 
14.12.11
10:41
У меня аналогичный эффект. Если 1С запускается на терминальном сервере из планировщика от имени некоего пользователя и от этого пользователя нет открытого терминального сеанса, 1С просто не запускается. То есть, вроде, 1cv77.exe запускается, но до ПриНачалеРаботы так и не доходит. Помогает держать открытой терминальную сессию пользователя, от которого 1С автозапускается. Подключенной сессию держать не обязательно, достаточно открыть и отключиться не закрывая терминального сеанса.
Причин такого нехорошего поведения и методов лечения не знаю.
59 MAGia
 
14.12.11
14:05
Спасибо всем!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший