Имя: Пароль:
1C
1С v8
Вернуть реквизит из общей формы при закрытии
0 trialex3
 
26.10.21
15:54
Добрый день. Прошу помощи - есть обработка, которая вызывается по расписанию, открывает общую форму и после того как там отработает код обработка вырубает 1С. Теперь понадобилось, что бы при закрытии формы возвращалось значение в обработку которая эту форму открывает. Но весь код, который запускается в общей форме происходит в процедуре при открытии и если закрывать оттуда форму, то система ругается - нельзя закрыть неоткрытую форму. Как можно вернуть значение?
1 trialex3
 
26.10.21
16:00
Код обработки:
Процедура ПриОткрытии()
    ВремяНач = ТекущаяДата();
    Форма = ПолучитьОбщуюФорму("РасчетМатериалов");
    Форма.Режим = "Автоматически";
    ВсегоПросчитано = Форма.ОткрытьМодально();
    ВремяКон = ТекущаяДата();
    ПодготовитьПисьмоОЗавершенииОтчета(ВремяКон-ВремяНач,ВсегоПросчитано);
    ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры


Код общей формы:

Процедура ПриОткрытии(Отказ)
ЗаполнитьЗначенияНаФормеПоУмолчанию();
Если Режим = "Автоматически" Тогда
ЗаписатьВСправочник(Неопределено);
КонецЕсли;
КонецПроцедуры
2 Greeen
 
26.10.21
16:02
есть обработка, которая вызывается по расписанию
А нельзя это все сделать в обработке, без открытия общей формы?
3 trialex3
 
26.10.21
16:05
(2) весь код был давным давно написан в общей форме и я грубо говоря там лишь на кнопку нажимаю и куча всего делается. Все это переносить в обработку - ну крайнее решение.
4 trialex3
 
26.10.21
16:06
ЗЫ ошибся с кодом. Там форма немодально сейчас открывается. Это остался код от попыток вернуть значение при закрытии.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший