Имя: Пароль:
1C
1С v8
Получить макет внешней обработки из формы
0 Bukasoid
 
18.03.19
03:43
Не могу понять как мне получить макет из формы, перекопал уже все форумы. Единственный вариант, который заработал:

НоваяОбработка = ВнешниеОбработки.Создать("C:\Users\Sadm\Desktop\Прайс-Лист.epf",Ложь);
Макет = НоваяОбработка.ПолучитьМакет("МакетПЛ");

Но жестко прописывать путь к файлу не хочется, есть ли ещё варианты?

Форма управляемая, платформа 8.3.13.15.13.

P.S. Код

Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетПЛ")
ругается "Недопустимое значение параметра (Параметр номер '1')"

Создавать функцию в модуле объекта и вызывать её из формы тоже пробовал, "Процедура не найдена"
1 Chameleon1980
 
18.03.19
05:22
я вот не понял, а как ты собрался получать вообще что-то из ВНЕШНЕЙ обработки не показывая где она?
2 Mankubus
 
18.03.19
06:08
(0) в реквизитах формы точно есть реквизит Объект?
Макет точно так называется как ты написал?
3 Вася Теркин
 
18.03.19
06:39
(1) Вообще внешние обработки в ХранилищеЗначений надо упаковывать. Тогда пути известны.
(2) А какая необходимость делать отдельную внешнюю обработку? как потом бэкапить?
4 xXeNoNx
 
18.03.19
07:08
(0) РеквизитФормыВЗначение
5 Chameleon1980
 
18.03.19
09:25
(3) внешние обработки для меня это обработки лежащие не в справочнике "Внешние обработки"
6 Bukasoid
 
18.03.19
12:29
(1) Макет пытаюсь получить из формы самой внешней обработки.

(2) Да, точно. Несколько раз перепроверял

(4) В сообщении указал, что пробовал. Не выходит.

(3) а потом как из хранилища значений получать? Во временный файл распаковывать?

(5) В справочник внешних обработок тоже собираюсь добавить, но как оттуда получить макет также не нашел
7 Serg_1960
 
18.03.19
13:18
8 RomanYS
 
18.03.19
13:41
(6) Разбей Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетПЛ") на две строки и пойми чего у тебя нет Объект или МакетПЛ, т.к. текст ошибки одинаковый.
Или просто отладчиком остановись на ошибке
9 Bukasoid
 
18.03.19
14:21
(8) Не может получить макет
10 Bukasoid
 
18.03.19
14:22
(7) Смотрел, не помогло
11 RomanYS
 
18.03.19
14:25
(9) выложи обработку куда-нибудь
12 singlych
 
18.03.19
14:36
(9) тип реквизита Объект левый какой-нибудь, а не ВнешняяОбработка.Имя
13 RomanYS
 
18.03.19
14:49
(12) кстати вариант
14 Вафель
 
18.03.19
15:15
вот это

Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетПЛ")

должно работать
разбей на 2 строки
15 Bukasoid
 
18.03.19
15:58
(12) Нет, тип реквизита ВнешнаяяОбработкаОбъект.Имя
16 Bukasoid
 
18.03.19
15:59
17 RomanYS
 
18.03.19
16:08
(15) (16) Объект тип "Строка"
18 singlych
 
18.03.19
16:09
(15) Докажи скрином, потому что у меня из (11) - строка
19 Bukasoid
 
18.03.19
16:21
20 RomanYS
 
18.03.19
16:24
(19) в (16) другая версия
21 RomanYS
 
18.03.19
16:27
(20) и называется он кстати по-другому: ПрайсЛистЛента.
22 Вафель
 
18.03.19
16:33
ну вот ошибка из (12)
23 singlych
 
18.03.19
16:47
(19) Это тип объекта встроенной обработки из конфигурации. Форму небось оттуда копировал. В конструкторе формы поменяй тип реквизита Объект на ВнешняяОбработка.ПрайсЛистЛента
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.