Взять паузу. БТС

Отлаживал обмен с сайтом в режиме отладки. Получил ошибку:

Ошибка при вызове метода контекста (ВызватьПаузу)
{ОбщийМодуль.ОбщегоНазначенияБТС.Модуль(515)}:ВызватьПаузу(Секунд * 1000);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(13614)}:ОбщегоНазначенияБТС.Пауза(5);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(3588)}:Успешно = ВыгрузитьНаСайт(Параметры, МассивПодкаталогов, ОписаниеОшибки, Параметры.ОжидатьЗавершенияИмпортаФайловСервером);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(3002)}:ВыгрузкаЦенУспешно = ВыгрузитьКаталогПредложенияНаСайт(Параметры, СтрокаТаблицыИнформации, ИмяФайлаОбменаИндекс);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(3416)}:Успешно = ВыгрузитьНоменклатуруВКаталогНаДискеИСайт(Параметры, СтрокаТаблицыИнформации);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(2213)}:ТоварыУспешноВыгружены = ВыгрузитьНоменклатуру(Параметры);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(1991)}:НСтр("ru = 'Интерактивный обмен'"),
{(1)}:ИнтеграцияСИнтернетМагазиномСервер.ВыполнитьОбменИнтерактивно(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6455)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; // АПК:487 Исполняемый код безопасен.
{ОбщийМодуль.ДлительныеОперации.Модуль(1715)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(542)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения);
{Справочник.НастройкиИнтеграцииСИнтернетМагазином.Форма.ФормаВыполнениеОбмена.Форма(103)}:Результат = ДлительныеОперации.ВыполнитьВФоне("ИнтеграцияСИнтернетМагазиномСервер.ВыполнитьОбменИнтерактивно",

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Использование метода ВызватьПаузу (CallSleep) в клиент-серверном вызове запрещено
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]

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

В итоге сделал функциональную заплатку:

&Вместо("Пауза")
Процедура дор_Пауза(Секунд)
	//Чтобы не вылетало
	Попытка
		ПродолжитьВызов(Секунд);
	Исключение     
		//По старинке
		ДатаВыхода = ТекущаяДата() + Секунд;
		Пока ТекущаяДата() < ДатаВыхода Цикл
			//ОбработкаПрерыванияПользователя();
		КонецЦикла;
	КонецПопытки;
КонецПроцедуры

Можно было конечно анализировать, это фоновое задание, браузер или нет. Но пока так. Бракоделы!

Среда: УНФ 3.0.13.238. Объем 0.3 час.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 4

  1. Ааа:

    ВызватьПаузу() платформенный метод. Читай доку и юзай правильную версию платформы. Костыльное решение проблемы созданной собственными кривыми руками

    • есть один нюанс — проблема в типовой конфигурации, они вызывают не тот метод. бракоделы, сэр.
      в тексте об этом специально указано.

    • В:

      ВызватьПаузу — урезанная пауза, которая работает только внутри фонового задания или веб\http сервиса. В обычном сеансе она вызывает ошибку.

      • спасибо, КЭП, теперь расскажите об этом 1С, которая забыла, что код может выполняться с параметром РежимОтладки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *