v7: ОткрытьФорму и ОткрытьФормуМодально #561983


#0 by mama_ay
Подскажите плз, 1С 7.7, конфа КА Я из документа "Реализация" создаю новый документ, при помощи ОткрытьФормуМодально, новый документ создается, ему присваивается номер и дата, но сам документ в базе данных физически не создается. а если использовать ОткрытьФорму, тогда все ок. подскажите в чем проблема? код в документе "Реализация":
#1 by zak555
77 и КА ?
#2 by Fragster
там есть "комплексная"
#3 by mama_ay
нет , 1С 7.7 конфигурация "комплексная" - Бухгалтерия Торговля Склад Зарплата Кадры
#4 by Guk
так пока не запишешь, вроде бы и так и так не создается...
#5 by mama_ay
после "ОткрытьФормуМодально("Документ.НовыйДокумент", СЗ);" в СЗ возвращается ссылка на НовыйДокумент я потом пытаюсь его записать, но он все равно не создается.
#6 by aka AMIGO
за последним оператором "ОткрытьФорму" есть еще строки в процедуре? зы. мож не всё скопипастил в сабж..
#7 by ДенисЧ
нет там никакой ссылки...
#8 by Guk
так пока форма открыта, вроде как новый документ не возвращается...
#9 by aka AMIGO
так вот, при модально процесс остается на операторе ОткрытьФорму, а при немодальном - проваливается вниз, продолжает выполнять все операторы до конца процедуры
#10 by aka AMIGO
Если Док.Выбран = 1 Тогда не выполнится оператор, потому, что док твой не записан, а значит и  выбран=0 !
#11 by andrewks
что-то тут не так... ©
#12 by mama_ay
код отрабатывает, я в отладчике все проверял.
#13 by mama_ay
ок, пусть не ссылка, а заполненный документ, который надо записать.
#14 by mama_ay
форма закрывается потом. и как раз надо когда форма закрывается, документ записать
#15 by andrewks
давай уже код полный. надеюсь, он не на 10 экранов?
#16 by Guk
код может отработать только после закрытия модальной формы. ты что-то не договариваешь...
#17 by mama_ay
если вставить еще вот этот код, то "НовыйДокумент" находит.
#18 by GROOVY
Мля, создай документ сначала программно, потом открой его форму.
#19 by mama_ay
ну да, я же и говорю, что весь код стоит после
#20 by mama_ay
ща попробую
#21 by chief accountant
Зачем вообще его открывать?
#22 by mama_ay
, наверно если не было бы надобности, я бы не открывал.
#23 by chief accountant
Что ты с ним делаешь при открытии?
#24 by mama_ay
я ему передаю номенклатуру, и ТЗ со списком доп номенклатуры, и открывается документ с заполненными значениями, после чего пользователь должен внести в документ свои коррективы и провести его.
#25 by Ёпрст
в модуле формы документа напиши и потом в своей поделке: ОткрытьФормуМодально("Документ.НовыйДокумент", СЗ); Сообщить(СЗ);
#26 by chief accountant
Зачем тогда ?
#27 by mama_ay
у меня есть такой код при закрытии Если Выбран=1 Тогда
#28 by mama_ay
, так как ФИЗИЧЕСКИ НЕ СОЗДАЕТСЯ ОБЪЕКТ
#29 by Ёпрст
ну и ? Что не устраивает тогда ? И.. нафига его потом еще раз после закрытия формы еще раз потом записывать ?
#30 by Ёпрст
Где такую траву взял ?
#31 by chief accountant
Ты уж определись кто будет записывать док - программа или пользователь. И не фиг тут орать, глухих нет. Сам почитай свои посты...
#32 by Ёпрст
всё там создается, ежели только не в транзакции весь этот код с открытием формы.
#33 by mama_ay
, так он не появляется в базе ))
#34 by mama_ay
, ок. я код лишний закоменчу, но проблему это не решит
#35 by chief accountant
Кто будет записывать док???
#36 by Ёпрст
напиши как в . Если будешь в сообщении видеть не ссылку на докуммент а что-то другое, то много думай.
#37 by mama_ay
, док записывает пользователь. 1. Открывается форма нового документа 2. Пользователь смотрит все ли ок 3. Пользователь нажимает кнопку "ОК" (что означает записывает документ) и после того как пользователь нажимает "ОК", документ в базе не создается..
#38 by mama_ay
я в отладчике вижу что документ.ВЫБРАН = 1
#39 by chief accountant
Документ сам ваял?
#40 by Ёпрст
Это всё в транзакцию обёрнуто поди еще ?
#41 by mama_ay
да
#42 by chief accountant
Что в "ОК"?
#43 by mama_ay
все стандартно "#Записать?Провести?Закрыть"
#44 by mama_ay
, нет никакой транзакции нету
#45 by chief accountant
Итак смотри: РКО - делаем кнопку, к ней ОткрытьФормуМодально("Документ.ПриходныйОрдер"); ПКО открывается, жмакаем Записать Все сохранилось.
#46 by mama_ay
, все равно физически не появляется ))
#47 by chief accountant
Врешь
#48 by mama_ay
если бы
#49 by mama_ay
, а может он не записывать, из за того что я ОткрытьФормуМодально вызываю из ОбработкиПроведения ?
#50 by mama_ay
, скорее всего именно по этому, так как я сейчас переместил процедуру в МодульФормы и все заработало.
#51 by Torquader
Разница между ОткрытьФорму и ОткрытьФормуМодально - очень большая. Второй параметр - это то, что передаётся форме в Форма.Параметр. В случае модального открытия никакого контекста обратно не возвращается, так как операторы после ОткрытьФормуМодально выполняются уже после закрытия формы (контекст в этом случае уже не существует). В случае вызова "ОткрытьФорму" мы получаем в переменной контекст открываемой формы (так как реально форма откроется уже после того, как будет закончено исполнение кода) - в этом случае мы что-то можем сделать через контекст (но не всё, так как формы ещё нет - если нужно менять что-то на ней, то нужно дождаться её открытия через "ОбработкаОжидания"). P.S. говорят, что если в открытой модально форме выполнить присвоение Форма.Параметр=Значение, то у переменной, переданной при вызове ОткрытьФормаМодально будет установленное значение (проверять лень).
#52 by Ёпрст
это полный ПЭ. А ничего, что проведение документа, это всегда транзакция , это раз, И пока юзверь не наиграется с модально открытой формой, все остальные курят бамбук, это два ?
#53 by Guk
грамотно ;)...
#54 by GROOVY
Это просто ПЯТЬ!
#55 by Torquader
Ну чего вы так расшумелись - может быть - он сразу закрывает документ с Форма.Закрыть в ПриОткрытии (хотя верится с трудом).
#56 by Ёпрст
ты всю ветку то прочитай.
#57 by Torquader
Попытка создания и проведения документа из процедуры проведения другого документа - это действительно очень "грамотно". Вышлите ему, кто-нить, ЖКК для прочтения - может быть - это его спасёт.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С