Вопрос № 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 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вы имеете возможность оценить этот выпуск рассылки. Нам очень важно Ваше мнение!
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.