Имя: Пароль:
1C
1С v8
ОткрытьФорму в УФ
0 Csar
 
09.10.13
14:36
Всем привет. Что то не получается разобраться в том как правильно реализовать процесс открытия формы УФ. Все происходит в документе основания, т.е. я на основании хочу создать документ "СохраннаяРасписка" и открыть его форму:

&НаКлиенте
Процедура Выполнить(Команда)
    ОткрытьФорму1();
КонецПроцедуры

&НаСервере
Процедура ОткрытьФорму1()
    Основание = Документы.ПеремещениеТоваров.НайтиПоНомеру("00000003995", Дата("20130917142109"));
    ОбъектСохраннаяРасписка = Документы.DT_СохраннаяРасписка.СоздатьДокумент();
    ОбъектСохраннаяРасписка.Заполнить(Основание);
    ОткрытьФормуНаКлиенте(Основание);
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуНаКлиенте(Объект)
    Параметры = Новый Структура("Ключ", Объект.Ссылка);
    ОткрытьФорму("Документ.DT_СохраннаяРасписка.Форма.ФормаВводаНаОсновании", Параметры);
КонецПроцедуры


Но вылазит ошибка "{Форма.ФормаОтчета1.Форма(65,2)}: Процедура или функция с указанным именем не определена (ОткрытьФормуНаКлиенте)
    <<?>>ОткрытьФормуНаКлиенте(); (Проверка: Сервер)"
Не понимаю почему не проходит проверка "Сервер", когда я ясно укзал, что процедура идет НаКлиенте!?
1 vicof
 
09.10.13
14:37
С сервера нельзя вызывать клиентские процедуры
2 Csar
 
09.10.13
14:38
(1) Значит мне надо все организовать изначально на Клиенте и необходимые штуки искать на Сервере и снова возвращаться на Клиент?
3 scanduta
 
09.10.13
14:38
На клиенте

Форма = Ссылка.ПолучитьФорму();
    Форма.Открыть();
4 Sabbath
 
09.10.13
14:40
(0) Объект создавай и заполняй на сервере, возвращай на клиент и там открывай его форум
5 Csar
 
09.10.13
14:42
(4) так?
&НаКлиенте
Процедура Выполнить(Команда)
    ОткрытьФорму1();
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФорму1()
    Основание = ДанныеОснование();
    Параметры = Новый Структура("Ключ", Основание.Ссылка);
    ОткрытьФорму("Документ.DT_СохраннаяРасписка.Форма.ФормаВводаНаОсновании", Параметры);
КонецПроцедуры

&НаСервере
Функция ДанныеОснование()
    Основание = Документы.ПеремещениеТоваров.НайтиПоНомеру("00000003995", Дата("20130917142109"));
    ОбъектСохраннаяРасписка = Документы.DT_СохраннаяРасписка.СоздатьДокумент();
    ОбъектСохраннаяРасписка.Заполнить(Основание);
    Возврат ОбъектСохраннаяРасписка;
КонецФункции
6 Csar
 
09.10.13
14:42
(3) ПолучитьФорму() только для толстого клиента
7 Csar
 
09.10.13
14:45
При передачи объекта с сервера, где его создал и заполнил на клиент возникает проблема - т.к. документ не записан, то как его передать?
8 Csar
 
09.10.13
14:47
т.е. нужно на сервере его первично заполнить и не записывая (т.к. вероятно документ не придется сохранять) передать его пользователю для дальнейшего заполнения.
9 GROOVY
 
09.10.13
14:48
Нафига вообще на сервер идти? Передавай параметры заполнения в метод "ОткрытьФорму" и все.
10 banco
 
09.10.13
14:50
(8) передай в параметрах документ основания, платформа сама сделает вызов обработчика ОбработкаЗаполнения с твоим документом основанием.
11 Csar
 
09.10.13
14:50
(9) Как же я передам ссылку на документ, который надо найти в базе?
12 Csar
 
09.10.13
14:52
(11) ой, что то я туплю. Сейчас попробуем. Спасибо большое за советы!