| 
    
        
     
     | 
    
  | 
Создание внешней обработки для фонового регламентного задания | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:10 
 | 
         
        По примеру создал внешнюю обработку, необходимую для выполнения фонового регламентного задания.
 
        // Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка"); ПараметрыРегистрации.Вставить("Наименование", "Отправка уведомления на рассчитанную дату"); ПараметрыРегистрации.Вставить("Версия", "0.2"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); ПараметрыРегистрации.Вставить("Информация", "Отправка уведомления на рассчитанную дату"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Отправка уведомления на рассчитанную дату", "Идентификатор", "ВызовСерверногоМетода", Истина,""); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции // Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции // Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры // // Интерфейс для запуска логики обработки. Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = Неопределено) Экспорт ОтправкаУведомленияНаРаcсчитаннуюДату(); КонецПроцедуры // Процедура ОтправкаУведомленияНаРаcсчитаннуюДату() Экспорт Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Отправка уведомления на рассчитанную дату!" + ФОРМАТ(ТекущаяДата(), "ДЛФ=DT"); Сообщение.Сообщить(); КонецПроцедуры // Ставлю расписание выполнять, каждые три секунды. И думаю увидеть вывод сообщения, каждые три секунды. Но в фоновом задании пишется об ошибках. Подскажите пожалуйста, что я неправильно делаю?  | 
|||
| 
    1
    
        vicof    
     05.05.22 
            ✎
    13:11 
 | 
         
        Ты делаешь ошибки     
         | 
|||
| 
    2
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:15 
 | 
         
        Написана у фонового задания, такая ошибка
 
        Недостаточно фактических параметров для метода фонового задания . Сейчас такая ошибка Изменилась строка соединения информационной базы. Возможно информационная база была перемещена. Регламентное задание "Запуск дополнительных обработок" отключено. {ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(213)}: ВызватьИсключение ТекстИсключения; {ОбщийМодуль.ОбщегоНазначения.Модуль(5427)}: МодульБлокировкаРаботыСВнешнимиРесурсами.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание); {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(1744)}: ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ЗапускДополнительныхОбработок);  | 
|||
| 
    3
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:16 
 | 
         
        фоновое задание появляется само?
 
        Как я загружаю внешнюю обработку?  | 
|||
| 
    4
    
        Kassern    
     05.05.22 
            ✎
    13:16 
 | 
         
        (0) и кому вы решили это регламентом сообщать?
 
        Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Отправка уведомления на рассчитанную дату!" + ФОРМАТ(ТекущаяДата(), "ДЛФ=DT"); Сообщение.Сообщить();  | 
|||
| 
    5
    
        Kassern    
     05.05.22 
            ✎
    13:18 
 | 
         
        "Регламентное задание "Запуск дополнительных обработок" отключено." - так включите     
         | 
|||
| 
    6
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:21 
 | 
         
        (4) Я для тестирования на экран, что оно работает проверить
 
        (5) все вроде включено.  | 
|||
| 
    7
    
        Kassern    
     05.05.22 
            ✎
    13:23 
 | 
         
        (6) так вы поймите, что вам на экран ничего не выйдет, если мне не изменяет память. Хотите проверить, попробуйте что-то в базе записать, или файлик какой-нибудь создать, письмо там отправить.     
         | 
|||
| 
    8
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:23 
 | 
         
        (5) А где включить?     
         | 
|||
| 
    9
    
        Kassern    
     05.05.22 
            ✎
    13:24 
 | 
         
        и откуда вы взяли параметры для Выполнить команду?
 
        Вот так вроде должно быть: // Интерфейс для запуска логики обработки. Процедура ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения) Экспорт ..... КонецПроцедуры  | 
|||
| 
    10
    
        Kassern    
     05.05.22 
            ✎
    13:26 
 | 
         
        а вот так примерно выглядит процедура со сведениями
 
        Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.0.0.0"); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(); ПараметрыРегистрации.Версия = "1.1"; ПараметрыРегистрации.БезопасныйРежим = Ложь; НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = НСтр("ru = Имя вашего задания'"); НоваяКоманда.Идентификатор = "ИдентификаторЗадания"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(); НоваяКоманда.ПоказыватьОповещение = Истина; Возврат ПараметрыРегистрации; КонецФункции  | 
|||
| 
    11
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:34 
 | 
         
        (9) Взял из примера, на основе которого делаю.     
         | 
|||
| 
    12
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:34 
 | 
         
        (10) Я делаю по примеру имеющейся обработки.     
         | 
|||
| 
    13
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:35 
 | 
         
        как появляется фоновое задание?     
         | 
|||
| 
    14
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    13:36 
 | 
         
        как мне отладить (0) ?     
         | 
|||
| 
    15
    
        vicof    
     05.05.22 
            ✎
    13:53 
 | 
         
        (14) Поставить режим отладчик и запустить отладчик с подклчюенными фоновыми заданиями и отладкой на сервере.     
         | 
|||
| 
    16
    
        vicof    
     05.05.22 
            ✎
    13:54 
 | 
         
        режим отладки*     
         | 
|||
| 
    17
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    15:40 
 | 
         
        (15) Буду пробовать!!!!
 
        А то я реально осел, и стал затухать. Мне нужно разработать внешнее регламентное задание. Сделать его внешней обработкой. Что бы оно работало в фоне. Как внешняя обработка. Будет проверяться дата документа, и пользователям будут уходить уведомления. в определенный момент. Это можно сделать только регламентным заданием. Сказали делать его внешней обработкой. Что бы не захламлять внутренности. И показали одну наработку, она там что то на сайт отправляет, или считывает с него. Я ее переделал, на вывод сообщения пока. Но с фоновыми заданиями не работал же. И регламентными. ну так, не часто. Вот и сижу. глаза вылезли . От куда берется это фоновое задание, что то там нечайно удаляю, и тд. и тп. Нужно собраться и делать. Буду.  | 
|||
| 
    18
    
        Kassern    
     05.05.22 
            ✎
    15:49 
 | 
         
        (14) а смысл регламентные задания так ловить и отлаживать? Не проще поместить код во внешнюю обработку и проверить, что она работает. Просто нужно учитывать как работают регламентные задания, что там можно делать, а что нельзя. Если понимание есть, то без проблем ваш код, проверенный во внешней обработке будет работать в регламентном задании.     
         | 
|||
| 
    19
    
        Kassern    
     05.05.22 
            ✎
    15:51 
 | 
         
        всякие там оповещения на форму и т.д. не надо пихать в регламентные задания. если уж хотите оповестить, создайте задачу зверу, или письмо ему напишите. Так же сервер может не совпадать с вашей рабочей машинкой, это тоже нужно учитывать. Так же стоить понимать, под каким юзвером будет запускаться данное рег задание и есть ли у него права на исполнение этого кода.     
         | 
|||
| 
    20
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    15:57 
 | 
         
        (18) Я проверил во внешней обработке его. Там тольк овывод сообщения. Оно выводится. По кнопке с формы.
 
        // &НаКлиенте Процедура ОтправитьУведомление(Команда) ОтправитьУведомлениеНаСервере(); КонецПроцедуры // Процедура ОтправитьУведомлениеНаСервере() ДанныйОбъект = РеквизитФормыВЗначение("Объект"); ДанныйОбъект.ОтправкаУведомленияНаРаcсчитаннуюДату(); КонецПроцедуры // Дальше, я уже переделав, код модуля на тот что в (0), загружаю обработку во внешние. И делаю расписание. Запускать каждые три секунды например. И надеюсь вывод даты времени в сообщении, каждые три секунды на экране. Но что то не идет. Какие то ошибки. Я с непривычки, в шоке и не понимаю. что смотреть. Что где не так?!  | 
|||
| 
    21
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    15:58 
 | 
         
        (19) Пока просто доступ к регламентному фоновому заданию в отладке хотел получить и увидеть что выводятся сообщения.
 
        И уже настраиваться на свою задачу. На проверку даты в документе. И отправки уведомлений.  | 
|||
| 
    22
    
        Kassern    
     05.05.22 
            ✎
    15:59 
 | 
         
        (20) блин услышьте меня, не будет вам регламентное задание возвращать сообщение на форму, оно к ней не привязано     
         | 
|||
| 
    23
    
        Kassern    
     05.05.22 
            ✎
    15:59 
 | 
         
        (20) хотите проверить, тупо создайте текстовый файлик с сообщением на жестком диске.     
         | 
|||
| 
    24
    
        Fish    
     гуру 
    05.05.22 
            ✎
    16:01 
 | 
         
        Блин. ТС - это же LivingStar     
         | 
|||
| 
    25
    
        Kassern    
     05.05.22 
            ✎
    16:02 
 | 
         
        вы когда обычной обработкой сообщение пользователю делаете, у вас оно возвращается обратно на клиент, а регламентное задание без всякого клиента запускается, сразу на сервере, ему некуда возвращать сообщение     
         | 
|||
| 
    26
    
        Kassern    
     05.05.22 
            ✎
    16:03 
 | 
         
        (24) видите какой уже прогресс, уже с ЕРП работает)     
         | 
|||
| 
    27
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    16:09 
 | 
         
        (22) Понял! Извините, я не знал. Спасибо, за подсказку. Буду проверять как то тогда.
 
        Там какие то ошибки, шли, может из за этого конечно.  | 
|||
| 
    28
    
        nodrama    
     05.05.22 
            ✎
    16:17 
 | 
         
        Функция СведенияОВнешнейОбработке() Экспорт
 
        ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(); ПараметрыРегистрации.БезопасныйРежим = Ложь; НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); //представление команды в пользовательском режиме НоваяКоманда.Представление = "Команда1НаСервере"; НоваяКоманда.Идентификатор = НоваяКоманда.Представление; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(); Возврат ПараметрыРегистрации; КонецФункции Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт Если ИдентификаторКоманды = "Команда1НаСервере" Тогда Команда1НаСервере(); КонецЕсли; КонецФункции &НаСервере Процедура Команда1НаСервере() // Тут то что нужно сделать регламентным заданием. КонецПроцедуры Все работает, пользуйся, мб пригодится Далее расписание в обработке настраиваешь и усе  | 
|||
| 
    29
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    16:19 
 | 
         
        (28) Спасибо, я буду пробовать!
 
        В (0) взято сказали из работающей внешней обработки регламентного задания. Там больше процедур чем у вас, пока не знаю на сколько они все важны. Я буду проверять.  | 
|||
| 
    30
    
        nodrama    
     05.05.22 
            ✎
    16:30 
 | 
         
        (29) Ну моя точно работает, вчера создавал себе ))     
         | 
|||
| 
    31
    
        NIGHTHUNTER    
     05.05.22 
            ✎
    16:35 
 | 
         
        Ок, завтра буду проверять.
 
        Но отсутствующие процедуры, что в (0) тоже для чего то нужны. Что то куда то добавляют. Завтра буду настраивать.  | 
|||
| 
    32
    
        hhhh    
     05.05.22 
            ✎
    17:23 
 | 
         
        (31) в (0) у вас вообще старинный какой-то пример, наверно где-то 2009 года. Скопипастите более свежий пример этой функции СведенияОВнешнейОбработке() . в демобазе БСП посмотрите.     
         | 
|||
| 
    33
    
        Kassern    
     05.05.22 
            ✎
    17:24 
 | 
         
        (32) я ему уже привел выше прям код для этой процедуры верный     
         | 
|||
| 
    34
    
        NIGHTHUNTER    
     06.05.22 
            ✎
    03:31 
 | 
         
        Буду собирать сегодня.     
         | 
|||
| 
    35
    
        NIGHTHUNTER    
     06.05.22 
            ✎
    10:11 
 | 
         
        Создал я прототип необходимого регламентного фонового задания.
 
        Как сейчас его подключать? Загрузить в Администрирование - Печатные формы и обработки - Дополнительные отчеты и обработки ? Как оно должно появиться в Администрирование - Обслуживание - Регламентные операции - Регламентные и фоновые задания ?  | 
|||
| 
    36
    
        NIGHTHUNTER    
     06.05.22 
            ✎
    10:12 
 | 
         
        Как написали в (28) добавить нужно только в Администрирование - Печатные формы и обработки - Дополнительные отчеты и обработки и настроить расписание ?
 
        Тут само появится Администрирование - Обслуживание - Регламентные операции - Регламентные и фоновые задания ?  | 
|||
| 
    37
    
        Kassern    
     06.05.22 
            ✎
    10:13 
 | 
         
        (35) а вы добавьте и все увидите     
         | 
|||
| 
    38
    
        NIGHTHUNTER    
     06.05.22 
            ✎
    10:22 
 | 
         
        (37) Ясно, спасибо!     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |