Имя: Пароль:
1C
 
БСП: дополнительная назначаемая обработка - не появляется наименования команды.
0 Kifsif
 
14.01.15
21:40
Учусь делать внешние обработки. Тренируюсь на БП 3.0.37.27.


Взял демо-базу для БСП. Скопировал из нее куски. В принципе, пока тут все понятно. Также смотрю в доку на сайте ИТС (http://its.1c.ru/db/bspdoc#content:200:1:issogl2_созданиеновогоотчетаилиобработки).

Мой код:


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

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

Процедура ЗаполнитьКонтрагента(ПараметрыВыполненияКоманды);
    Сообщить("Тест");
КонецПроцедуры


Пбработку подключаю - выбираю загрузить из файла. И вот я еще не нажал Записать и закрыть, но могу уже видеть наименование, назначение, команды на отдельной закладке и доп. информацию.

Так вот, у меня закладка Команды в заголовке имеет в скобках цифру 1. Т.е. как бы одна команда есть. Все правильно, она у меня одна.
А вот перечень команд пустой. Т.е. там строка - может - и есть, но наименования у нее нет.

Но все равно команду записываю.

Иду в счет. Все действия/Заполнить.
И вижу - КомандаДополнительнойОбработки1.
И отладочная печать не работает. Т.е. он команду-то не вызывает.

Что не так делаю?
1 Мимохожий Однако
 
14.01.15
22:42
ПараметрыРегистрации.Вставить("Наименование", ...);
2 Мимохожий Однако
 
14.01.15
22:43
Справни со своим кодом:
..
ункция СведенияОВнешнейОбработке() Экспорт
  ПараметрыРегистрации = Новый Структура;
  ПараметрыРегистрации.Вставить("Вид", ...);
  ПараметрыРегистрации.Вставить("Назначение", ...);
  ПараметрыРегистрации.Вставить("Наименование", ...);
  ПараметрыРегистрации.Вставить("Версия", ...);
  ПараметрыРегистрации.Вставить("Информация", ...);
  ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
  Команды = ТаблицаКоманд();
  ДобавитьКоманду(Команды,
          <Имя команды>,
          <Идентификатор команды>,
          <Способ вызова команды>,
          <Показывать оповещение>,
          <Модификатор>);
  ПараметрыРегистрации.Вставить("Команды", Команды);
  Возврат ПараметрыРегистрации;
КонецФункции
Функция ТаблицаКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн