|
Добавляю внешнюю обработку как команду на форму - "Слишком много фактических параметров" | ☑ | ||
---|---|---|---|---|
0
Bahamut
03.12.18
✎
03:55
|
Добрый день!
Ситуация следующая: необходимо добавить возможность создания и заполнения одного документа на основе другого не снимая конфигурацию с поддержки. Для этого я создал внешнюю обработку вида СозданиеСвязанныхОбъектов, в качестве назначения указал документ-основание, в таблицу команд добавил одну команду. При открытии документа в 1С видно, что команда успешно встроилась в меню "Создать на основании", но при попытке запуска выдаёт "Слишком много фактических параметров". У процедуры ВыполнитьКоманду 2 параметра, я пробовал задавать 10, пробовал 0 - итог один и тот же. Команда вызывается как серверный метод, но при использовании клиентского та же ситуация. Вот код из модуля обработки: Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "СозданиеСвязанныхОбъектов"); ПараметрыРегистрации.Вставить("Наименование", "Договор на основании заказа"); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); ПараметрыРегистрации.Вставить("Информация", "Договор на основании заказа"); ПараметрыРегистрации.Вставить("ВерсияБСП", "2.0.7.6"); МассивНазначений = Новый Массив(); МассивНазначений.Добавить("Документ.ЗаказПокупателя"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Договор на основании заказа", "1", "ВызовСерверногоМетода", Истина,"" ); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Процедура ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения) Экспорт//(ИмяКоманды, ПараметрыВыполнения) Экспорт ВызватьИсключение("1231"); // Диспетчеризация обработчиков команд. Если ИмяКоманды = "1" Тогда СоздатьДоговорИзЗаказа(ПараметрыВыполнения);//(ПараметрыВыполнения); КонецЕсли; КонецПроцедуры Программа не доходит даже до исключения. Гугл молчит, даже самые прошаренные мужи из офиса лишь хмурят брови. |
|||
1
Bahamut
03.12.18
✎
03:56
|
Случайно нажал на "отправить", не дописал сам вопрос. Так вот, в чём может быть проблема? Как это решить?
Заранее спасибо! |
|||
2
Bahamut
03.12.18
✎
04:02
|
Забыл уточнить:
УНФ 1.6.15.65 1С 8.3.10.2650 |
|||
3
Mankubus
03.12.18
✎
06:52
|
(0) найди отладчиком место где вызывается твоя команда и посмотри сколько параметров туда передаётся
|
|||
4
Мимохожий Однако
03.12.18
✎
07:04
|
Оставь у процедуры ВыполнитьКоманду() только первый параметр
|
|||
5
Bahamut
04.12.18
✎
07:34
|
Всё, разобрался. На инфостарте пишут, что если обработка вида СозданиеСвязанныхОбъектов, а команда - ВызовСерверногоМетода, то у процедуры ВыполнитьКоманду должно быть 4 параметра. У меня 1С почему-то ругалась на 4-й, поэтому я решил проблему так:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения=Неопределено) Экспорт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |