|
УФ. Открыть произвольную форму документа | ☑ | ||
---|---|---|---|---|
0
mzelensky
11.11.14
✎
09:04
|
Доброго всем.
Возможно вопрос избитый, но именно РЕШЕНИЯ проблемы я не нашел. Хочу сделать так: создаю документ, заполняю часть информации. Далее по нажатию кнопки нужно открыть модально дополнительную формочку ЭТОГО ЖЕ документа, где будет отображаться табличная часть ЭТОГО документа. Заполняю эту табличную часть, нажимаю "ОК" - формочка закрывается, производятся определенные действия в основной форме документа. Реализовывал это на обычных формах, точно знаю, что это ВОЗМОЖНО! Но при попытке сделать это на УФ получаю блокировку объекта. Подозреваю, что как-то не так открываю форму документа. Делал вот так: ОткрытьФормуМодально("Документ.А_ЗаявкаВПТО.Форма.ФормаВыбораПрогнозируемогоСрокаУ", Новый Структура("Ключ", Объект.Ссылка)); Где косячу??? |
|||
1
olegves
11.11.14
✎
09:05
|
лучше используй закладки на одной форме
|
|||
2
olegves
11.11.14
✎
09:06
|
+ пока ты не записал объект, ссылка пустая
|
|||
3
butterbean
11.11.14
✎
09:06
|
(0) у тебя кривое решение — делай в одной форме
чтобы не было ошибки можно записать перед открытием другой формы |
|||
4
mzelensky
11.11.14
✎
09:07
|
(1) Закладки не подходят. Нужно именно отдельная формочка. Да и в принципе, как это сделать меня интересует.
(2) Согласен. Как сделлать так, чтобы работало? |
|||
5
Fish
11.11.14
✎
09:07
|
(1) +100. Проблема похоже в том, что ты пытаешься открыть другую форму для незаписанного документа.
|
|||
6
mzelensky
11.11.14
✎
09:08
|
(3) Решение не кривое. Просто ты не знаешь как его реализовать.
|
|||
7
Fish
11.11.14
✎
09:08
|
(4) Запиши объект перед открытием другой формы.
|
|||
8
mzelensky
11.11.14
✎
09:10
|
(5) Естественно документ не записан. И мне НЕ надо его записывать (точнее я не хочу его записывать).
Мне нужно: 1) Создается новый док 2) Заполняется часть инфы 3) Открывается модальное окошко. Там производятся манипуляции с ТЧ. 4) Какие-либо еще действия с основнйо формой дока 5) Запись документа. |
|||
9
mzelensky
11.11.14
✎
09:11
|
Повторюсь. На обычных формах все это можно было без проблем сделать.
|
|||
10
Рэйв
11.11.14
✎
09:12
|
(0)Ты наверное делаешь обычную форму , а надо делать форму документа, только не ставить галку что она основная. Для того чтобы Объект у фрорм был один.Тогда не важно записан док или нет, данные будут браться из Объекта,который у формы основной реквизит, а не из ссылки
|
|||
11
butterbean
11.11.14
✎
09:14
|
(8) модальное открытие другого окошка это и есть кривота
но чтоб работало ты получай форму, потом делай для нее ЗначениеВДанныеФормы(), потом уже открывай... ссылка там нафиг не нужна, док ведь не записан |
|||
12
Fish
11.11.14
✎
09:14
|
(8) "Открывается модальное окошко" - А ты слышал наверное, про уход от модальности?
|
|||
13
mzelensky
11.11.14
✎
09:15
|
(10) Я пробовал и так и так.
Допустим. Создаю форму с основным реквизитом ОБЪЕКТ (ну как пологается). Как из основнйо формы дока открыть модально эту дополнительную форму? |
|||
14
mzelensky
11.11.14
✎
09:16
|
(12) Чувак, не пытайся парить меня методологией.
Я слышал про УХОД от модальности. И моя схема без проблем отработает, даже если я отработаю асинхронный вызов. Проблема у меня не в этом. Если не знаешь что сказать по теме, то не пиши ерунды. |
|||
15
mzelensky
11.11.14
✎
09:18
|
(11) Напиши пример открытия второй формы. И место, где применить "ЗначениеВДанныеФормы()" ?
|
|||
16
Fish
11.11.14
✎
09:18
|
(14) Тебя никто не парит. Вся твоя проблема в том, что ты пытаешься применить методики обычных форм к УФ. А это в корне неправильно. А по теме тебе уже всё сказали.
|
|||
17
butterbean
11.11.14
✎
09:20
|
(15) пля ну
форма = ПолучитьФорму(...); ЗначениеВДанныеФормы(ДанныеФормыВЗначение(...),форма.объект); форма.открытьмодально(); |
|||
18
mzelensky
11.11.14
✎
09:21
|
(17) Через "ПолучитьФорму"...хм...ну сейчас попробую
|
|||
19
mzelensky
11.11.14
✎
09:37
|
(17) а как ты
ДанныеФормыВЗначение(...) НА клиете применишь? Метод только на сервере доступен. |
|||
20
chudishe
11.11.14
✎
09:53
|
(9) И чо?
|
|||
21
mzelensky
11.11.14
✎
09:54
|
(16) Сказали то много, а вот рабочего примера так никто и не дал.
|
|||
22
chudishe
11.11.14
✎
09:54
|
(17) Не взлетит.
|
|||
23
mzelensky
11.11.14
✎
09:54
|
(20) И то!
|
|||
24
mzelensky
11.11.14
✎
09:55
|
(22) Вот и я считаю - не взлетит.
|
|||
25
chudishe
11.11.14
✎
09:56
|
(23) Тебе же сказали, что у тебя неправильный подход. Ты считаешь, что все должно в УФ работать также как и в обычном приложении, но это не так.
|
|||
26
mzelensky
11.11.14
✎
09:58
|
(25) Блин, да не считаю я так!!! УСПОКОЙТЕСЬ УЖЕ!!!!!! Смущает слово "МОДАЛЬНО", хорошо, убираем слово "МОДАЛЬНО". Просто нужно открыть форму!!!!!!!!
Блин, что за народ. на пустом месте проблему делают. |
|||
27
mzelensky
11.11.14
✎
10:01
|
Или ни у кого фантазии не хватает больше чем на "ЗАКЛАДКИ" и "ЗАПИСАТЬ ОБЪЕКТ, А ПОТОМ ОТКРЫТЬ ПО ССЫЛКЕ" ? Что за программисты пошли :(
Я уж лучше массив структур через параметры переброшу. Но в данном случае куда правильней просто открыть форму объекта. |
|||
28
chudishe
11.11.14
✎
10:01
|
(26) Дело не модальности. Я вот просто приведу тебе пример с формой подбора. В обычном приложении её делали обычно сбоку и открывали в режиме выбора. В УФ делают форму с двумя списками, в одном динамический список с номенклатурой, в другом подобранная номенклатура, а потом пользователь нажимает кнопочку и вся выбранная номенклатура передается в документ.
К чему я это все. Тебе нужно поменять подход. |
|||
29
chudishe
11.11.14
✎
10:03
|
(27) Для начала спроси себя, так ли нужна тебе блокирующая форма в отдельном окне, может все можно сделать в форме документа.
|
|||
30
mzelensky
11.11.14
✎
10:08
|
(29) Нужна отдельная форма. Переходим к следующему шагу.
|
|||
31
chudishe
11.11.14
✎
10:25
|
(30) Какие данные нужны в этой отдельной форме?
|
|||
32
mzelensky
11.11.14
✎
10:32
|
(31) Табличная часть документа.
|
|||
33
1sanekmaloi1
11.11.14
✎
10:34
|
Зачем объект в новой форме?
Открывай произвольную форму в нее передавай нужные данные, например строки из тч, изменяй дополняй, удаляй потом при закрытии переноси данные в док |
|||
34
chudishe
11.11.14
✎
10:35
|
(32) (33) Вот это был, короче, следующий шаг.
|
|||
35
Гёдза
11.11.14
✎
10:35
|
НЕЛЬЗЯ открыть 2 формы одного объекта.
Делай форму с тч и зполняй |
|||
36
mzelensky
11.11.14
✎
10:36
|
(27)(34) Я этот вариант еще в (27) Изложил:
Я уж лучше массив структур через параметры переброшу. Но в данном случае куда правильней просто открыть форму объекта. Не внимательно читаете. |
|||
37
mzelensky
11.11.14
✎
10:37
|
(36) -> (33)(34)
|
|||
38
chudishe
11.11.14
✎
10:38
|
(36) Нет, не правильней. (25)
|
|||
39
mzelensky
11.11.14
✎
10:38
|
(35) Вообще НЕЛЬЗЯ открыть 2 формы одного объекта ???
|
|||
40
chudishe
11.11.14
✎
10:39
|
(39) Нет, нельзя. Ты вообще виде, что ты передаешь в форму документа для его открытия? Ключ. Ссылку. Из ссылку получаются данные и по ним создается форма, т.е. для каждой формы создается свой экземпляр объекта.
|
|||
41
mzelensky
11.11.14
✎
10:41
|
(40) Так я сразу написал, что я неправильно делаю (не правильно пытаюсь открыть форму по ссылке). Собственно ради всего этого тут ветку и создал. Надеялс, что вместо Ссылки можно пердать что-то другое.
|
|||
42
chudishe
11.11.14
✎
10:51
|
(41) Ты бы это, я не знаю, СП что ли читнул. Там все про это написано.
|
|||
43
Жан Пердежон
11.11.14
✎
11:19
|
в первой форме:
ОткрытьФормуМодально("Документ.ЗаявкаВПТО.Форма.ФормаВыбораПрогнозируемогоСрокаУ", Новый Структура("ТЧ", Объект.Товары)); во второй форме: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("ТЧ") тогда Товары.Загрузить(Параметры.ТЧ.Выгрузить()); КонецЕсли; КонецПроцедуры |
|||
44
mzelensky
11.11.14
✎
11:21
|
(43) ТЫ сам так пробовал? НА сколько я знаю ТЧ не передается параметрами..
|
|||
45
Адский плющ
11.11.14
✎
11:32
|
Открывать модально форму объекта это ФУ
|
|||
46
mzelensky
11.11.14
✎
11:58
|
(45) Изыди
|
|||
47
Рэйв
11.11.14
✎
12:00
|
(44)После некоторых танцев с бубном у меня получилось так:
1.Делаешь форму документа. основная= ложь 2. Открываешь так: //------- Пар=Новый Структура("Объект",Объект); ОткрытьФорму("Документ.ШаблонНовогоДокумента.Форма.ФормаДокументаВтораяУФ",Пар,ЭтаФорма); //------ 3. во второй форме:(заполняем Объект) //--------- &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Об=ДанныеФормыВЗначение(Этаформа.Параметры.Объект,Тип("ДокументОбъект.ШаблонНовогоДокумента")); ЗначениеВРеквизитФормы(Об,"Объект"); КонецПроцедуры 4. во второй форме надо убрать модифицированность при закрытии чтоб не задавало лишних вопросов: //------ &НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) ЭтаФорма.Модифицированность=Ложь; КонецПроцедуры 5.во второй форме оповещаем первую о выборе, в параметр передаем измененный Объект: //------- ///---------- &НаКлиенте Процедура ПриЗакрытии() Этаформа.ОповеститьОВыборе(Объект); КонецПроцедуры 6.В первой форме получаем выор. обновляем Объект: //----- &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Обновитьобъект(Новый Структура("Объект",ВыбранноеЗначение)); КонецПроцедуры Процедура ОбновитьОбъект(струкПараметр) Об=ДанныеФормыВЗначение(струкПараметр.Объект,Тип("ДокументОбъект.ШаблонНовогоДокумента")); ЗначениеВРеквизитФормы(Об,"Объект"); КонецПроцедуры //--------- не забывай, что у меня имена отличаются:-) Разберешься я думаю. У меня все нормально сработало |
|||
48
Рэйв
11.11.14
✎
12:02
|
можно наверное даже в книгу знаний:-) Пригодится поди кому
|
|||
49
mzelensky
11.11.14
✎
12:04
|
(47)(48) Отлично! Именно то, что мне нужно. ОГРОМНОЕ СПАСИБО!!!
А то начинают рассказывать - нельзя, невозможно, почитай СП... |
|||
50
mdocs
11.11.14
✎
12:05
|
уф какашка. аминь))
|
|||
51
1sanekmaloi1
11.11.14
✎
12:25
|
(49) можно все, но вот только зачем?несколько раз гонять объект на сервер и обратно, если можно все сделать менее затратным для системы?
|
|||
52
18_plus
11.11.14
✎
12:28
|
(51) сервер, клиент... мы консерваториев не кончали.
|
|||
53
Рэйв
11.11.14
✎
12:31
|
(51)Не так уж и затратен один Объект для системы
Да еще типа ДанныеФормыСтруктура:-) |
|||
54
chudishe
11.11.14
✎
12:45
|
(47) Что-то мне подсказывает, что в веб-клиенте это не взлетит.
|
|||
55
mzelensky
11.11.14
✎
12:54
|
(53) У тебя полностью эта схема работает? Я что-то в блокировку объекта уперся
|
|||
56
chudishe
11.11.14
✎
13:00
|
(55) А я ведь говорил, что в этом методе есть подвох, говорил?
|
|||
57
Рэйв
11.11.14
✎
13:01
|
(55)Да, полностью. Правда я на 8.3 запускаю. Не знаю как на 8.2 будет работать.
|
|||
58
mzelensky
11.11.14
✎
13:01
|
(56) Говорил, говорил. Возьми с печки пирожок.
|
|||
59
mzelensky
11.11.14
✎
13:02
|
(57) Я тоже на 1С:Предприятие 8.3 (8.3.4.465).
Получается я открываю форму - все открывается, но при попытке добавить данные в ТЧ - получаю ошибку блокировки данных своим же пользователем. |
|||
60
Рэйв
11.11.14
✎
13:05
|
(59)Я специально проверил с добавлением в таб.часть, новая строка нормально переносится в первую форму.
Ты модифицированность не забываешь убирать? |
|||
61
mzelensky
11.11.14
✎
13:28
|
(60) Модифицированность это уже при закрытии формы. А у меня блокировка выходит при попытке интерактивно добавить новую строку в ТЧ (во второй форме)
|
|||
62
Рэйв
11.11.14
✎
13:53
|
(61)Ну тогда бубен в тебе в руки:-)
|
|||
63
1sanekmaloi1
11.11.14
✎
14:10
|
Это на типовом решении все делается?
в бухе 3.0 например в ПТУ есть кнопка в тч "изменить", там смысл ее такой, вся тч едет во врем хранилище, открывается форма обработки в ней из хранилища заполняется тч, пользователь делает манипуляции с тч, по кнопке перенести в документ идут обратные действия, это за основу взять можно и наваять свое что то а если твой док на типовой бухе 3.0, то вообще 3 минуты прикрутить |
|||
64
mzelensky
11.11.14
✎
14:12
|
(62) Давно хочу себе такой купить!
|
|||
65
mzelensky
11.11.14
✎
14:13
|
(63) Спасибо за подсказку. Посмотрю.
Я это все на УТ 10.3 вояю. |
|||
66
olegves
11.11.14
✎
14:27
|
(8) тебе для неосновной формы не надо передавать Объект.ссылка, а работать через хранилище и метод Оповестить
|
|||
67
chudishe
11.11.14
✎
14:58
|
(65) Я тебе об этом способе и говорил. Да и сам ты к этому выводу пришел. Не нужно изобретать велосипедов и придумывать вот такую ересь (47). В будущем это просто может перестать работать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |