Имя: Пароль:
1C
1С v8
УФ. ОткрытьФорму("...ФормаОбъекта, новый Структура("Ключ", РеквФормы_с_Объектом)
Ø (Pro-tone 21.01.2016 16:21)
0 bolobol
 
21.01.16
11:59
Добрый день!

Сабж не взлетел - открывается форма создания нового объекта.
Что не так, просветите, плиз. Отладчик показывает, что "РеквФормы_с_Объектом" - это ДанныеФормыСтруктура, заполненная объектом, вернуто с сервера: ЗначениеВРеквизитФормы(СозданныйОбъект, "РеквФормы_с_Объектом");
Сам РеквФормы_с_Объектом на форме, с типом "ДокументОбъект.МойДокумент"

Хелп!

Нужно - создать объект на форме и дать пользователю выбрать, просмотрев его - сохранять или нет.
1 Fedor-1971
 
21.01.16
12:06
(0) как-то непонятно, ты что сделать то хочешь?
Открыть форму существующего объекта, тогда новый структура(Ключ", СсылкаНаОткрываемыйОбъект)
Открыть заполненную форму нового объекта, тогда новый структура("ДанныеКопирования", СсылкаНаКопируемыйОбъект) и в ПриСозданииНаСервере инициируй заполнение данными из полученного объекта.
2 bolobol
 
21.01.16
12:12
(1) Хм.. Исправлю: Нужно - создать объект, заполнить и дать пользователю выбрать, просмотрев его - сохранять или нет, т.е. - открыть форму созданного и заполненного _объекта_, а не ссылки.

И перефразирую: Дать пользователю посмотреть созданный и заполненный объект, который не записан в базу.
3 Pro-tone
 
21.01.16
12:21
(2) выводи в таблицу тогда ему на предпросмотр, форму заполнить отдельно от ссылки в УП не получится, в обычном приложении вроде было можно
4 Fedor-1971
 
21.01.16
12:31
(2) тогда определись чем хочешь заполнить форму (ссылка на это Чем обязательна), передаёшь ссылку новый Структура("ЧемЗаполняем", СсылкаНаЧем), в форме нового объекта в ПриСозданииНаСервере проверяешь Параметры.Свойство("ЧемЗаполняем") - если есть, то заполняй форму из данных Параметры.ЧемЗаполняем. Пользователь, может что-то подправить и сохранить или нет.

Второй вариант с фрм=ПолучитьФорму и собственно заполнить её данными через ЗаполнитьЗначенияСвойств(фрм.Объект, Объект) - только учти, что Объект - это ДанныеФормы, а не сам объект из БД.
5 bolobol
 
21.01.16
13:28
Апну, что ли...
6 LordCMEPTb
 
21.01.16
13:37
(5) А чем вариант из (4) не понравился?
7 bolobol
 
21.01.16
13:39
(6) В (4) нет варианта. Где вы его увидели?
8 bolobol
 
21.01.16
13:41
+(7) ПолучитьФОрму(...) в УФ уже вызывает какие-то действия со стороны платформы, причём действия с данными переданной ссылки, то есть - идёт отработка механизмов, выходящих за рамки пишущейся обработки, что недопустимо.
9 LordCMEPTb
 
21.01.16
13:42
Тогда нужен вопрос, на который не получен ответ.
Ибо на "создать объект на форме и дать пользователю выбрать, просмотрев его - сохранять или нет" даны 2 варианта:
- заполнять при открытии по переданным параметрам
- получать форму, и заполнять реквизит "объект", а уже потом отображать
10 LordCMEPTb
 
21.01.16
13:45
(8) Все правильно, так и должно быть, ибо при получении формы отрабатывает обработчик "ПриСозданииНаСервере".
А что за механизмы такие, которые выходят за рамки обработки?
11 bolobol
 
21.01.16
13:52
(10) Отработка этих самых механизмов при СозданииНаСервере. Если в нём из-за данных в объекте ошибка выпадает - форма не будет получена. Тупик)
12 LordCMEPTb
 
21.01.16
13:54
(11) Если при создании формы появляются ошибки, которые не дают открыть форму, то нужны костыли в обработчике... Или костыли в обработке, которые изменяют данные, открывают форму, возвращают данные...
13 bolobol
 
21.01.16
13:56
(12) В том-то и дело. Костыли придуманы, причём - сразу. А вот прямого решения, в тираж пускаемого - нет. Либо по незнанию, либо по отсутствию как такового.
14 LordCMEPTb
 
21.01.16
13:59
(13) Ничего не понял. Решение вопроса есть, но прямого решения на вопрос, который меняется со временем, нет. Парадокс...
15 bolobol
 
21.01.16
14:01
(14) Решение с костылём-то не путайте!
16 LordCMEPTb
 
21.01.16
14:04
(15) Да хотелось бы вопрос увидеть, на который прямого решения нет. Могу еще похожую тему подсказать, которая вроде связана с документами, с открытием формы, с решением:
v8: Создать объект документа и открыть его форму 8.2
17 bolobol
 
21.01.16
14:44
(16) И так сделал:

ПолучитьФорму("...ФормаОбъекта", Новый Структура("Ключ, Объект", Объект.СсылкаНаОбъект, РеквФормы_с_Объектом))

- не взлетает
18 LordCMEPTb
 
21.01.16
14:52
(17) Ну вот! Другое же дело! Теперь четко видно вопрос! Жаль, что не мне...
Я в этом куске сознания вижу лишь обрывок описания ситуации. Где сделал? В форме обработки? В модуле обработки? В форме форме документа? Когда сделал? До открытия? После открытия? Во время открытия? Перед созданием формы? Что такое СсылкаНаОбъект? Прописан ли обработчик в открываемой форме для обработки входящих параметров?
19 bolobol
 
21.01.16
14:59
(18) Кхм... Я тему не для "обучать" создал - я в ней вопрос задаю, да?
20 LordCMEPTb
 
21.01.16
15:04
(19) В таком случае более ничем не могу помочь, ибо нужен человек, который поймет эти обрывки сознания. Мой компилятор отказывается считать это правильным вопросом.
21 Fedor-1971
 
21.01.16
15:12
(17) давай на примере. Есть открытая форма обработки, в ней есть ТЧ с данными для счетов. В строках, например, ссылки на документы. Нам нужно открыть счёт, заполненный данными из текущей строки. Пользователь решает сохранять или нет.
Угадал?
22 bolobol
 
21.01.16
15:17
(21) Тут нечего угадывать. Из ссылки получен объект, изменён, передан на у-форму обработки. Надо открыть форму объекта и показать изменённый объект, а не то что лежит в базе по ссылке.
23 bolobol
 
21.01.16
15:22
До кучи к (3) - реквизит формы с типом *Объект - на форму не вывести, т.е. имеет смысл считать, что платформа не поддерживает возможность открытия формы изменённого объекта...
24 Fedor-1971
 
21.01.16
15:32
(22) Как вариант: Сначала читаем объект через ПолучитьФорму, потом изменяем, то что в форме есть (фрм.Объект - то что загрузилось в форму) и только потом Показать() пользователю.
25 bolobol
 
21.01.16
15:34
(24) Эт-то слишком просто!

И невозможно, когда ПолучитьФорму отрабатывает с ошибкой.
26 Fedor-1971
 
21.01.16
15:37
(25) так ПолучитьФорму вернёт Неопределено? А что мы предъявим пользователю для принятия решения? Если ПолучитьФорму отработает с ошибкой, то и ОткрытьФорму наступит на те же грабли, только ещё и пожалуется.
27 bolobol
 
21.01.16
15:45
(26) Читать умеем? Вопрос задан мною: как открыть форму объекта?, а не ссылки! Вы предлагаете получить форму с данными ссылки!!! А неисправные данные объекта, который открывается - это моя головная боль, моей обработки. Неисправные же данные сохранённые в базе (по ссылке!!!!) - это головная боль всех, кто пожелает хотя бы получить форму этого документ, в том числе и для моей обработки - это тоже нерешимая проблема.
28 Pro-tone
 
21.01.16
15:54
(27) твоя головная боль - что ты пообещал, видать, сделать то, чего на управляйках сделать нельзя, теперь иди на попятную заказчику, и скажи, что поспешил с обещаниями и сделай как я предложил в (3)
29 Fedor-1971
 
21.01.16
16:15
(27) другими словами - Из-за каких-то причин (обновления или чего другого) перестали открываться формы некоторых документов, поскольку там сбойные данные и тебе выдали задание отремонтировать именно данные? Вот и ремонтируй их.
Создай таблицу со ссылками на сбойные доки, рядом строковая колонка "Изменено" с понятным описанием изменений, рядом Булева колонка Принять - ты выбрал, готов ремонтировать и пользователь соглашается приемлемо ему такое изменение или нет.
Выхода только 2 либо получить форму, либо изменить и сохранить объект.
30 bolobol
 
21.01.16
16:20
(28) (29) Товарищи, позвольте мне уж самому решать что я буду делать и как; буду ли вообще делать то, что не делается в принципе))

Суть задачи описана предельно доступно. И, раз не поддерживается платформой - то и обсуждать-то здесь больше нечего!