Кто-нибудь смог подключить компоненту из макета внеш.обработки без сохранения на диск?

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. andrewks 1370 13.12.12 23:30 Сейчас в теме
на просторах интернета нашёл только это:

http://www.miko.ru/blogs/portnovblog/107/

но не работает.
метод ПодключитьВнешнююКомпоненту() отрабатывает без ошибки, но выдаёт Ложь.
метод УстановитьВнешнююКомпоненту() выдаёт стандартную ошибку "не удалось установить бла-бла"
пробовал как с образом dll, так и с zip
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. m1kll 7 14.12.12 06:03 Сейчас в теме
3. andrewks 1370 14.12.12 07:08 Сейчас в теме
(2) m1kll, забыл явно уточнить, у меня компонента NativeAPI, это не подходит

если я её сам из макета сохраняю во врем.папку, и потом подключаю по пути - всё подключается нормально. из временного же хранилища ни в какую
4. andrewks 1370 14.12.12 07:10 Сейчас в теме
по ссылке из сабжа имею в виду пункт

2. бывают случаи, когда компонент необходимо установить из временного хранилища (файл получен со стороннего источника, внешняя обработка), в этом случае необходимо первым параметров в методы ПодключитьВнешнююКомпоненту и УстановитьВнешнююКомпоненту адрес архива во временном хранилище. Ниже приведу возможный пример работы:


больше не нашёл каких-либо примеров подключения из макета внеш.обраб.
но не пашет
5. andrewks 1370 14.12.12 14:08 Сейчас в теме
добавлено вознаграждение
6. KEHT8888 18.12.12 11:59 Сейчас в теме
Лови! Так работает

// готовим текст скрипта активации
Путь = ПолучитьИмяВременногоФайла("vbs");
Скрипт = ПолучитьМакет("Скрипт");
ТекстСкрипта = Скрипт.ПолучитьТекст();
ТекстСкрипта = СтрЗаменить(ТекстСкрипта,"%AppID%",ИмяПриложения);
Скрипт.УстановитьТекст(ТекстСкрипта);

флЕстьОшибки = Ложь;

// записываем скрипт
Попытка
Скрипт.Записать(Путь, КодировкаТекста.ANSI);
Исключение
флЕстьОшибки = Истина;
Сообщить("Не удалось записать скрипт активации внешнего окна! " +ОписаниеОшибки());
КонецПопытки;

// выполняем скрипт
Если НЕ флЕстьОшибки Тогда

Попытка
ЗапуститьПриложение(""""+Путь+"""", , Ложь);
Исключение
Сообщить("Не удалось выполнить скрипт активации внешнего окна! " + ОписаниеОшибки());
КонецПопытки;

КонецЕсли;
7. andrewks 1370 18.12.12 14:10 Сейчас в теме
(6) KEHT8888, не совсем понял, при чём тут vbs-скрипт, у меня внешняя компонента (dll). и, в любом случае, у Вас идёт явная запись его в файл, и только потом вызов, у меня по такой схеме загрузка компоненты тоже работает. меня же интересует загрузка компоненты сразу из макета или, хотя бы, из временного хранилища, без сохранения компоненты на диск
8. lefthander 18.12.12 16:58 Сейчас в теме
В момент установки внешние компоненты устанавливаются в каталог %APPDATA%\1C\1Cv82\ExtCompT.
Может не хватает прав на перезапись компоненты в каталог. Попробовать перед распаковкой поискать файл компоненты и его принудительно удалить?
9. andrewks 1370 18.12.12 17:12 Сейчас в теме
(8) lefthander, с правами всё нормально. папка ExtCompT на момент вызова УстановитьВнешнююКомпоненту содержит только registry.xml
10. lefthander 18.12.12 17:28 Сейчас в теме
Синтакс-помошник так трактует
<Местоположение> (обязательный)

Тип: Строка.
Строка, определяющая местоположение внешней компоненты.
В качестве строки может использоваться:
-полное имя макета, в котором хранится внешняя компонента в архиве;
-URL к внешней компоненте, упакованной в ZIP-архив, в формате, аналогичном ПолучитьНавигационнуюСсылку().

Может полное имя макета не правильно получаете? Имя макета в правильной кодировке?
11. andrewks 1370 18.12.12 17:34 Сейчас в теме
(10) lefthander, а как получить полное имя макета внешней обработки? в том-то и фишка, что, за невозможностью использования
-полное имя макета, в котором хранится внешняя компонента в архиве;

пытаюсь воспользоваться
-URL к внешней компоненте, упакованной в ZIP-архив, в формате, аналогичном ПолучитьНавигационнуюСсылку().
kurganovm; Емельянов Алексей; +2 Ответить
12. lefthander 18.12.12 18:03 Сейчас в теме
(11) а обработка без макета что ли? Я так понимаю механизм, в макет впихивается длл в виде бинарных данных. соответственно при распаковке длл вытягивается (полное имя макета+ имя длл с расширением). Это и будет местоположение.
13. andrewks 1370 18.12.12 18:08 Сейчас в теме
(12) lefthander, обработка с макетом. у Вас имеется рабочий код, что нужно запихнуть полное имя макета в случае внешней обработки, чтобы УстановитьВнешнююКомпоненту() это скушало, и не подавилось, а установила ВК из макета? в случае с общим макетом понятно, это "ОбщийМакет.ИмяМакета" , а вот как быть с макетом внешней обработки?
Емельянов Алексей; strange2007; +2 Ответить
14. Vovus 3 18.12.12 18:12 Сейчас в теме
Без первичного сохранения никак!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот