Ошибка в дилительных операциях

1. Ujine1313 10 15.11.22 14:05 Сейчас в теме
Коллеги, добрый день.
Есть отчет с длительным выполнением. Реализован через длительные операции БСП. На Тонком клиенте работает, но елси через веб запускать то выдает ошибку
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(102)}: Object method not found (ПрогрессВыполнения)
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(102)}: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОПрогрессеВыполнения, Прогресс);
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(70)}: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(20)}: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);
Найденные решения
13. spacecraft 16.11.22 16:37 Сейчас в теме
(12)
&НаСервере
Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт

Я бы начал с этого. Заменить &НаКлиенте.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. beldieff 15.11.22 14:34 Сейчас в теме
(1)
ВыполнитьОбработкуОповещения(ДлительнАЯОперациЯ.ОповещениеОПрогрессеВыполнения, Прогресс);
Точно так?
4. beldieff 15.11.22 14:35 Сейчас в теме
(3)хотя, наверно это какая-то переменная. что в ней?
6. spacecraft 15.11.22 14:50 Сейчас в теме
(1)
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(102)}: Object method not found (ПрогрессВыполнения)
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(102)}: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОПрогрессеВыполнения, Прогресс);

Это ошибка не из этого модуля. Просто 1С не знают на что ссылаться, вот и подставляет первое крайнее из определяемого из стека вызовов.
В ДлительнаяОперация.ОповещениеОПрогрессеВыполнения содержится описание оповещение. В котором указана вызываемая процедура "ПрогрессВыполнения", которая должна быть определена в модуле формы (предположительно). А ее там нет.
2. Ujine1313 10 15.11.22 14:31 Сейчас в теме
Нету такой функции в общем модуле.
Конфигурация на поддержке.
Прикрепленные файлы:
5. user1831019 15.11.22 14:41 Сейчас в теме
(2) Не там смотришь. Иди в модуль ДлительныеОперацииГлобальный и смотри, что там в строке 102.
7. Ujine1313 10 15.11.22 14:57 Сейчас в теме
Как я понял она ДлительнаяОперация.ОповещениеОПрогрессеВыполнения ссылается на общий модуль и там вызывает функцию
ОповещениеОПрогрессеВыполнения.
Прикрепленные файлы:
8. user1831019 15.11.22 15:01 Сейчас в теме
(7) Нет. Смотри, что такое ДлительнаяОперация (скорее всего структура), проверяй у неё наличие ключа "ОповещениеОПрогрессеВыполнения".
И ищи в модуле ДлительныеОперацииГлобальный процедуру ВыполнитьОбработкуОповещения() - что там ожидается в качестве первого параметра.

Отладчик, все такое...
9. spacecraft 15.11.22 15:06 Сейчас в теме
(8) не запутывай человека.
Глобальный контекст (Global context)
ВыполнитьОбработкуОповещения (ExecuteNotifyProcessing)
10. user1831019 15.11.22 15:14 Сейчас в теме
11. Ujine1313 10 15.11.22 16:03 Сейчас в теме
(9)
Вы правы - есть модуль формы в котором описано описание оповещения и само оповещение
В ДлительныеОперацииГлобальный
ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОПрогрессеВыполнения, Прогресс);

ДлительнаяОперация.ОповещениеОПрогрессеВыполнения - это структура в которой в ключе ОповещениеОПрогрессеВыполнения стоит функция ПрогрессВыполнения


Странно что в Тонком клиенте работает а в вебе не работает. и пока что не получается войти в отладку вевб клиента(
12. Ujine1313 10 16.11.22 16:29 Сейчас в теме
(9)прошу помощи, совсем не понимаю как так происходит и в чем прчиина.

в общем модуле ДлительныеОперацииГлобальный

Функция ПроконтролироватьДлительнуюОперацию(ДлительнаяОперация, Статус)
	
	Если Статус.Статус <> "Отменено" И ДлительнаяОперация.ОповещениеОПрогрессеВыполнения <> Неопределено Тогда
		Прогресс = Новый Структура;
		Прогресс.Вставить("Статус", Статус.Статус);
		Прогресс.Вставить("ИдентификаторЗадания", ДлительнаяОперация.ИдентификаторЗадания);
		Прогресс.Вставить("Прогресс", Статус.Прогресс);
		Прогресс.Вставить("Сообщения", Статус.Сообщения);
		ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОПрогрессеВыполнения, Прогресс);
	КонецЕсли;
....................
КонецФункции
Показать



ДлительнаяОперация.ОповещениеОПрогрессеВыполнения - это ОписаниеОповещения.
см. Скрин "ДлительнаяОперация Отладка"

Это Оповещения должно быть вызвано через:
ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОПрогрессеВыполнения, Прогресс);

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

см Скрин "ОписаниеОповещения"

НО когда запускается веб клиент то отладка не попадает в Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт и и платформа вываливает ошибку
{ОбщийМодуль.ДлительныеОперацииГлобальный.Модуль(102)}: Object method not found (ПрогрессВыполнения)

ЕСЛИ запускать в тонком/толстом клиенте то отладчик попадет в Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт
и все отрабатывает как надо.

Бонусом два срина (Веб клиент, тонкий клиент) с отладки с веб отладки и с тонкого клиента - на них все одинаковое.
Прикрепленные файлы:
13. spacecraft 16.11.22 16:37 Сейчас в теме
(12)
&НаСервере
Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт

Я бы начал с этого. Заменить &НаКлиенте.
14. Ujine1313 10 16.11.22 17:09 Сейчас в теме
(13)Спасибо добрый человек! Помогло.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот