Имя: Пароль:
1C
1С v8
ВызовСерверногоМетода во внешней обработке
0 dchumak
 
04.08.15
05:42
Добрый день.

Для УТ 11.1 создаю внешнюю обработку, чтобы запускалась по расписанию.
Для этого в сведениях о внешней обработке вызываю серверный метод, там можно настроить расписание.

Код модуля обработки:

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

Далее в модуле обработки создаю функцию, которая будет выполняться по расписанию.

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    ТФ = Новый ТекстовыйДокумент;
    
    ТФ.ДобавитьСтроку(СокрЛП(ТекущаяДата()));
    
    ТФ.Записать("C:\Выгрузка\Авто.txt");
    
КонецПроцедуры

вношу в нее например, такой код.

При попытке выполнить в журнале регистрации ошибка

Команда fb92f961-d081-40d9-9917-99502d802f49: Ошибка выполнения:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(2370)}: Команда fb92f961-d081-40d9-9917-99502d802f49 не обнаружена!
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

Что я делаю не так?
1 MaxS
 
04.08.15
06:29
Если УТ 11.1.10 и выше, то Функция СведенияОВнешнейОбработке() уже давно не так заполняется.
2 dchumak
 
04.08.15
08:04
УТ 11.1.7.49.
Подключается обработка нормально, ошибок нет.
Ошибки именно при выполнении команды.
3 MaxS
 
04.08.15
08:46
(2) Это может не работать:
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
Из-за чего возникает ошибка при выполнении "опасной" команды.
пмсм
4 PaulBC
 
04.08.15
08:52
Идентификатор – идентификатор команды; любая строка, уникальная в пределах данной обработки (отчета)

УникальныйИдентификатор - НЕ строка
5 MaxS
 
04.08.15
09:08
Например, в УТ 11.1.7.67 используется БСП 2.2.3.41.
Значит нужно заморачиваться профилями безопасности, либо писать примерно так:

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.7.1");
ПараметрыРегистрации.БезопасныйРежим = Ложь;
//...
2 + 2 = 3.9999999999999999999999999999999...