|   |   | 
| 
 | УФ. Открыть произвольную форму документа | ☑ | ||
|---|---|---|---|---|
| 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). В будущем это просто может перестать работать.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |