Имя: Пароль:
1C
1С v8
Получить форму и заполнить в фоне
0 Wefast
 
20.08.15
16:08
В общем мне нужно открыть получить форму, заполнить ее данными и вызвать команду кнопки.

В толстом клиенте вполне работает
НужнаяФорма = Обработки.АРМ_ЗаявкиНаРасходованиеСредств.ПолучитьФорму("Обработка.АРМ_ЗаявкиНаРасходованиеСредств.Форма.СозданиеЗаявки")

НО внезапно оказалось что нужно все сделать под тонкий клиент.
И оказалось что ПолучитьФорму() работает только в толстом клиенте.
1 pessok
 
20.08.15
16:16
Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)

П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();
2 Wefast
 
20.08.15
16:17
(1) мне не нужно ее открывать
3 pessok
 
20.08.15
16:19
в (0) написано дословно "нужно открыть получить форму". ну да ладно.
ВНЕЗАПНО!
Глобальный контекст (Global context)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
4 pessok
 
20.08.15
16:19
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
5 pessok
 
20.08.15
16:20
где там уже ДенисЧ ?
Пусть СП продает
6 Wefast
 
20.08.15
16:26
(5) Спасибо. Обошелся правда без структуры.
7 pessok
 
20.08.15
16:26
(6) не за что. структура нужна если открывать форму конкретного элемента. Если пустой и заполнять - то можно без параметров
8 Wefast
 
20.08.15
16:36
(7) ну тогда вопрос вдогонку
У меня есть на клиенте объект типа СправочникСсылка
Через точку на клиенте ничего не доступно.
Мне его можно как то получить чтобы обращаться к его реквизитам через точку?
9 pessok
 
20.08.15
16:39
(8) к реквизитам *объекта* можно только на сервере обращаться.
10 pessok
 
20.08.15
16:40
+(9) много открытий тебя ждет :) я до сих пор периодически плююсь с УФ, хотя уже больше года их ковыряю
11 Wefast
 
20.08.15
17:33
В общем я не пойму что не так.


Для Каждого НовДок из Объект.Платежи Цикл
        Если НовДок.Создавать Тогда

            НомерСтроки = Строка(НовДок.НомерСтроки);
            СтрДляДоговора = Новый Структура;
            СтрДляДоговора.Вставить("Договор", НовДок.Договор);
            ВалютаВзаимор = ПолучитьВалютуВзаиморасчетов(СтрДляДоговора);
            
        КонецЕсли;
КонецЦикла;



Ошибка
{Обработка.КА_СозданиеЗаявокНаРасходованиеСредств.Форма.Форма.Форма(117)}: Ошибка при вызове метода контекста (ПолучитьВалютуВзаиморасчетов)
            ВалютаВзаимор = ПолучитьВалютуВзаиморасчетов(СтрДляДоговора);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}IsFolder    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
12 pessok
 
20.08.15
17:38
НовДок.Договор - явно данные формы
13 mistеr
 
20.08.15
17:40
Я все же рискну предложить заполнять объект. Он, знаете ли, не зависит от УФ/не УФ.
14 pessok
 
20.08.15
17:41
(12)
Глобальный контекст (Global context)
ДанныеФормыВЗначение (FormDataToValue)
Синтаксис:

ДанныеФормыВЗначение(<Объект>, <Тип>)
Параметры:

<Объект> (обязательный)

Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево.
Данные формы.
<Тип> (обязательный)

Тип: Тип.
Тип значения, получаемого из данных формы.
Возвращаемое значение:

Тип: Произвольный.

Описание:

Преобразует данные формы в объект прикладного типа.

Доступность:

Сервер, толстый клиент, мобильное приложение(сервер).
Примечание:

Нельзя преобразовать в объект типа Табличная часть.

(13) ну лень человеку переписывать код :)
15 VikingKosmo
 
20.08.15
17:59
(0) а ты уверен, что тебе в фоновом задании нужно форму получать? Зачем бедному ФЗ твоя форма?
16 Wefast
 
21.08.15
10:12
(15) фоновому заданию ничего не нужно.

В общем я в функции что вызываю возвращал что то не то.

Порядком бесит что не могу на серверной базе отладкой проходить по процедурам и функциям выполняющимся на сервере
17 VikingKosmo
 
21.08.15
10:14
(16) запусти сервер в режиме отладки...
18 Wefast
 
21.08.15
10:19
(12) Новдок.Договор имеет тип СправочникСсылка
(17) Не имею такой возможности.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс