Имя: Пароль:
1C
 
8.3 ЗУп добавление внешки
,
0 Nemirov
 
20.03.20
09:27
При добавлении внешки выдает ошибку Команда "Выгрузка" не выполнена:
Метод объекта не обнаружен (ВыполнитьКоманду)
Я так понял не хватает некой экспортной процедуры "ВыполнитьКоманду", полазив в конфе у себя нигде не нашел может подскажите, код брал с форума и переделывал под себя. Видимо не весь код был на форуме. Спасибо!!!

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ВыгрузкаЗП")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
1 strange2007
 
20.03.20
09:44
что такое "внешка"? Внешний сотр?
2 Фрэнки
 
20.03.20
09:46
не. Это пытаются вкорячить внешнюю печатную форму.
3 Фрэнки
 
20.03.20
09:47
Или внешнюю обработку.
4 strange2007
 
20.03.20
09:50
Или внешнюю обработку формы. Или через расширение что-то добавить. Или...
5 hhhh
 
20.03.20
10:32
(0) это у вас старинный какой-то код. Сейчас в новом БСП по-другому надо
6 SadrArt
 
20.03.20
11:04
(0) много исходной информации не хватает, о чём как бы намекнули в (1) (2) (3) (4), потренируюсь в телепатии:
вот эта строка ДобавитьКоманду(ТаблицаКоманд, "Выгрузка","Выгрузка","ВызовСерверногоМетода", Истина,"ВыгрузкаЗП");  

точно нужен "ВызовСерверногоМетода"? тогда, во-первых, выглядеть эта строка должна вот так ДобавитьКоманду(ТаблицаКоманд, "Выгрузка","Выгрузка","ВызовСерверногоМетода");  во - вторых в модуле обработки должен быть соответствующий экспортный метод (ВыполнитьКоманду)
7 Nemirov
 
20.03.20
11:23
(1) Ну если видите код, то ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка") как думаете о чем идет речь
8 Nemirov
 
20.03.20
11:25
Ну что бы добавить дополнительную обработку там не обходимо в модуле прописать ряд процедур). Нашел код которым часто пользуются при создании внешней обработки, но при настройке списка и добавлении обработки вылетает ошибка которую я привел изначально.
9 strange2007
 
20.03.20
11:44
(7) >> как думаете о чем идет речь
Ни о чём. Абсолютно. Пока сокращаете наименования, согласно личному представлению, там может быть что угодно. Например, захотел внешний отчёт, а написал про обработку. Может быть? Раз есть ошибка, которую не можешь решить, значит может быть.

Если про внешнюю обработку, то я использую вот такой шаблон (вроде рабочий):

#Область Регистрация_БСП

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

    // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();

    // Версия БСП нужня для того, чтобы вызов был современный. Проверка идёт на
    // версию 1.2.1.4. Надо поставить что-то побольше
    ПараметрыРегистрации.ВерсияБСП = "8.3.11.3034";

    // Список назначений в формате Вид.Тип
    //ПараметрыРегистрации.Назначение.Добавить("Документ.Отпуск");

    // Вид, в совокупности с типом (использование) указывает БСП что за обработка и что она делать будет
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();

    // Информационная часть
    ПараметрыРегистрации.Наименование = "Очистка перерасчётов";
    ПараметрыРегистрации.Информация = "Очистка перерасчётов";
    ПараметрыРегистрации.Версия = "28.12.2018";        // создание

    // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
    ПараметрыРегистрации.БезопасныйРежим = Истина;
    //ПараметрыРегистрации.БезопасныйРежим = Ложь;

    // Создание списка команд
    ДобавитьКоманду(ПараметрыРегистрации.Команды, "Очистка перерасчётов", "ОчисткаПерерасчётов", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь, "");

    // Теперь вернем системе наши параметры
    Возврат(ПараметрыРегистрации);
КонецФункции

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

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

КонецПроцедуры

#КонецОбласти
10 Nemirov
 
20.03.20
11:51
(9) Спасибо!!!
Ошибка? Это не ошибка, это системная функция.