0
- 17.05.2017 - 13:37
|
Подскажите плз, почему последовательность команд не работет для документа "РеализацияТоваровУслуг" ? при выборе в Объект.ДокументПриемник документа другого типа все работает нормально ФормаДокумента = ПолучитьФорму("Документ." + Объект.ДокументПриемник + ".ФормаОбъекта"); ДанныеФормы = ФормаДокумента.Объект; ЗаполнитьДокументНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, ФормаДокумента.Объект); ФормаДокумента.Открыть(); | |
1
- 17.05.2017 - 13:45
|
при выборе документа "РеализацияТоваровУслуг" выдает ошибку "Поле объекта не обнаружено(Объект)" | |
2
- 17.05.2017 - 14:45
| Ну нет у полученной формы реквизита с именем "Объект"... | |
3
- 17.05.2017 - 15:18
| ага, понял уже, выход есть какой-нибудь ? | |
4
- 17.05.2017 - 16:05
|
(3) получать форму, у которой есть реквизит объект)) глянуть какие у этого дока формы и где там объект... | |
5
- 17.05.2017 - 16:18
| (0)По моему, в вопросе уже содержится ответ. Нужно на сервере создать объект нового документа, вернуть на клиента ссылку, а на клиенте получить форму и открыть ее | |
6
- 17.05.2017 - 16:29
| (5) подразумевает запись объекта в базу, что далеко не всегда необходимо | |
7
- 17.05.2017 - 16:40
|
(6)Почему запись? я не говорил, что объект надо записывать. Я полагаю, что 1С вернет ссылку нового документа, которой еще нет в базе. Вот работающий код: &НаСервере Функция СоздатьДокумент() ТребОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент() ; Возврат ТребОбъект.Ссылка; КонецФункции &НаКлиенте Процедура Сформировать(Команда) СсылкаНаДокумент = СоздатьДокумент(); КлючПоиска = Новый Структура("Ключ", СсылкаНаДокумент); ФормаДокумента = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Фор ма.ФормаДокумента", КлючПоиска); ФормаДокумента.Открыть(); КонецПроцедуры | |
8
- 17.05.2017 - 17:07
|
(7) - СоздатьДокумент() вернет пустую ссылку, с UID 00000000-0000-0000-0000-000000000000 (если насильно не впихнуть СсылкуНового), по такому ключу откроется форма совершенно иного нового документа, никак не связанного с созданным в во время выполнения функции СоздатьДокумент() В чем смысл? | |
9
- 17.05.2017 - 17:32
| (8)я привел решение навскидку, просто никогда этим не озадачивался. Может можно и проще, хотя и тут ничего сложного, и задача состояла именно в том, чтобы открыть форму нового документа, или я просто не вьехал ? Тогда прошу прощения. Автор вроде хотел создать и открыть. Я не гуру управляемых форм, но как я понимаю, можно открыть форму объекта, значит чтобы открыть форму надо объект создать. Или мы о чем спорим ?) Записывать его в базу данных я не предлагал | |
10
- 17.05.2017 - 17:39
|
Для того, чтоб открыть форму нового документа - его не нужно создавать, нужно просто открыть форму. Без дополнительных манипуляций. Вот прямо как в (0) ФормаДокумента = ПолучитьФорму("Документ." + Объект.ДокументПриемник + ".ФормаОбъекта"); ..... ФормаДокумента.Открыть(); Как правило, кроме открытия формы нужно провести ещё частичное заполнение реквизитов (как раз то, что за многоточием :) ) | |
11
- 17.05.2017 - 17:57
|
(10)Вы хотите сказать, что при простом открытии формы ФормаДокумента = ПолучитьФорму("Документ." + Объект.ДокументПриемник + ".ФормаОбъекта"); нмкакой объект не будет создан ? Дуиаю, что будет, просто нам о нем будет не дано знать. А заполнять программно надо все таки реквизиты объекта, а не реквизиты формы, которые являются визуализацией объекта. Заполнять программно реквизиты формы по моему чистейшее извращение. Есть документ, так заполняйте ц него то, что будет храниться в БЛ, а не на экране. Может я и неправ, но у меня такое мнение. Работать надо с данными, а не с их отображением | |
12
- 17.05.2017 - 18:03
| (10)до меня дошло о чем Вы, щас проверю )) | |
13
- 17.05.2017 - 18:05
| Принимаю все возражения ) | |
14
- 17.05.2017 - 20:22
| если УФ, то сразу ОткрытьФорму("Документ.Реализация.Форма.Формаобьек ты",ПараметрыФормы), а в нужные параметры подсунуть то, что надо | |
15
- 18.05.2017 - 06:19
|
У Автора видимо в открываемой форме гнет реквизита "Объект", как например в форме "ФормаДокумента" документа "РеализацияТоваровУслуг". А в форме "ФормаДокументаОбщая" реквизит есть и вот такой код работает, контрагент заполняется: ФормаДокумента = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Фор ма.ФормаДокументаОбщая"); ФормаДокумента.Объект.Контрагент = Контрагент; | |
16
- 18.05.2017 - 06:40
| http://v8.1c.ru/metod/faq2/answer.jsp?id=651 Попробовал, работает: ЭлементыОтбора = Новый Структура("Контрагент", Контрагент); ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЭлементыОтбора); ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форм а.ФормаДокумента", ПараметрыФормы); | |
17
- 18.05.2017 - 09:48
|
(16) оно будет работать только для тех реквизитов, у которых стоит галка "Заполнять из данных заполнения" | |
18
- 19.05.2017 - 07:34
| всем спасибо, все получилось | |
19
- 19.05.2017 - 08:52
| (18)Признак хорошего тона - привести решение ) | |
| Интернет-форум Краснодарского края и Краснодара |