Внешняя обработка. Назначение: ВызовСерверногоМетода. Не происходит запуск процедуры "ВыполнитьКоманду"

1. N2 3 06.03.17 11:34 Сейчас в теме
Коллеги, добрый день!

Имеется внешняя обработка, которую хочется запускать по расписанию. Проблема в том, что обработка подключается, а команда не выполняется. Пытаюсь понять, что делаю не так...

Функция СведенияОВнешнейОбработке() Экспорт

    Структура = Новый Структура;
    Структура.Вставить("Вид",             Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка);
    Структура.Вставить("Наименование",    "И буква превращается в число");
    Структура.Вставить("Версия",          "1.00");
    Структура.Вставить("БезопасныйРежим", Истина);
    Структура.Вставить("Информация",      "");
	Структура.Вставить("ВерсияБСП",      "");

    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Идентификатор");
    Команды.Колонки.Добавить("Представление");
    Команды.Колонки.Добавить("Модификатор");
    Команды.Колонки.Добавить("ПоказыватьОповещение");
    Команды.Колонки.Добавить("Использование");

	
    НоваяСтрока = Команды.Добавить();
    НоваяСтрока.Идентификатор = "ПревратитьБукву";
    НоваяСтрока.Представление = "Превратить букву в число";
    НоваяСтрока.Модификатор   = "";
    НоваяСтрока.ПоказыватьОповещение = Истина;
    НоваяСтрока.Использование = "ВызовСерверногоМетода";

    Структура.Вставить("Команды", Команды);

    Возврат Структура;

КонецФункции


Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды = Неопределено) Экспорт
	
	А = Число("А");
	
КонецПроцедуры

Показать
Найденные решения
8. Rokky78 41 06.03.17 13:54 Сейчас в теме
Замените

Структура.Вставить("Вид",             Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка);

на
Структура.Вставить("Вид",             ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка());

и будет счастье.

Самому стало интересно. Только с отладчиком разобрался.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 06.03.17 12:33 Сейчас в теме
(1)
Структура.Вставить("ВерсияБСП", "");

версию БСП нужно указать. Возможно будет достаточно указать "*".
4. N2 3 06.03.17 13:01 Сейчас в теме
(2), (3)
Заменил
Структура.Вставить("ВерсияБСП",      "");


На
Структура.Вставить("ВерсияБСП",      "2.3.3.43");


К сожалению, результат не изменился. Что интересно
Использование = "ВызовКлиентскогоМетода";
замечательно вызывает из формы ВыполнитьКоманду, в том числе без указания версии БСП.
5. spacecraft 06.03.17 13:30 Сейчас в теме
(4) версияБСП лучше вообще не использовать.
И как определили, что "команда не выполняется" ?
6. N2 3 06.03.17 13:50 Сейчас в теме
(5) Олег, а что лучше использовать?

И как определили, что "команда не выполняется" ?


Логика в процедуре ВыполнитьКоманду не выполнялась. Для теста указал конструкцию
А = Число("А");
, которая должна вываливаться в исключительную ситуацию. У Вас оно работает?



12. spacecraft 06.03.17 14:02 Сейчас в теме
(6) она не вывалился в исключение для пользователя. ВызовСерверногоМетода подразумевает выполнение команды на сервере. В данном случае будет прерван метод и произведена запись в технологический журнал об ошибке.
15. N2 3 06.03.17 15:17 Сейчас в теме
(12) Вываливается это так (прикрепил скрин)

(13), (14) Для печатных тоже всегда прописывал строкой, подумал, что перечислением более правильно, теперь буду использовать метод Михаила, тем более он и в примерах из БСП применяется.

Всем спасибо за участие!
Прикрепленные файлы:
16. user633533_encantado 11 06.03.17 16:05 Сейчас в теме
(15) Все равно не по феншую, надо использовать БСП:

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

	
КонецФункции
Показать
3. user633533_encantado 11 06.03.17 12:51 Сейчас в теме
Как верно заметил (1) в зависимости от версии бсп в процедуру "выполнить команду" может передаваться разное количество параметров.
7. mitia.mackarevich 75 06.03.17 13:54 Сейчас в теме
В каком режиме у вас подключена обработка? Поставьте фиксацию в журнал регистрации и посмотрите выполняется она или нет.
8. Rokky78 41 06.03.17 13:54 Сейчас в теме
Замените

Структура.Вставить("Вид",             Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка);

на
Структура.Вставить("Вид",             ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка());

и будет счастье.

Самому стало интересно. Только с отладчиком разобрался.
9. Rokky78 41 06.03.17 13:57 Сейчас в теме
Функция ДополнительныеОтчетыИОбработки.ПолучитьВидОбработкиПоСтроковомуПредставлениюВида(СтроковоеПредставление)

В Вашем случае СтроковоеПредставление = "Дополнительная обработка"
Во втором = "ДополнительнаяОбработка"

Никогда бы не подумал, что тут может быть загвоздка.
10. N2 3 06.03.17 13:59 Сейчас в теме
(9) Спасибо Вам добрый человек!!!

13. spacecraft 06.03.17 14:08 Сейчас в теме
(9) всегда прописываю просто строкой "ДополнительнаяОбработка". Не понимаю получение этого значения отдельно. Оно никогда не меняется.
14. Rokky78 41 06.03.17 14:16 Сейчас в теме
(13) Конечно, можно строку передать. Я когда начинал с управляемыми работать тоже строку всегда передавал. Только потом постепенно, глядя на типовые, стал использовать функцию общего модуля. Но никогда не использовал Перечисление, как ТС. Поэтому и ошибку эту не встречал.
11. Rokky78 41 06.03.17 14:02 Сейчас в теме
Пожалуйста. Тем более, что я сам чему то научился. ))
Оставьте свое сообщение

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