Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запуск фонового завдання , Запуск фонового завдання при сумісності з 8.2.13          
SaintDaemon Подменю пользователя
сообщение 07.11.17, 15:01
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня!
Маю проблему при реалізаціх фонового завдання.
Платформа 8.3.10.2580
Ситуація наступна...
Створюю чисту базу без конфігурації. Ставлю основний режим запуску - ЗВИЧАЙНА програма (НЕ керований інтерфейс). База ФАЙЛОВА.
Пробую реалізувати елементарне фонове завдання, яке б періодично робило записи в регістр відомостей...
Створюю РВ "РегистрСведений1"
Створюю спільний модуль "ОбщийМодуль1" з процедурою Тест()...

Процедура Тест() Экспорт
    Дата = ТекущаяДата();    
    Пока Истина Цикл
        Если ТекущаяДата() >= Дата + 10 Тогда
            Запись = РегистрыСведений.РегистрСведений1.СоздатьМенеджерЗаписи();
            Запись.Дата = ТекущаяДата();
            ЗАпись.Записать();
            
            Дата = ТекущаяДата();
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры


В модулі звичайної програми (общего приложения) додаю...

Процедура ПриНачалеРаботыСистемы()
    ВыполнитьОбработкуЗаданий();
    ФоновыеЗадания.Выполнить("ОбщийМодуль1.Тест", , "Тест");
КонецПроцедуры


В результаті - все працює. Записи в регістрі з'являються з періодичністю в 10 сек.

Питання перше: як це правильно зробити за допомогою регламентного завдання? Я пробував додати завдання, вказати періодичність, процедуру, ставив галочку "Напередвизначене", але все одно не працює.
Питання друге: чому навіть перший варіант (без регл. завдання) не працює, якщо у властивостях конфігурації поставити сумісність з версією 8.2.13?? Насправді потрібно доробити конфігурацію, в якої ця сумісність стоїть.

podcast Подменю пользователя
сообщение 07.11.17, 16:18
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

SaintDaemon @ Сегодня, 15:01 * ,
Посмотрите как в типовой, там указывается пользователь в константе под которым будет выполнятся Фоновое задание, в событии при открытие подключается Обработчик ожидание и пользователь должен быть запущен,
для файловый базы, если в SQL, то выполняется всё средствами SQL.

SaintDaemon Подменю пользователя
сообщение 07.11.17, 17:16
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

podcast @ Сегодня, 16:18 * ,
Це відповідь на яке запитання?
Та нащо мені ті типові заморочки) Хочу зрозуміти це все на елементарному рівні.
В мене тестова база - одне фонове завдання і немає користувачів взагалі.
Чому саме фонове працює, а з регл. завданням вже ні?
Чому при встановленні сумісності взагалі нічого не працює?

Ще уточню...
Коли я додаю регл. завдання, то я коментую рядок...
ФоновыеЗадания.Выполнить("ОбщийМодуль1.Тест", , "Тест");

...бо фонове завдання (я так розумію) має саме запускатись з регламентним...
...і міняю процедуру Тест(), щоб вона робила тільки один запис в регістр, бо циклічність (я так розумію) має забезпечити розклад регламентного завдання...

Процедура Тест() 
      Запись = РегистрыСведений.РегистрСведений1.СоздатьМенеджерЗаписи();
      Запись.Дата = ТекущаяДата();
      ЗАпись.Записать();
КонецПроцедуры

podcast Подменю пользователя
сообщение 07.11.17, 17:27
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

SaintDaemon @ Сегодня, 17:16 * ,
Для того что бы запустить регламентное задание ему нужно Расписание когда выполнятся, почитайте думаю проясните.
[необходимо зарегистрироваться для просмотра ссылки]

SaintDaemon Подменю пользователя
сообщение 08.11.17, 8:33
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

podcast @ Вчера, 17:27 * ,
...та це ясно як білий день...
...зрозуміло, що я йому встановив розклад...поставив кожного дня, кожні деілька секунд...але результату ніякого...

Vidocq05 Подменю пользователя
сообщение 08.11.17, 13:22
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

У Вас файловая база. Вы пользователя регламентного задания указали? Без пользователя оно не запустится.

SaintDaemon Подменю пользователя
сообщение 08.11.17, 13:33
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 13:22 * ,
...де його вказувати?...

Vidocq05 Подменю пользователя
сообщение 08.11.17, 14:45
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

SaintDaemon @ Сегодня, 14:33 * ,
Скачайте обработку "Консоль заданий" и запустите в предприятии. Там разберетесь

SaintDaemon Подменю пользователя
сообщение 08.11.17, 15:01
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 14:45 * ,
В мене є консоль.
В табличній частині "Регламентні завдання" відображається моє завдання, але записи в регістрі не з'являються. Якщо я обираю користувача для завдання, то нічого не змінюється.

podcast Подменю пользователя
сообщение 08.11.17, 15:16
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

SaintDaemon @ Сегодня, 15:01 * ,
Я вам это и пытаюсь объяснить, в типовой конфигурации при начале работы системы есть проверка, если база файловая, тогда подключается обработчик ожидания для выполнения Регламентного задания, можно сделать обработку в которой подключите Обработчик ожидания для вашего Регламентного задания, или сделайте как в типовой.
Процедура ПриНачалеРаботыСистемы()
    ЭтоФайловаяИБ = ОпределитьЭтаИнформационнаяБазаФайловая();
        
    Если ЭтоФайловаяИБ Тогда
                    
        ПользовательДляВыполненияРеглЗаданий = Константы.ПользовательДляВыполненияРегламентныхЗаданийВФайловомВарианте.Получить();
        
        Если мТекущийПользователь = ПользовательДляВыполненияРеглЗаданий Тогда
            
            // с интервалом секунд вызываем процедуру работы с регламентными заданиями
            ПоддержкаРегламентныхЗаданиеДляФайловойВерсии();
            
            ПодключитьОбработчикОжидания("ПоддержкаРегламентныхЗаданиеДляФайловойВерсии", глЗначениеПеременной("глКоличествоСекундОпросаОбмена"));
            
            ИнтервалДляОпроса = Константы.ИнтервалДляОпросаРегламентныхЗаданийВФайловомВарианте.Получить();
            
            Если ИнтервалДляОпроса = Неопределено
                ИЛИ ИнтервалДляОпроса = 0 Тогда
                
                ИнтервалДляОпроса = 60;    
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЕсли;
КонецПроцедуры // ПриНачалеРаботыСистемы()


Функция ОпределитьЭтаИнформационнаяБазаФайловая(СтрокаСоединенияСБД = "") Экспорт
            
    СтрокаСоединенияСБД = ?(ПустаяСтрока(СтрокаСоединенияСБД), СтрокаСоединенияИнформационнойБазы(), СтрокаСоединенияСБД);
    
    // в зависимости от того файловый это вариант БД или нет немного по-разному путь в БД формируется
    ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "FILE=");
    
    Возврат ПозицияПоиска = 1;    
    
КонецФункции

// процедура служит для поддержки работы регламентных заданий в файловой версии
Процедура ПоддержкаРегламентныхЗаданиеДляФайловойВерсии() Экспорт
    
    ВыполнитьОбработкуЗаданий();
    
КонецПроцедуры

Спасибо сказали: MATEVI,

SaintDaemon Подменю пользователя
сообщение 08.11.17, 16:21
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0

podcast @ Сегодня, 15:16 * ,
Мене в цій ТЕСТОВІЙ базі не цікавлять такі заморочки)...результатом цих трьох ваших функцій/процедур все одно є рядок...
ВыполнитьОбработкуЗаданий();

...в мене він точно так само прописаний в процедурі ПриНачалеРаботыСистемы() (я це все писав вище)...правда, на відміну від типових без констант, обробників очікувань і без прив'язки до конкретного користувача - без всього зайвого...я намагаюсь реалізувати найпростіший варіант...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 23:53
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!