ДанныеФормыВЗначение для внешней обработки #745912


#0 by NikePopov
Добрый день! Хочу воспользоваться возможностью процедур с директивой "&НаСервереБезКонтекста" во внешней обработке. Все механизмы заполнения у меня в модуле объекта внешней обработки. У обработки при этом довольно увесистая форма, которую при каждом заполнении таскать на сервер нет никакого желания. Пример кода: &НаКлиенте При выполнении функции "ДанныеФормыВЗначение" возникает ошибка : {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ДанныеФормыВЗначение) по причине: Несоответствие типов (параметр номер '2') Не могу понять как требуется указывать второй параметр функции "ДанныеФормыВЗначение". Если обработка внутри конфигуркции, то проблемы нет. Возможность обхода через процедуру "&НаСервере" я знаю, но такой подход сильно замедляет выполнение. Переносить процедуры заполнения в форму тоже не хочется.
#1 by mikecool
нафейхоа безконтекста??
#2 by NikePopov
Передача самой формы на сервер довольно долгое занятие, так как на форме довольно много разнообразных данных. Если пользоваться НаСервереБезКонтекста, то выполнение процедуры очень сильно ускоряется.
#3 by NikePopov
Интересно, что ТипЗнч(РеквизитФормыВЗначение("Объект")) <> Тип("ВнешняяОбработкаОбъект.ВнешняяОбработка1") А вот Строка(ТипЗнч(РеквизитФормыВЗначение("Объект"))) = Строка(Тип("ВнешняяОбработкаОбъект.НабивкаБлюд")) .
#4 by NikePopov
В последнем месте опечатка: вместо "НабивкаБлюд" - "ВнешняяОбработка1"
#5 by NikePopov
На нескольких обработках тестирую))
#6 by Aprobator
ага, только вот без контекста нет на сервере реквизитов формы.
#7 by NikePopov
Я специально для этого убрал директиву над функцией. С целью проверки.
#8 by Aprobator
Попробуй на стороне сервера получить для теста через РеквизитФормыВЗначение - там тип не обязателен.
#9 by hhhh
а что вы там тестируете? вы же создаете свой контекст. Ваш контекст думаете будет быстрее нуралиевского?
#10 by NikePopov
РеквизитФормыВЗначение  - это метод формы. Если использовать его то от "БезКонтекста" придется отказаться, что опять же приведет к большему времени передачи формы с клиента на сервер и обратно. Я не хочу тянуть контекст формы. Он мне не интересен. Для выполнения требуемых мне действий мне выше крыши хватит только объекта внешней обработки. Весь контекст тянуть долго.
#11 by ДенисЧ
При БезКонтекста - ты не имеешь контекста. Ваш Кэп. неоткуда получать.
#12 by NikePopov
Это здорово, но не очень ясно как эту интересную информацию можно применить))
#13 by DTXqueque
>Я не хочу тянуть контекст формы. Он мне не интересен. Для выполнения требуемых мне действий мне выше крыши хватит только объекта внешней обработки. Весь контекст тянуть долго. Курлык-курлык.. Интересно, а что там ещё в контекст попадёт кроме объекта обработки?)
#14 by Fragster
из-за этого в своих внешних обработках отказался от модуля обработки вообще - всё в форме.
#15 by NikePopov
Приличное количество объектов. Мало того, эти объекты - не ссылки, а целые таблицы, динамические списки, объекты, табличные документы. То, что должен видеть пользователь, а там довольно разнообразная информация. Объект - это способ заполнения, так скажем, одной записи. А таких записей в форме может быть довольно много.
#16 by NikePopov
Так раньше и делал, но теперь хотел бы решить для себя: есть ли возможность использовать форму - как способ отображения информации пользователю, а объект - как отдельный инструмент заполнения.
#17 by Aprobator
я понимаю, для чего всё это делается. Просто отладчиком можно будет посмотреть тип объекта и сравнить его с тем, что выдаёт Тип("ВнешниеОбработки......") и получить дальнейшую информацию для размышлений.
#18 by DTXqueque
Ну да, если ты в обработке наплодил кучу сущностей. Если хочешь отказаться от контекста, передавай нужные параметры в качестве параметров процедуры без контекста.
#19 by Fragster
вот пишешь ты обработку и под управляемые и под обычные формы, логично записать общие функции в модуль обработки. а в УФ - еще и без контекста к ним обращаться, чтобы работало поживее.
#20 by DTXqueque
Не понял. Ты намекаешь на то, что без контекста можно вызвать процедуры модуля?
#21 by NikePopov
В том то и проблема: в я уже так и сделал. Результат удивил. У объекта "Тип" нельзя понять как именно требуется его получить. Мне нужны не параметры(нужны в меньшей степени), а методы ОбработкаОбъекта. Я хочу все обработки заполнения выполнять в модуле объекта, а формой пользоваться для показа результата пользователю в нужном ему виде. Да! Именно для этого и затевал обсуждение!
#22 by cathode
Тебе точно нужен вызов метода объекта без контекста? Если модуль объекта используется как библиотека процедур, то в управляемой форме можно сделать так: 1. Создать реквизит формы ОбъектТип, тип "строка неограниченной длины". 2. В ПриСозданииНаСервере: 3. Во внеконтекстную серверную процедуру передаем Знач ОбъектТип (можно еще передать Знач Объект, если нужны его данные): В результате получаем вызов метода объекта без передачи контекста, но тип объекта в виде строки для таких вызовов нужно хранить на клиенте.
#23 by NikePopov
Вот! Это действительно супер! Есть конечно минус с переносом данных реквизитов и табличных частей(их надо переносить перед экспортным методом в "ОбъектЗначение", а после из "ОбъектЗначение" в "Объект"), но уже отлично!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С