|
УФ. Открытие формы. | ☑ | ||
---|---|---|---|---|
0
zippygrill
26.04.14
✎
10:23
|
Есть реквизит формы. Тип его ДокументОбъект.ЗаказКлиента(кстати правильный тип ли я выбрал для этого?). На Форме его не вывожу так как буду использовать данный реквизит для открытие документа на клиенте.
На сервере инициализирую новый документ заказа, заполняю его и передается обратно через ЗначениеВРеквзитФормы(). Как мне его открыть для пользователя? Документ новый, не сохраненный еще. &НаСервере Процедура ОбработатьВыбранныйФайлСервер() СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("АдресВременногоХранилища", АдресВременногоХранилища); СтруктураПараметров.Вставить("Контрагент", Контрагент); МенеджерОбъекта = РеквизитФормыВЗначение("Объект"); МенеджерОбъекта.ОбработатьФайлСервер(СтруктураПараметров); ЗначениеВРеквизитФормы(СтруктураПараметров.ДокументЗаказКлиента, "ДокументЗаказКлиента"); //НаСервере создаем и заполняем документ, потом НаКлиенте передаем его для визуализации. ЗначениеВРеквизитФормы(МенеджерОбъекта, "Объект"); МенеджерОбъекта = Неопределено; КонецПроцедуры &НаКлиенте Процедура ОбработкаВыбораФайла() АдресВременногоХранилища = Неопределено; ОчиститьСообщения(); Попытка Если НЕ ПоместитьФайл(АдресВременногоХранилища, ИмяФайлаПоУмолчанию, ИмяФайла , Истина, УникальныйИдентификатор) Тогда Возврат; КонецЕсли; АдресФайла = ИмяФайла; Исключение ШаблонСообщения = НСтр("ru = 'При чтении файла возникла ошибка |%1'"); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); Предупреждение(ТекстСообщения, , НСтр("ru = 'Ошибка'")); КонецПопытки; Если ПродолжитьЗагрузкуФайла() Тогда ОбработатьВыбранныйФайл(); КонецЕсли; Если НЕ ДокументЗаказКлиента = Неопределено Тогда //Вот тут ступор КонецЕсли; КонецПроцедуры |
|||
1
zippygrill
26.04.14
✎
10:28
|
О ... ОткрытьЗначение();
|
|||
2
zippygrill
26.04.14
✎
11:01
|
Открывается ДанныеФормыСтруктура. Как преобразовать?
//НаКлиенте Если НЕ Объект.ДокументЗаказКлиента = Неопределено Тогда //Открываем документ ОткрытьЗначение(Объект.ДокументЗаказКлиента); КонецЕсли; |
|||
3
Wobland
26.04.14
✎
11:03
|
а пускай у тебе обработать файл ссылку возвращает. не вникал
|
|||
4
kotletka
26.04.14
✎
11:03
|
ОткрытьФорму(...) не?
|
|||
5
kotletka
26.04.14
✎
11:04
|
а на клиенте ОБъект.Твойхитропопыйреквизит не работает?
|
|||
6
zippygrill
26.04.14
✎
11:06
|
(5) работает. Только это данныеформыСтруктура.
|
|||
7
zippygrill
26.04.14
✎
11:08
|
А показать пользователю то надо прикладной объект, то есть документ
|
|||
8
kotletka
26.04.14
✎
11:10
|
так сделай реквизитом объекта,а не формы и заполняй ссылкой
|
|||
9
zippygrill
26.04.14
✎
11:11
|
Сделал реквизитом объекта, только я не хочу его записать, пусть сам пользователь это сделает.
|
|||
10
kotletka
26.04.14
✎
11:11
|
а без ЗначениеВРеквизитФормы ссылку нельзя передать?
|
|||
11
kotletka
26.04.14
✎
11:13
|
(9) если реквизитом объекта то все норм отработает без всяких ЗначениеВреквизит... ссылку передавай и всё
|
|||
12
Wobland
26.04.14
✎
11:13
|
новый объект? сильно пустая ссылка будет
|
|||
13
zippygrill
26.04.14
✎
11:14
|
(11) да я это уже переделал так как реквизит является частью объекта а не формы.
|
|||
14
zippygrill
26.04.14
✎
11:14
|
(12) я тебя тоже не понял :)
|
|||
15
zippygrill
26.04.14
✎
11:17
|
//в модуле объекта
ДокументЗаказКлиента = Документы.ЗаказКлиента.СоздатьДокумент(); ИнициализироватьДокумент(СтруктураПараметров.Контрагент, ДокументЗаказКлиента); Для каждого СтрокаТаблицы Из Т Цикл КонецЦикла; //СтруктураПараметров.Вставить("ДокументЗаказКлиента", ДокументЗаказКлиента); ЭтотОбъект.ДокументЗаказКлиента = ДокументЗаказКлиента; &НаКлиенте Если НЕ Объект.ДокументЗаказКлиента = Неопределено Тогда //Открываем документ ОткрытьЗначение(Объект.ДокументЗаказКлиента); //тут как бы данные формы почему-то. КонецЕсли; |
|||
16
Мимохожий Однако
26.04.14
✎
11:18
|
(0) Как то сложно начал...Я бы почитал в СП как открыть форму нового документа
|
|||
17
Wobland
26.04.14
✎
11:22
|
(16) а что там пишут?
я вижу открытие формы с параметрами |
|||
18
zippygrill
26.04.14
✎
12:05
|
Все получилось коллеги :) Действительно нужно применть такой подход в таких моментах:
ФормаДокумента = ПолучитьФорму("Документ.ЗаказКлиента.ФормаОбъекта"); ДанныеФормы = ФормаДокумента.Объект; ЗаполнитьДокументЗаказКлиента(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, ФормаДокумента.Объект); Если Товары.Количество() = 0 Тогда ТекстСообщения = "Нет данных"; Предупреждение(ТекстСообщения, , НСтр("ru = 'Информация'")); Иначе ФормаДокумента.Открыть(); КонецЕсли; Не буду вас больше беспокоить :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |