Имя: Пароль:
1C
1С v8
Запуск внешней обработки программно
0 Gomodrila
 
25.04.13
11:28
Есть внешняя обработка, которая возвращает ТЗ. В модуле обекта одна функция экпортная

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


Задача: запустить эту внешнюю обработку(функцию из этой обработки) при нажатии на кнопку "Заполнить Новое Качество"

всё до чего я додумался это: Подключил внешнюю обработку через пользователя Сервис - Дополнительные внешние обработки и отчёты - Внешние обработки по заполнению ТЧ.

в процедуре нажатия написал такой код

Функция  ВызовВнешнейОбработки()
           
   ДвоичныеДанные = Справочники.ВнешниеОбработки.ПолучитьСсылку().ХранилищеВнешнейОбработки.Получить();
   ИмяФайлаСОбработкой = ПолучитьИмяВременногоФайла("epf");
   ДвоичныеДанные.Записать(ИмяФайлаСОбработкой);
   Обработка = Справочники.ВнешниеОбработки.Создать(ВнешниеОбработки.Подключить(ПолучитьНавигационнуюСсылку(Справочники.ВнешниеОбработки.ПолучитьСсылку(), "ХранилищеВнешнейОбработки"), , Ложь));
   Обработка.ЗаполнитьКачествоНовое();
                   
           КонецФункции

он не пашет. Объясните(желательно пошагово) как правильно подключить эту чёртову обработку
1 Gomodrila
 
25.04.13
11:30
кнопка в документе , если это важно, то в документе КорректировкаКачестваТовара.
а да и приложение обычное
2 ДенисЧ
 
25.04.13
11:34
Справочники.ВнешниеОбработки.ПолучитьСсылку()

Это что за хрень?
3 Gomodrila
 
25.04.13
11:38
(2) Пытался получить обработку из справочника.
4 Gomodrila
 
25.04.13
11:40
облазил кучу форумов, читал СП и Справку. Может я тупой, но не смог разобраться как получить именно ту обработку которая мне нужна(где прописывается её имя или путь), как её подключить и запустить.
5 ДенисЧ
 
25.04.13
11:42
обогиядумнеяду...

Посмотреть в справочнике внешних обработок, как там оно запускается, не судьба?
Как найти элемент справочника по коду или наименованию - нужно обяъснять???
6 mkanaev
 
25.04.13
11:43
Обработка в справочнике внешних обработок храница в реквизите типа "Хранилище значений", выгружаеться в файл и юзаиться из файла с помощью объекта ВнешниеОбработки
7 Gomodrila
 
25.04.13
11:45
ДвоичныеДанные = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Заполнить качество новое");


{Документ.КорректировкаКачестваТоваров.Форма.NV_ФормаДокумента.Форма(977)}: Метод объекта не обнаружен (Записать)
   ДвоичныеДанные.Записать(ИмяФайлаСОбработкой);

Он вот на что ругается в обоих случаях
8 mkanaev
 
25.04.13
11:48
(7) старайся читать про то к чему обращаешься, СправочникСсылка <> ДвоичныеДаныне а вот у СправочникСсылка есть реквизит ХранилищеЗначения если применить ЗранилищеЗначения.Получить() то получишь двоичные данные
9 Gomodrila
 
25.04.13
16:42
Сделал через предопределённый элемент
10 Rie
 
25.04.13
17:03
Ппц...
11 Grobik
 
25.04.13
17:07
(5) глянуть как в infostart 87708 сделано.