Имя: Пароль:
1C
1C 7.7
v7: Закрываем документ текущего пользователя
0 фобка
 
20.10.11
10:24
При записи подчиненного документа нужно обновить реквизиты документа основания. В процедуру ПриЗаписи() подчиненного пишу следующее:

   ДокЛот = CreateObject("Документ.Лот");
   If ДокЛот.FindDocument(ДокОснование) = 1 Тогда
       Try
           ДокЛот.Write();
       Except
           Try
               If OpenForm(ДокЛот.CurrentDocument(),"#ЗакрытиеДокумента") = 0 Then
                   DoMessageBox("Не возможно записать документ! " + LineBreak + ДокОснование + " открыт");
                   ReturnStatus(0);
                   Return;
               //Else
                   //Form.Refresh();
               EndIf;
           Except
               DoMessageBox("Не возможно записать документ! " + LineBreak + ДокОснование + " открыт!!!");
               ReturnStatus(0);
               Return;
           EndTry;
       EndTry;
   EndIf;


У док. основания пишу:


Procedure ПриАктивацииОкна() //это формекс
   Form.Refresh();
EndProcedure

Procedure OnRefresh()
   If Form.Parameter = "#ЗакрытиеДокумента" Then
       Form.Close(0);
   EndIf;
EndProcedure

Сюда не попадает, на форме есть вызов функции,в которую попадаю сразу:

Function  Action()
   If Form.ActiveControl() = "ТЗПеревозок" Then
       ПерезаполнитьСоставПеревозки();
   EndIf;
EndFunction

В ней Form.Parameter пустой. Форма док основания активна, но не закрывается. Если что-то активизировать или переклчиться на другие документы, например, и обратно, то только тогда параметр формы обновляется и док закрывается.
Как побороть? Заранее спасибо за советы.
1 фобка
 
20.10.11
10:30
+(0) вторая попытка видимо не нужна, но к делу не относится, просьба не усердствовать в критике кода
2 Fragster
 
гуру
20.10.11
10:32
главная критика кода в том, что автор пытается писать на английском, чтобы показать, что он настоящий программист, и 1с пользуется только от безысходности
3 Fragster
 
гуру
20.10.11
10:32
особенно доставляет "If ... Тогда"
4 1Сергей
 
20.10.11
10:33
Да, читать код невозможно
5 фобка
 
20.10.11
10:33
(3) переписывал код нерадивого программиста, на транслите пишу почти 8 лет. Больше нет замечаний?
6 filh
 
20.10.11
10:46
найти контекст и закрыть окно, не?
7 filh
 
20.10.11
11:03
а, блин, разобрался я в этих буквах латинских.
Тебе вообще другое надо.

Конт = "";
Если ОткрытьФорму(ДокЛот.ТекущийДокумент(), Конт) = 1 Тогда
 Конт.Форма.Закрыть(0);
КонецЕсли;
8 фобка
 
20.10.11
11:08
(7) Работает, спасибо!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой