Вопрос № 166707: Доброго времени суток. Возникла следующая необходимость. Существует внешняя обработка, которая выгружает справочники. Возможно при помощи чего-либо выполнять выгрузку автоматически, т.е. требуется 1-н раз запустить обработку, и она по времени будет о...
Вопрос № 166.707
Доброго времени суток. Возникла следующая необходимость. Существует внешняя обработка, которая выгружает справочники. Возможно при помощи чего-либо выполнять выгрузку автоматически, т.е. требуется 1-н раз запустить обработку, и она по времени будет отрабатывать без ведома пользователя. Вресия 1с 7.7 ТиС. Нашёл какую-то функцию, что-то вроде таймера, но там проблема, что когда запускаешь, то ничего больше делать не даёт, идёт обратный отсчёт и всё!!! Заранее огромное спасибо.
Отправлен: 07.05.2009, 16:14
Вопрос задал: Лисов (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Владимир Лазурко
Здравствуйте, Лисов!
Если Вам необходимо выполнять какое-то действие через определенный промежуток времени, воспользуйтесь процедурой ОбработкаОжидания(<ИмяПроцедуры>, <ИнтервалВызова>).
Вот пример как это реализовано у меня: в глобальном модуле в процедуре ПриначалеРаботыСистемы я поместил ОбработкаОжидания("ПроверкаРабочейДаты", 60), которая каждые 60 секунд проверяет состояние рабочей даты и делает другие проверки. В моем примере в 3 часа ночи закрываютсмя все незавершенные
сеансы пользователей. А в 4-00 из планировщика Windows запускается Хранитель баз (infostart.ru), который базу переиндексирует и сохранит в архив:
Если РабочаяДата() < ПолучитьДатуТА() Тогда Предупреждение("Рабочая дата меньше даты актуальности! |Будьте внимательны!"); КонецЕсли; //РабочаячДата() < ПолучитьДатуТА()
...
Если Константа.ЗавершатьРаботуНаНочь=Перечисление.ДаНет.Да Тогда // отключаем сеансы в 3 часа ночи. Полезно всех выгнать для переиндексации базы. ч=0; м=0; с=0; ТекущееВремя(ч,м,с); Если ч=3 Тогда ЗавершитьРаботуСистемы(0); КонецЕсли;
//ч=2 КонецЕсли; КонецПроцедуры //ПроверкаРабочейДаты //_____________________________________________________________________________ // Процедура ПриНачалеРаботыСистемы()
...
Если (МонопольныйРежим()=1) и (глАдминистратор=1) Тогда Константа.ЗапретРаботы = 0; // "выгонялка" из базы Константа.ОписаниеЗавершения = ""; // описание завершения для выгонялк
и Константа.ЗавершатьРаботуНаНочь=Перечисление.ДаНет.Нет; // запрет работы ночью КонецЕсли;
P.S. Можем разобрать подробнее Вашу задачу в мини-форуме
--------- И как хотите, чтобы с вами поступали люди, так и вы поступайте с ними. (Евангелие от Луки, 6:31, совр. перевод)
Ответ отправил: Владимир Лазурко (статус: Практикант)
Ответ отправлен: 07.05.2009, 17:04
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 248796 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.