Вход | Регистрация



Запуск внешних обработок по регламентному заданию. Управляемые формы.

Запуск внешних обработок по регламентному заданию. Управляемые формы.
Я
   MakaMaka
 
26.03.18 - 08:32
Всем привет. Недавно тут ковырял запуск внешних обработок по регламентному заданию и столкнулся с проблемой. Что бы решить проблему, мне надо понять, откуда берутся некоторые параметры.

Итак: запуск регламентного задания начинается, с обращения к самому регламентному заданию, оно называется  :
- «ЗапускДополнительныхОбработок»;
Это самое регламентное задание обращается к процедуре:
- «Процедура ВыполнитьОбработкуПоРегламентномуЗаданию(ВнешняяОбработка, ИдентификаторКоманды) Экспорт». (Поискал глобальным поиском, больше вызовов процедуры ВыполнитьОбработкуПоРегламентномуЗаданию не нашел.)

У меня вопрос к знатокам, где заполняются параметры процедуры? В каком месте конфигурации? Или это делается не программно, а на уровне платформы?
 
 
   Cyberhawk
 
1 - 26.03.18 - 08:34
У метода РЗ, представленного внешней обработкой, не может быть параметров
   MakaMaka
 
2 - 26.03.18 - 08:39
(1) Параметры в процедуре ВыполнитьОбработкуПоРегламентномуЗаданию, там 2 параметра :
1. ВнешняяОбработка - ссылка на внешнюю обработку;
2. ИдентификаторКоманды - идентификатор выполняемой команды;
   Cyberhawk
 
3 - 26.03.18 - 08:43
Я вроде не спрашивал, чего ты там и где задаешь, так что зачем ты это мне написал - Я хз
   MakaMaka
 
4 - 26.03.18 - 08:43
В общем суть в том, что в одной УТ обработка при выполнении, через регламентное задание отрабатывает, в другой УТ (старой версии, не отрабатывает).

В новой версии когда ставлю точку останова в процедуре ВыполнитьОбработкуПоРегламентномуЗаданию параметры заполнены правильно, т.е.
1. ВнешняяОбработка - ссылка на внешнюю обработку;
2. ИдентификаторКоманды - идентификатор выполняемой команды;

В старой версии УТ, они перепутаны: 
1. ВнешняяОбработка - идентификатор выполняемой команды;
2. ИдентификаторКоманды - ссылка на внешнюю обработку;

А проблема, в том, что я не понимаю где заполняются параметры, т.к. на процедуру ссылается только Регл. Задание "ЗапускДополнительныхОбработок" и параметры в нее как то подставляются, а где происходит их определение я не понимаю.
   МимохожийОднако
 
5 - 26.03.18 - 08:44
(0) "Столкнулся с проблемой".Так какая проблема?
   MakaMaka
 
6 - 26.03.18 - 08:46
(5) см.(4)
   МимохожийОднако
 
7 - 26.03.18 - 08:50
УТ10?
   МимохожийОднако
 
8 - 26.03.18 - 08:51
Сравни процедуры регистрации в модулях обработок.
   MakaMaka
 
9 - 26.03.18 - 08:51
(7) Нет, 11, управляемые формы.
   MakaMaka
 
10 - 26.03.18 - 08:51
(8) Одна и та же обработка, процедуры регистрации идентичны.
 
 Рекламное место пустует
   MakaMaka
 
11 - 26.03.18 - 08:55
Есть вариант поменять местами параметры, т.е. 
1. Так было: Процедура ВыполнитьОбработкуПоРегламентномуЗаданию(ВнешняяОбработка, ИдентификаторКоманды) Экспорт;
2. Так стало: Процедура ВыполнитьОбработкуПоРегламентномуЗаданию( ИдентификаторКоманды, ВнешняяОбработка) Экспорт

Но очень хочется разобраться, понять, что же там все таки происходит.
   МимохожийОднако
 
12 - 26.03.18 - 09:04
Если ты смог встать отладчиком и дойти до точки останова, то сможешь по стеку процедур выйти на точку запуска обработки, которая, скорее всего, размещена во временном файле. Описание сего "чуда" изложено в документации БСП. Выясни какое БСП у тебя в конфигурации и почитай.
   MakaMaka
 
13 - 26.03.18 - 09:10
(12) Когда я встаю отладчиком на процедуру ВыполнитьОбработкуПоРегламентномуЗаданию, то мне не показано откуда она вызывается, он первая в стеке вызовов.

Где взять документацию на БСП? В комплекте поставки с сайта, юзерс? или на ИТС есть?
   MakaMaka
 
