Имя: Пароль:
1C
 
Обработка заполнения объекта не работает
0 degot
 
10.05.17
14:21
Привет всем, делаю обработку заполнения объекта для БП 3.0 .
Тип команды указываю ЗаполнениеФормы. Делаю по аналогии с обработкой из БСП . В предриятии команду вижу, но ничего не происходит. Вот  модуль объекта обработки
Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаявлениеОВвозеТоваров");

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

    ТаблицаКоманд = Получить();

    ДобавитьКоманду(ТаблицаКоманд,
    "Заполнить (моторные масла отдельной строкой)",
    "Заполнить (моторные масла отдельной строкой)",
    "ЗаполнениеФормы",
    Ложь,,Истина);

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

    Возврат ПараметрыРегистрации;
КонецФункции

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

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

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


Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт
    
    
    ЗаполнитьЗаявление(ПараметрыВыполнения.ЭтаФорма, ПараметрыВыполнения.РезультатВыполнения);
    
    
КонецПроцедуры


Процедура ЗаполнитьЗаявление(Форма, РезультатВыполнения)
    
    
    
    
    Форма.Объект.Комментарий = "Тест";
КонецПРоцедуры
1 HEKPOH
 
10.05.17
14:58
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
2 degot
 
10.05.17
15:10
не помогло((
3 degot
 
10.05.17
15:19
есть у кого нибудь работающий пример команды с типом "ЗаполнениеФормы"?
4 Ц_У
 
10.05.17
15:36
Если переписать как в БСП?
////
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации =ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид =ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
    ПараметрыРегистрации.Версия = "1.2";
    ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаявлениеОВвозеТоваров");
     НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Заполнить реквизит ""Комментарий"" не записывая объект (заполнение формы)'");
    НоваяКоманда.Идентификатор = "ЗаполнитьКомментарий";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы();
    Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт
   Если ИмяКоманды = "ЗаполнитьКомментарий" Тогда
        ЭтаФорма = ПараметрыВыполнения.ЭтаФорма;
        ЭтаФорма.Объект.Комментарий = "Комментарий из обработки";
       ЭтаФорма.Модифицированность = Истина;
         Сообщение = Новый СообщениеПользователю();
        Сообщение.Поле = "Объект.Комментарий";
        Сообщение.Текст = НСтр("ru = 'Поле ""Комментарий"" успешно заполнено'");
        Сообщение.Сообщить();
КонецПроцедуры
5 Ц_У
 
10.05.17
15:37
Ну и еще, как вариант, в документе не прописаны процедуры и функции подключения внешних обработок
6 degot
 
11.05.17
10:34
(5) так и есть, на других доках работает