Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Упр формы. получение объекта (http://forums.kuban.ru/f1040/upr_formy_poluchenie_ob-ekta-3589113.html)

ktvofffka 23.01.2013 09:10

Упр формы. получение объекта
 
конфигурация НЕ типовая и стандартной подсистемы внешних обработок НЕТ

из документа открывается обработка
в форме обработки. Владелец формы - Управляемая форма самого документа

цель получить Объект документа, для возможности использовать разработанные ранее процедуры и функции

попытался так...
текОбъект = ДанныеФормыВЗначение(ВладелецФормы.Объект, Тип("ДокументОбъект.ХХХ"));
Ошибка при получении .... Свойство недоступно на сервере

gematogen 23.01.2013 09:36

помести свои процедуры в модуль менеджера и обращайся к ним Документы.ТвойОбъект.ТвояПроцедураФункция

gematogen 23.01.2013 09:37

или тебе нужны обработчики?

ktvofffka 23.01.2013 09:44

штука такая пользователь открывает документ проводит над ним некие действия после чего запускает сервис, который обрабатывая эти данные модифицирует (НЕ ЗАМЕНЯЕТ) табличную часть, после чего принимает решение сохранять или нет

я не могу использовать ссылку. так как я не увижу данные , которые внес пользователь, те мне нужен объект если говорить про разработку в обычном виде

Все требуемые процедуры лежат в общем модуле (те по сути тоже самое /может я и не прав/, в любом случае мне в качестве параметра нужно передавать НЕ форму, а Объект)

Reaper 23.01.2013 10:04

Так не получится. Это извращение.

ktvofffka 23.01.2013 10:25

это тогда недоделка 1С....
те если открыть документ
Объект - тип данныеФормаСтруктура
Получить реквизиты в виде объекта мы можем

если берем обработку
Владелец - Управляемая форма
ВладелецФормы.Объект - тип данныеФормаСтруктура
Получить реквизиты в виде объекта мы не можем....
вот это действительно извращение... тут могу тут не могу...

Северянин 23.01.2013 11:00

5-ktvofffka >Вот как у меня работает
&НаКлиенте
Процедура ВводВеса(Команда)
Вв = новый Структура;
Вв.Вставить("Продукция",Объект.Номенклатура);
Вв.Вставить("Характеристика",Объект.Характеристика);
Форма = ПолучитьФорму("Обработка.ВводВесаПродукции.Форма.ФормаУпр",Вв);
Форма.ОткрытьМодально();
Объект.ВесПродукции = Форма.Объект.ВесПродукции;
СерверПересчитатьКоличествоМатериала();
КонецПроцедуры

Reaper 23.01.2013 20:36

5-ktvofffka > Ну так брось 1С если тебе учиться лень. Очевидно, что в архитектуре тонкого или веб-клиента изменять данные объекта может только одна форма, отображающая его данные. Ты же пытаешься поставить 1С в абсолютно неестественную для нее позу, да еще и недоумеваешь: "Почему ей не нравится, когда я ее заставляю правой ногой чесать левое ухо касаясь коленом задницы???"

gematogen 23.01.2013 21:17

несколько раз перечитал сообщение автора, но так и не понял чего же он хочет? что за сервис запускается, от куда и зачем? При чем здесь форма и общий модуль?
В обычном приложение делал некое извращение: на форму обработки вешал документ объект, обработчики формы объекта отрабатывались и в обработке, на управляемой форме не знаю, сканает такое или нет.

ktvofffka 24.01.2013 07:34

(7) как же меня бесят умники...
я не спрашиваю тривиальных вещей... я прошу подсказать решение, тк как сам разобраться не смог.

Прошу тогда объяснить мне тупому чем же отличается логика??
есть процедура
ДанныеФормыВЗначение(<Объект>, <Тип>)
Где Объект - Данные форма структура (Структура данных для моделирования данных, редактируемых в управляемой форме. Моделирует объект с набором свойств)
так чем же объясните мне отличается Объект из текущей формы от объекта из фладельца формы????
Если это "по логике" должна быть просто структура описывающая данные

ktvofffka 24.01.2013 07:38

(8) В обычном приложении это не извращение это типовой прием к примеру заполнение ТЧ. В Тонком клиенте понятия объект нет. Есть некая структура описывающая форму которая и визуализируется на клиенте. Для получения данных необходимо перейти на сервер, где хранятся данные и получить их, обработать, а затем передать клиенту для визуализации... как то так

ktvofffka 24.01.2013 10:06

проблему решил. Вдруг кому пригодится
сделано след образом в обработке добавляется новый реквизит типа ДокументОбъект

&НаКлиенте
Процедура Выполнить()
КопироватьДанныеФормы(ВладелецФормы.Объект, ДокОбъект);
ЗаполнениеДанных();
КопироватьДанныеФормы(Док, ВладелецФормы.Объект);
КонецПроцедуры

&НаСервере
Процедура ЗаполнениеДанных(СписокОшбок)
Об = ДанныеФормыВЗначение(Док, Тип("ДокументОбъект.ХХХ"));
.........
ЗначениеВДанныеФормы(Об, ДокОбъект)
КонецПроцедуры

ktvofffka 24.01.2013 10:07

КопироватьДанныеФормы(Док, ВладелецФормы.Объект);
Об = ДанныеФормыВЗначение(Док, Тип("ДокументОбъект.ХХХ"));
очепятка
вместо "док" "ДокОбъект"

ktvofffka 24.01.2013 10:11

короче итогово))) а то опять очепятку нашел

&НаКлиенте
Процедура Выполнить()
КопироватьДанныеФормы(ВладелецФормы.Объект, ДокОбъект);
ЗаполнениеДанных();
КопироватьДанныеФормы(ДокОбъект, ВладелецФормы.Объект);
КонецПроцедуры

&НаСервере
Процедура ЗаполнениеДанных()
Об = ДанныеФормыВЗначение(ДокОбъект, Тип("ДокументОбъект.ХХХ"));
.........
ЗначениеВДанныеФормы(Об, ДокОбъект)
КонецПроцедуры


Текущее время: 17:33. Часовой пояс GMT +3.