14 - 26.03.18 - 09:13
(12) Даже с БСП засада, в базе указан номер версии: 1.0.6.16, на сайте ИТС не нашел ничего про нее, на сайте юзерс такого тоже нету (
   MakaMaka
 
15 - 26.03.18 - 09:16
Гугл о моей версии бсп выдает 2 ссылки:
https://www.forum.mista.ru/topic.php?id=504802 (датировано 2010 годом)
И тему на варезнике, от 2013 года.
Засада...
   МимохожийОднако
 
16 - 26.03.18 - 09:34
Какая у тебя конфигурация УТ? Номер
   MakaMaka
 
17 - 26.03.18 - 09:39
(16) Управление торговлей, редакция 11 (11.0.4.6)
   МимохожийОднако
 
18 - 26.03.18 - 09:52
(13) Файловая или клиент-серверная база. Дальше отладчиком не шагается? Включи отладку регламентного задания в конфигураторе.
   MakaMaka
 
19 - 26.03.18 - 09:57
(18) База клиент серверная.
Кофигуратором могу прошагать следующий путь:
1. ВыполнитьОбработкуПоРегламентномуЗаданию
2. Процедура НачалоВыполненияОбработки(ДополнительнаяОбработкаСсылка, ИдентификаторКоманды)
(в процедуре готовится текст сообщения, который будет записан в ЖР;
3. ЗаписатьСобытиеВЖурналРегистрации(ДополнительнаяОбработкаСсылка, ТекстСообщения) - тут ошибка, т.к. идет обращение к метаданным первого параметра, а это у меня строковый тип;

Весь текст процедуры, где происходит ошибка: 
Процедура ЗаписатьСобытиеВЖурналРегистрации(ДополнительнаяОбработкаСсылка, ТекстСообщения)
    
ЗаписьЖурналаРегистрации(НСтр("ru = 'Дополнительные отчеты и обработки'"),
УровеньЖурналаРегистрации.Информация,
ДополнительнаяОбработкаСсылка.Метаданные(), ДополнительнаяОбработкаСсылка, ТекстСообщения);
    КонецПроцедуры
   MakaMaka
 
20 - 26.03.18 - 09:58
(18) отладка фоновых заданий в конфигураторе включена.
   МимохожийОднако
 
21 - 26.03.18 - 10:00
Включи отладку на сервере. Параметр -debug в службе агента 1С
   MakaMaka
 
22 - 26.03.18 - 10:01
Выполнение отваливается при обращении ДополнительнаяОбработкаСсылка.Метаданные(), т.к. параметры у меня перепутаны и тип параметра ДополнительнаяОбработкаСсылка - строка.
   MakaMaka
 
23 - 26.03.18 - 10:03
(21) Тогда я увижу откуда вызывается процедура ВыполнитьОбработкуПоРегламентномуЗаданию ?
   MakaMaka
 
24 - 26.03.18 - 10:13
Поправка, Версия БСП: 2.1.8.4. В РС Находится не корректная информация.
   MakaMaka
 
25 - 26.03.18 - 10:36
Только это ничего не меняет. Откуда заполняется процедура не понятно.
   MakaMaka
 
26 - 26.03.18 - 11:12
При ручном запуске регламентного задания, в недрах общих модулей, вызывается процедура
Процедура ОбработатьРегламентноеЗаданиеВручную(Знач Задание,
                                               МоментЗапуска = Неопределено,
                                               ИдентификаторФоновогоЗадания = "") Экспорт

    ВызватьИсключениеЕслиНетПраваАдминистрирования();
    
    Задание = ?(ТипЗнч(Задание) = Тип("РегламентноеЗадание"), Задание, ПолучитьРегламентноеЗадание(Задание));
    
    Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
        ОбработатьРегламентноеЗадание(Задание, Истина, МоментЗапуска, ИдентификаторФоновогоЗадания);
        // Обновление состояния уже выполнено в вызванной процедуре.

    Иначе
        НачатьТранзакцию();
        Попытка
            Состояние = ПолучитьСостояниеОбработкиРегламентныхЗаданий(Истина);
            НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Запуск вручную: %1'"), ПредставлениеРегламентногоЗадания(Задание));
            ФоновоеЗадание = ФоновыеЗадания.Выполнить(Задание.Метаданные.ИмяМетода, Задание.Параметры, Задание.Ключ, НаименованиеФоновогоЗадания);
            ИдентификаторФоновогоЗадания = Строка(ФоновоеЗадание.УникальныйИдентификатор);
            Состояние.Соответствие_ИФЗ_ИРЗ_ЗапущенныеНаСервереВручную.Вставить( ИдентификаторФоновогоЗадания, Строка(Задание.УникальныйИдентификатор) );
            МоментЗапуска = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Начало;
            ОбновитьСостояниеОбработкиРегламентныхЗаданий(Состояние);
            ЗафиксироватьТранзакцию();
        Исключение
            ОтменитьТранзакцию();
            ВызватьИсключение;
        КонецПопытки;
    КонецЕсли;
    
КонецПроцедуры// ОбработатьРегламентноеЗаданиеВручную()



Буду дальше рыть.
   MakaMaka
 
27 - 26.03.18 - 11:51
up
   Cyberhawk
 
28 - 26.03.18 - 20:06
Сколько платят за решение вопроса?
   МимохожийОднако
 
29 - 26.03.18 - 20:19


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует