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