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

1С:Предприятие :: 1С:Предприятие 8 общая

Добавляю внешнюю обработку как команду на форму - "Слишком много фактических параметров"

Добавляю внешнюю обработку как команду на форму - "Слишком много фактических параметров"
Я
   Bahamut
 
03.12.18 - 03:55
Добрый день!
Ситуация следующая: необходимо добавить возможность создания и заполнения одного документа на основе другого не снимая конфигурацию с поддержки. Для этого я создал внешнюю обработку вида СозданиеСвязанныхОбъектов, в качестве назначения указал документ-основание, в таблицу команд добавил одну команду. При открытии документа в 1С видно, что команда успешно встроилась в меню "Создать на основании", но при попытке запуска выдаёт "Слишком много фактических параметров". У процедуры ВыполнитьКоманду 2 параметра, я пробовал задавать 10, пробовал 0 - итог один и тот же. Команда вызывается как серверный метод, но при использовании клиентского та же ситуация. Вот код из модуля обработки:

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "СозданиеСвязанныхОбъектов");

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

    );
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции

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

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

Процедура ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения) Экспор//(ИмяКоманды, ПараметрыВыполнения) Экспорт

    
    ВызватьИсключение("1231");
    // Диспетчеризация обработчиков команд.

    Если ИмяКоманды = "1" Тогда
        СоздатьДоговорИзЗаказа(ПараметрыВыполнения)//(ПараметрыВыполнения);

    КонецЕсли;
    
КонецПроцедуры

Программа не доходит даже до исключения. Гугл молчит, даже самые прошаренные мужи из офиса лишь хмурят брови.
 
 
   Bahamut
 
1 - 03.12.18 - 03:56
Случайно нажал на "отправить", не дописал сам вопрос. Так вот, в чём может быть проблема? Как это решить?

Заранее спасибо!
   Bahamut
 
2 - 03.12.18 - 04:02
Забыл уточнить:
УНФ 1.6.15.65
1С 8.3.10.2650
   Mankubus
 
3 - 03.12.18 - 06:52
(0) найди отладчиком место где вызывается твоя команда и посмотри сколько параметров туда передаётся
   МимохожийОднако
 
4 - 03.12.18 - 07:04
Оставь у процедуры ВыполнитьКоманду() только первый параметр
   Bahamut
 
5 - 04.12.18 - 07:34
Всё, разобрался. На инфостарте пишут, что если обработка вида СозданиеСвязанныхОбъектов, а команда - ВызовСерверногоМетода, то у процедуры ВыполнитьКоманду должно быть 4 параметра. У меня 1С почему-то ругалась на 4-й, поэтому я решил проблему так:

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения=Неопределено) Экспорт

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