Как обратиться к макету внешней обработки
День добрый, уважаемые формумчане. Делаю внешнюю обработку на основе типовой "ПечатьЦенниковИЭтикеток" в Рознице.
Переделал макет "Поля шаблона" во внешней обработке, в форме внешней обработки есть код:
Т.е. обращение происходит непосредственно к макету внутри самой конфигурации, а мне нужно обратиться именно к своему макету в этой внешней обработке!
Подскажите пожалуйста, как это сделать для управляемых форм?
Переделал макет "Поля шаблона" во внешней обработке, в форме внешней обработки есть код:
СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("ПоляШаблона");
Т.е. обращение происходит непосредственно к макету внутри самой конфигурации, а мне нужно обратиться именно к своему макету в этой внешней обработке!
Подскажите пожалуйста, как это сделать для управляемых форм?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В форме внешней обработки нужна серверная контекстная процедура с таким кодом
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
СхемаКомпоновкиДанных = ОбработкаОбъект.ПолучитьМакет("ПоляШаблона");
Благодарю за помощь, сделал вот так и заработало:
Макет = ПолучитьМакетОбработки();
СхемаКомпоновкиДанных = Макет;
...
&НаСервере
Функция ПолучитьМакетОбработки()
возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ПоляШаблона");
Конецфункции
Макет = ПолучитьМакетОбработки();
СхемаКомпоновкиДанных = Макет;
...
&НаСервере
Функция ПолучитьМакетОбработки()
возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ПоляШаблона");
Конецфункции
Ещё такой вопрос, может кто сможет подсказать, ещё вначале сохранял обработку "ПечатьЭтикетокИЦенников" через правую кнопку "Сохранить как внешнюю обработку", но есть некоторый код, который исполняется в Модуле менеджера встроеной обработки, вопрос, как его перенести во внешнюю обработку? Просто копированием? Тогда другой вопрос, может ли код из модуля менеджера благополучно работать в модуле объекта (в частном случае в модуле внешней обработки)?
В общем получилось, но не совсем.
Всё-таки есть обращения в типовой макет.
Что я сделал... скопировал текст модуля менеджера типовой обработки в модуль объекта внешней обработки
И чтобы понять есть ли где обращение к типовому макету переименовал свой макет вместо "ПоляШаблона" назвал его "ПоляШаблона2"
В результате выдало ошибку:
И вот снова возникает вопрос, как в данной строке перенаправить обращение к моему макету внешней обработки?
Всё-таки есть обращения в типовой макет.
Что я сделал... скопировал текст модуля менеджера типовой обработки в модуль объекта внешней обработки
И чтобы понять есть ли где обращение к типовому макету переименовал свой макет вместо "ПоляШаблона" назвал его "ПоляШаблона2"
В результате выдало ошибку:
{ВнешняяОбработка.ПечатьЭтикетокИЦенников.МодульОбъекта(54)}: Ошибка при вызове метода контекста (ПолучитьМакет)
СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет(СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных);
по причине:
Недопустимое значение параметра (параметр номер '1')
И вот снова возникает вопрос, как в данной строке перенаправить обращение к моему макету внешней обработки?
(11) AJlEKCA, спасибо за ответ, но на управляемых формах, при использовании такой конструкции даже при сохранении выдает ошибку:
Но собственно к макету у меня обратиться получилось в данном случае, теперь же ошибки возникают, в коде, который я скопировал из модуля менеджера типовой обработки в модуль внешней обработки, ошибку описывал в 9-м посте
{Форма.Форма.Форма(857,27)}: Процедура или функция с указанным именем не определена (ПолучитьМакет)
СхемаКомпоновкиДанных = <<?>>ПолучитьМакет("ПоляШаблона2"); (Проверка: Сервер)
Но собственно к макету у меня обратиться получилось в данном случае, теперь же ошибки возникают, в коде, который я скопировал из модуля менеджера типовой обработки в модуль внешней обработки, ошибку описывал в 9-м посте
(13) AJlEKCA, так и я об этом, пытался сделать по аналогии, вот так:
Но выдает ошибку:
...
ПМСН = ПМСНастроек();
СхемаКомпоновкиДанных = ПМСН;
...
&НаСервере
Функция ПМСНастроек()
возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет(СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных);
Конецфункции
ПоказатьНо выдает ошибку:
{ВнешняяОбработка.ПечатьЭтикетокИЦенников.МодульОбъекта(160,57)}: Переменная не определена (СтруктураНастроек)
возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет(<<?>>СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных); (Проверка: Сервер)
{ВнешняяОбработка.ПечатьЭтикетокИЦенников.МодульОбъекта(160,10)}: Процедура или функция с указанным именем не определена (РеквизитФормыВЗначение)
возврат <<?>>РеквизитФормыВЗначение("Объект").ПолучитьМакет(СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных); (Проверка: Сервер)
(16) AJlEKCA, насчет СтруктурыНастроек сказать ничего не могу, т.к. типовой механизм достаточно сложный, чтобы понять заполнен он в действительности или нет.
Вообще всё началось с того, что я скопировал реальную базу, разрешил редактирование, переделал макет "ПоляШаблона" этой обработки, добавил в форму одно поле и одну строчку кода для его заполнения, и естесственно всё заработало, но вот уже практически весь день пытаюсь вырвать этот механизм во внешнюю обработку, пока что он постоянно ссылается на типовой макет, не получается искоренить это "явление" полностью)
Вообще всё началось с того, что я скопировал реальную базу, разрешил редактирование, переделал макет "ПоляШаблона" этой обработки, добавил в форму одно поле и одну строчку кода для его заполнения, и естесственно всё заработало, но вот уже практически весь день пытаюсь вырвать этот механизм во внешнюю обработку, пока что он постоянно ссылается на типовой макет, не получается искоренить это "явление" полностью)
В общем вопрос остался открытым, как переделать обращение к внешнему макету?
Здесь:
и здесь:
Здесь:
СтруктураНастроек = Обработки.ПечатьЭтикетокИЦенников.ПолучитьПустуюСтруктуруНастроек();
и здесь:
СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет(СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот