Имя: Пароль:
1C
 
Запуск внешней обработки из справочника
0 1ctube
 
07.04.25
08:09
Всем привет.
Добавляю внешнюю обработку в справочник "Внешние Обработки".
Пытаюсь подключить програмнно.
Что было сделано:
Получил ссылку на элемент справочника "Внешние Обработки";
Получил "ДвоичныеДанные";
Получил адрес во временном хранилище "АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные)";
И далее получаю имя обработки "ВнешниеОбработки.Подключить(АдресВоВременномХранилище, , Ложь)" и вот тут затык. В отладчике "ошибка при вызове метода контекста "Подключить". В чем может быть ошибка?
Конфа на обычных формах
1 Мультук
 
гуру
07.04.25
08:36
(0)

Когда же вы, господа "программисты", научитесь
а) показывать свой код
б) писать версию вашей 1С
в) имя и версию вашей конфы,
г) про режим совместимости я вообще молучу

А не играть в партизан.

Это был риторический вопрос. Ибо ответ очевиден - никогда.
2 Serg_1960
 
07.04.25
08:42
(0) [испанский стыд] Выделите заголовок ветки - "Найти в Яндексе" - профит. Первое попавшееся - https://helpf.pro/faq/view/1434.html
3 1ctube
 
07.04.25
09:39
(2) Это я находил... Там нет ни строчки кода "ВнешниеОбработки.Подключить"
4 1ctube
 
07.04.25
09:43
(1) Не играю в партизана, С чего вы взяли?
Конфа самописная (не моя). На обычных формах.

а) если не было достаточно того, что я описал в вопросе, вот код:
ВО = Справочники.ВнешниеОбработки.НайтиПоНаименованию("МояОбработка");
ДвоичныеДанные = ВО.ХранилищеВнешнейОбработки.Получить();
АдресВоВременномХранилище=ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ИмяОбработки=ВнешниеОбработки.Подключить(АдресВоВременномХранилище, , Ложь);
5 arsik
 
гуру
07.04.25
09:46
(4) Вот так попробуй.
ВнешнийОтчетОбработкаДляОткрытияСсылка = ТУТКАКАЯТОССЫЛКА;
ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма",ПараметрыФормы, ЭтаФорма);

Это с клиента
(4) Ну тогда глянь как сделано в БСП и сделай так же.
6 1ctube
 
07.04.25
09:53
(5) Да, такой способ рабочий, но БСП в конфигурации нет. В этом то и проблема(
7 Мультук
 
гуру
07.04.25
10:01
<гмхм>


P.S.

Любимая байка моего деда:

Попал интеллигент в украинский рай.
Вокруг куча сала, хлеба, вода в ручейке.
И умер.
Почему?
У него не было с с собой БСП ножа и вилки.


Я был маленьким и удивлялся:
-- Деда, как же он умер ? Хлеб можно руками ломать,
сало кусать.

Дед:
-- Вот такие они интеллигенты, даже кусок функции из БСП скопи-пастить не могут
8 banco
 
07.04.25
10:19
(0)
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные.Записать(ИмяФайла);
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Форма.Открыть();
УдалитьФайлы(ИмяФайла);
9 Andy13
 
07.04.25
10:52
ТС запутал всех.
В заголовке - запуск внешней обработки.
В описании (0) добавление внешней обработки в справочник внешних обработок.

Ты это, или сними или надень.
10 Дмитрий
 
07.04.25
10:56
(0) В форме списка справочника Внешние обработки посмотри.
11 Serg_1960
 
07.04.25
16:19
Партизанам пора озвучить версию платформы.
Вот это без БСП даже на 8.2 будет работать :( наверное :)

//ТекСсылка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Имя обработки");
ВнешняяОбработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Имя обработки");
Если ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка Тогда
	ИмяФайла = ПолучитьИмяВременногоФайла();
	ДвоичныеДанные = ВнешняяОбработка.ХранилищеВнешнейОбработки.Получить();
	ДвоичныеДанные.Записать(ИмяФайла);
	Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
	Форма.Открыть();
КонецЕсли;
12 Волшебник
 
07.04.25
13:41
(11) Это не будет работать. У Вас переменная ТекСсылка присваивается, но не используется.
13 Serg_1960
 
07.04.25
14:24
(12) Спс, исправил