|
v7: Работа с Контекстом формы | ☑ | ||
---|---|---|---|---|
0
varelchik
30.07.13
✎
15:10
|
Вроде все элементарно и не хочет работать.
Для н=1 По СписокДокументов.РазмерСписка() Цикл Счет=СписокДокументов.ПолучитьЗначение(н); ДокументСчет.НайтиДокумент(Счет); Расходная=0; ОткрытьФорму("Документ.Т_РасходнаяНакладная",Расходная,ДокументСчет); ДокументРасходная=СоздатьОбъект("Документ.Т_РасходнаяНакладная"); ДокументРасходная.Новый(); глЗаполнитьКопированием(ДокументРасходная,Расходная); Расходная.Форма.Закрыть(1); глПауза(2); ДокументРасходная.АвтоВремяПослеТА(); ДокументРасходная.Записать(); ДокументРасходная.Провести(); Расходная=0; КонецЦикла; Это глюк Контекста формы или у меня? Документ основание разный а расходные создается только по Первому документу списка. |
|||
1
cw014
30.07.13
✎
15:11
|
Ужас то какой...
|
|||
2
cw014
30.07.13
✎
15:11
|
А нафига открывать форму, потом копировать, потом снова закрывать? Еще и паузу вставлять?
|
|||
3
varelchik
30.07.13
✎
15:13
|
Облом переносить блок ввода на основании из расходной.
|
|||
4
varelchik
30.07.13
✎
15:14
|
(2) смотри внимательнее там форма не просто так открывается.
|
|||
5
Попытка1С
30.07.13
✎
15:15
|
Только за создание объекта в цикле, надо бить ссаными тряпками.
|
|||
6
Ёпрст
30.07.13
✎
15:19
|
||||
7
varelchik
30.07.13
✎
15:30
|
(6)Дык яж тоже самое делаю.
|
|||
8
varelchik
30.07.13
✎
15:42
|
Уже и так ан все равно заполняет на основании содержимого первого документа.
|
|||
9
varelchik
30.07.13
✎
15:42
|
Расходная="";
Для н=1 По СписокДокументов.РазмерСписка() Цикл Счет=СписокДокументов.ПолучитьЗначение(н); ДокументСчет.НайтиДокумент(Счет); ОткрытьФорму("Документ.Т_РасходнаяНакладная",Расходная,ДокументСчет); ДокументРасходная=СоздатьОбъект("Документ.Т_РасходнаяНакладная"); ДокументРасходная.Новый(); глЗаполнитьКопированием(ДокументРасходная,Расходная); ДокументРасходная.АвтоВремяПослеТА(); ДокументРасходная.Записать(); КонецЦикла; |
|||
10
uno-group
30.07.13
✎
16:03
|
открытьформумодально()
простое открытие не останавливает дальнейшее выполнение оброботки и получается что за те милисикунды что форма открывалась и заполнялась цикл по остальным документам уже заверщился. |
|||
11
varelchik
30.07.13
✎
16:04
|
(10)ТОЧНО!
Вот виш какой я тормоз. Ща проверю. |
|||
12
Ёпрст
30.07.13
✎
16:07
|
(11) наивный какой.
Если откроешь модально, то все действия по заполнению придётся переписать в самой форме открываемого документа. В (6) решение без изменения мд. |
|||
13
varelchik
30.07.13
✎
16:10
|
(12) упс.
да действительно. (6) ну так яж тоже самое и делаю. |
|||
14
Ёпрст
30.07.13
✎
16:16
|
(13) ну так смотри готовое.
|
|||
15
Ёпрст
30.07.13
✎
16:17
|
если грубо, то Расходная.Форма.Закрыть(1); не сразу закроет твою форму, а цикле и подавно и.. твоя пауза - как мёртвому припарки, надо отдать управление в другую процу, например, по обработке ожидания или в ложном закрытии или во внешнее событие или текстом на форме, или .. еще способы.
|
|||
16
varelchik
30.07.13
✎
16:29
|
(13)так я ж и кажу что в готовом делаться тоже что и я.
Интресное явление получается. Форма открывается лишь раз а Закрыть(0) закрывает форму только после окончания цикла. |
|||
17
Ёпрст
30.07.13
✎
16:32
|
(16) так и есть
|
|||
18
Ёпрст
30.07.13
✎
16:33
|
надо отдать "закрытия формы " в другое событие .
|
|||
19
varelchik
30.07.13
✎
16:33
|
Все оказалось просто
Расходная=""; Для н=1 По СписокДокументов.РазмерСписка() Цикл Счет=СписокДокументов.ПолучитьЗначение(н); ДокументСчет.НайтиДокумент(Счет); ОткрытьФорму("Документ.Т_РасходнаяНакладная",Расходная); Расходная.ВводНаОсновании(ДокументСчет.ТекущийДокумент()); ДокументРасходная=СоздатьОбъект("Документ.Т_РасходнаяНакладная"); ДокументРасходная.Новый(); глЗаполнитьКопированием(ДокументРасходная,Расходная); Расходная.Форма.Закрыть(0); ДокументРасходная.АвтоВремяПослеТА(); ДокументРасходная.Записать(); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |