Доброго дня!
Маю проблему при реалізаціх фонового завдання.
Платформа 8.3.10.2580
Ситуація наступна...
Створюю чисту базу без конфігурації. Ставлю основний режим запуску - ЗВИЧАЙНА програма (НЕ керований інтерфейс). База ФАЙЛОВА.
Пробую реалізувати елементарне фонове завдання, яке б періодично робило записи в регістр відомостей...
Створюю РВ "РегистрСведений1"
Створюю спільний модуль "ОбщийМодуль1" з процедурою Тест()...
Процедура Тест() Экспорт
Дата = ТекущаяДата();
Пока Истина Цикл
Если ТекущаяДата() >= Дата + 10 Тогда
Запись = РегистрыСведений.РегистрСведений1.СоздатьМенеджерЗаписи();
Запись.Дата = ТекущаяДата();
ЗАпись.Записать();
Дата = ТекущаяДата();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПриНачалеРаботыСистемы()
ВыполнитьОбработкуЗаданий();
ФоновыеЗадания.Выполнить("ОбщийМодуль1.Тест", , "Тест");
КонецПроцедуры
SaintDaemon @ Сегодня, 15:01
,
Посмотрите как в типовой, там указывается пользователь в константе под которым будет выполнятся Фоновое задание, в событии при открытие подключается Обработчик ожидание и пользователь должен быть запущен,
для файловый базы, если в SQL, то выполняется всё средствами SQL.
podcast @ Сегодня, 16:18
,
Це відповідь на яке запитання?
Та нащо мені ті типові заморочки) Хочу зрозуміти це все на елементарному рівні.
В мене тестова база - одне фонове завдання і немає користувачів взагалі.
Чому саме фонове працює, а з регл. завданням вже ні?
Чому при встановленні сумісності взагалі нічого не працює?
Ще уточню...
Коли я додаю регл. завдання, то я коментую рядок...
ФоновыеЗадания.Выполнить("ОбщийМодуль1.Тест", , "Тест");
Процедура Тест()
Запись = РегистрыСведений.РегистрСведений1.СоздатьМенеджерЗаписи();
Запись.Дата = ТекущаяДата();
ЗАпись.Записать();
КонецПроцедуры
SaintDaemon @ Сегодня, 17:16
,
Для того что бы запустить регламентное задание ему нужно Расписание когда выполнятся, почитайте думаю проясните.
http://pro1c.org.ua/redirect.php?http://wiki.kint.ru/index.php/%D0%A0%D0%B5%D0%B3%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B5_%D0%B8_%D1%84%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_(1Cv8)
podcast @ Вчера, 17:27
,
...та це ясно як білий день...
...зрозуміло, що я йому встановив розклад...поставив кожного дня, кожні деілька секунд...але результату ніякого...
У Вас файловая база. Вы пользователя регламентного задания указали? Без пользователя оно не запустится.
SaintDaemon @ Сегодня, 14:33
,
Скачайте обработку "Консоль заданий" и запустите в предприятии. Там разберетесь
Vidocq05 @ Сегодня, 14:45
,
В мене є консоль.
В табличній частині "Регламентні завдання" відображається моє завдання, але записи в регістрі не з'являються. Якщо я обираю користувача для завдання, то нічого не змінюється.
SaintDaemon @ Сегодня, 15:01
,
Я вам это и пытаюсь объяснить, в типовой конфигурации при начале работы системы есть проверка, если база файловая, тогда подключается обработчик ожидания для выполнения Регламентного задания, можно сделать обработку в которой подключите Обработчик ожидания для вашего Регламентного задания, или сделайте как в типовой.
Процедура ПриНачалеРаботыСистемы()
ЭтоФайловаяИБ = ОпределитьЭтаИнформационнаяБазаФайловая();
Если ЭтоФайловаяИБ Тогда
ПользовательДляВыполненияРеглЗаданий = Константы.ПользовательДляВыполненияРегламентныхЗаданийВФайловомВарианте.Получить();
Если мТекущийПользователь = ПользовательДляВыполненияРеглЗаданий Тогда
// с интервалом секунд вызываем процедуру работы с регламентными заданиями
ПоддержкаРегламентныхЗаданиеДляФайловойВерсии();
ПодключитьОбработчикОжидания("ПоддержкаРегламентныхЗаданиеДляФайловойВерсии", глЗначениеПеременной("глКоличествоСекундОпросаОбмена"));
ИнтервалДляОпроса = Константы.ИнтервалДляОпросаРегламентныхЗаданийВФайловомВарианте.Получить();
Если ИнтервалДляОпроса = Неопределено
ИЛИ ИнтервалДляОпроса = 0 Тогда
ИнтервалДляОпроса = 60;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПриНачалеРаботыСистемы()
Функция ОпределитьЭтаИнформационнаяБазаФайловая(СтрокаСоединенияСБД = "") Экспорт
СтрокаСоединенияСБД = ?(ПустаяСтрока(СтрокаСоединенияСБД), СтрокаСоединенияИнформационнойБазы(), СтрокаСоединенияСБД);
// в зависимости от того файловый это вариант БД или нет немного по-разному путь в БД формируется
ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "FILE=");
Возврат ПозицияПоиска = 1;
КонецФункции
// процедура служит для поддержки работы регламентных заданий в файловой версии
Процедура ПоддержкаРегламентныхЗаданиеДляФайловойВерсии() Экспорт
ВыполнитьОбработкуЗаданий();
КонецПроцедуры
podcast @ Сегодня, 15:16
,
Мене в цій ТЕСТОВІЙ базі не цікавлять такі заморочки)...результатом цих трьох ваших функцій/процедур все одно є рядок...
ВыполнитьОбработкуЗаданий();
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua