|
Разнести код в управляемых формах на сервер и клиент | ☑ | ||
---|---|---|---|---|
0
Глупый дятел
16.07.14
✎
07:58
|
Вот тут часть не может быть выполнена на сервере. А как сделать чтобы часть выполнилась на сервере, а часть на клиенте?
&НаКлиенте Процедура РазбитьЗаказ(Команда) РазбитьЗаказНаСервере(); КонецПроцедуры &НаСервере Процедура РазбитьЗаказНаСервере() ДокОбъект = Объект.Ссылка.ПолучитьОбъект(); СоздаваемыйЗаказ = ДокОбъект.Скопировать(); формаз=СоздаваемыйЗаказ.ПолучитьФорму("ФормаДокумента"); формаз.Открыть(); КонецПроцедуры |
|||
1
Heckfy
16.07.14
✎
08:02
|
формаз=СоздаваемыйЗаказ.ПолучитьФорму("ФормаДокумента");
формаз.Открыть(); выноси на клиент. |
|||
2
Глупый дятел
16.07.14
✎
08:03
|
(1)
как, клиент ведь раньше сервера запускается? |
|||
3
Любопытная
16.07.14
✎
08:04
|
(2) верни новый объект клиенту и открой его форму
|
|||
4
Бешеная Нога
16.07.14
✎
08:05
|
(3) сильно...
|
|||
5
Глупый дятел
16.07.14
✎
08:06
|
вот так вот не работает
&НаКлиенте Процедура РазбитьЗаказ(Команда) РазбитьЗаказНаСервере(); формаз=СоздаваемыйЗаказ.ПолучитьФорму("ФормаДокумента"); формаз.Открыть(); КонецПроцедуры &НаСервере Процедура РазбитьЗаказНаСервере() ДокОбъект = Объект.Ссылка.ПолучитьОбъект(); СоздаваемыйЗаказ = ДокОбъект.Скопировать(); КонецПроцедуры |
|||
6
ifso
16.07.14
✎
08:09
|
(2) ты кого здесь клиентом обозвал?
|
|||
7
Глупый дятел
16.07.14
✎
08:09
|
(6)
&НаКлиенте |
|||
8
SeraFim
16.07.14
✎
08:14
|
что-то типа такого:
&НаКлиенте Процедура РазбитьЗаказ(Команда) СоздаваемыйЗаказ = РазбитьЗаказНаСервере(); ОткрытьЗначение(СоздаваемыйЗаказ); КонецПроцедуры &НаСервере Функция РазбитьЗаказНаСервере() ДокОбъект = Объект.Ссылка.ПолучитьОбъект(); СоздаваемыйЗаказ = ДокОбъект.Скопировать(); Возврат ЗначениеВДанныеФормы(СоздаваемыйЗаказ); КонецФункции |
|||
9
Любопытная
16.07.14
✎
08:19
|
(4) Да, действительно, что-то меня понесло)
|
|||
10
ifso
16.07.14
✎
08:21
|
(7) это "где", а не приоритет
|
|||
11
Бешеная Нога
16.07.14
✎
08:22
|
(8) сам то свой код пробовал?
|
|||
12
Бешеная Нога
16.07.14
✎
08:23
|
в твоем случае единственным вариантом будет
ПааметрыФормы = Новый Структура("Ссылка", Объект.Ссылка); ОткрытьФорму("ТвояФорма", ПараметрыФормы); а в ПриСозданииНаСервере - заполнять объект на основании |
|||
13
SeraFim
16.07.14
✎
08:24
|
(11)знаю, что параметры у ЗначениеВДанныеФормы должны быть другими. Идея верна
|
|||
14
Бешеная Нога
16.07.14
✎
08:26
|
(13) таки попробуй
|
|||
15
Бешеная Нога
16.07.14
✎
08:27
|
еще проще
ПараметрыФормы = Новый Структура("ЗначениеКопирования, СсылкаНаКопируемыйДокумент); ОткрытьФорму("Документ.Заявка.Форма.ФормаДокументаУправляемая", ПараметрыФормы); |
|||
16
DrZombi
гуру
16.07.14
✎
08:27
|
У меня дежавю, уже видел подобный вопрос :)
|
|||
17
ifso
16.07.14
✎
08:32
|
(16) с ТС на одну вакансию претендуете?)
|
|||
18
SeraFim
16.07.14
✎
08:36
|
точно, неправильно чуток. Вот так вот делал. Но мне нужно было не скопировать, а заполнить на основании
&НаКлиенте Процедура НажатиеНаКнопочку(Команда) Основание = КакоеТоОснование; Форма = ПолучитьФорму("Документ.ИмяДокумента.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ЗаполнитьДанныеФормыНаСервере(ДанныеФормы, Основание); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Модифицированность = Истина; Форма.Открыть(); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьДанныеФормыНаСервере(ДанныеФормы, Основание) ДокументОбъект = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ИмяДокумента")); //здесь можно заполнить объект как угодно, в том числе и копированием. Мне нужно было: ДокументОбъект.Заполнить(Основание); ЗначениеВДанныеФормы(ДокументОбъект, ДанныеФормы); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |