8.х Автоматическое завершение работы 1С: Предприятие v8.0

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Sagirus, 29 мар 2007.

  1. TopicStarter Overlay
    Sagirus
    Offline

    Sagirus

    Регистрация:
    29 мар 2007
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!

    Уважаемые форумчане, подскажите, пожалуйста, возможно ли написать обработку, которая могла бы автоматически завершать работу 1С.
    Суть проблемы: имеется обработка, которая выполняет последовательность действий с определённой периодичностью в соответствии с расписанием. Рабочий день у сотрудника до 17:00. Необходимо, чтобы компьютер работал до 19:30, а затем автоматически выключался. Допустим, что с выключением компьютера проблема решена. Нужно сделать так, чтобы при этом корректно происходило завершение работы 1С. Просто прибить процесс - недопустимо, могут возникнуть ошибки в информационной базе.

    Помогите, пожалуйста... Предложите варианты решения...
  2. MustDie
    Offline

    MustDie

    Регистрация:
    12 янв 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Все очень просто:
    ЗавершитьРаботуСистемы();
  3. TAHk
    Offline

    TAHk Опытный в 1С

    Регистрация:
    31 авг 2006
    Сообщения:
    100
    Симпатии:
    0
    Баллы:
    26
    И в процедуре "ПриЗавершенииРаботыСистемы()" глобального модуля описать порядок завершения (если нужно).
  4. v1chodu
    Offline

    v1chodu

    Регистрация:
    5 апр 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    База какая файло или сервак1с. Если серв1С то можно http://www.itland.ru/forum/lofiversion/index.php/t9831.html

    Вообще если на машине пользователя в 1С выполняется процеес например проведение большого док-та или аналогичная обработка, то гасить нельзя по любому, а если он просто в программе, то хоть шутдаун в планировщик впиши. И вали их всех, ничего с базой не бует
  5. TopicStarter Overlay
    Sagirus
    Offline

    Sagirus

    Регистрация:
    29 мар 2007
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Народ, спасибо за предоставленную информацию. Очень нужно всесторонне проанализировать этот момент.
    К настоящему времени написал скрипт на AutoIt, который закрывает 1С. Скрипту до лампочки, отрыто ли модальное окно или нет, он не обращает внимание на остальные открытые окна внутри приложения. Суть - ищется поцесс 1сv8.exe, активируется, затем выполняется выход из 1С.
    После выхода из 1С осуществляется завершение работы компьютера. Скрипт закинул в планировщик. :unsure:
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    У меня файловый вариант.
    Я решил проблему иначе.
    Использовал ПодключитьОбработчикОжидания().
    Описал параметры выброса в доп. процедуре ,указав, кого надо выгонять, кого нет. Установил таймаут.
    Процедуру вызвал из двух блоков.
    ПередНачаломРаботыСистемы() и ПриНачалеРаботыСистемы()

    Процедура Отключить() Экспорт
    Отключить = Константы.ЗавершениеРаботыПользователей.Получить();
    Пользователь = ИмяПользователя();
    Если Отключить = 1 И Пользователь <> "Администратор" Тогда
    Предупреждение("Администратор информационной базы просит Вас завершить работу в системе.",5);
    ИначеЕсли Отключить = 2 И Пользователь <> "Администратор" Тогда
    Предупреждение("Работа системы завершается.",5);
    ЗавершитьРаботуСистемы();
    КонецЕсли;

    КонецПроцедуры

    Процедура ПередНачаломРаботыСистемы(Отказ)
    Отключить = Константы.ЗавершениеРаботыПользователей.Получить();
    Пользователь = ИмяПользователя();
    Если Отключить = 2 И Пользователь <> "Администратор" Тогда
    Предупреждение("База заблокирована. Обратитесь к администратору.",3);
    ЗавершитьРаботуСистемы();
    КонецЕсли;

    ...

    КонецПроцедуры

    Процедура ПриНачалеРаботыСистемы()

    ПодключитьОбработчикОжидания("Отключить",30);
    ....


    Создал константу новую для установки режима завершения работы пользователей и форму, где собсно меняю ее. И у меня проблем нет с выбросом товарищей из базы. Есть одна существенная недоработка, но ее не так и сложно подправить. Позже опишу. Она ориентирована на НЕ лохов юзверей.
    То есть могут запустить 1С, но не авторизоваться...Следовательно, пока висит окно входа у кого-то, конфу не смогу обновить. И еще одно важное примечание. Таймауты предупреждений в любом случае нужны, иначе восьмерка попросту подвисает и тогда поможет только жесткий дисконнект брутальными средствами )))
  7. Андрэ
    Offline

    Андрэ

    Регистрация:
    24 июн 2010
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Чета я разобраться не могу... Процедуры ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы тоже в глобальный модуль помещать??? Подскажите, товарищи...
  8. Андрэ
    Offline

    Андрэ

    Регистрация:
    24 июн 2010
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Во всем разобрался))) Да и разбираться было то не в чем просто ступил) Описанная обработка работает так же и в терминальном режиме.

Поделиться этой страницей