Консультация № 159580
04.02.2009, 10:10
0.00 руб.
0 3 1
Добрый день!
1С в.7.7 Использую OLE-сервер. Для обновления изменяющихся данных в глобальном модуле выполняю
Код:

procedure ПриНачалеРаботыСистемы()
ОткрытьФорму("Обработка.Новый1", конт);
ОбработкаОжидания("Выполнить", 1);
endprocedure

Процедура Выполнить()
конт.форма.обновить();
КонецПроцедуры

В результате в форме данные сервера обновляются, но при этом в той же форме невозможно ввести данные в поля ввода - все каждую секунду автоматом очищается. Как с этим бороться? Есть ли возможность обновлять не всю форму, а только нужные контролы?
PS. В 1С 8 такой проблемы нет.

Обсуждение

Неизвестный
04.02.2009, 18:28
общий
это ответ
Здравствуйте, Studiosus! Интервал в одну секунду вы установили сами, это единица в процедуре: ОбработкаОжидания("Выполнить", 1);
Для сохранения и восстановления нужных вам значений в обработке нужно в процедуру "ПриЗакрытии" добавить команды СохранитьЗначение(<Идентификатор>,<Значение>) в количестве сколько значений Вам надо запомнить, а в процедуру "ПриОткрытии" столько же команд ВосстановитьЗначение(<Идентификатор>). Есть вообще то еще один способ , но этот надежнее. Удачи !!!
Неизвестный
06.02.2009, 16:08
общий
Если Конт.Форма.Заголовок()="Нужная нам форма" Тогда
Конт.НужноеЗначение=5;
Или попробуйте Конт.Форма.ПолучитьАтрибут("НужноеЗначение")=5;
Неизвестный
06.02.2009, 16:36
общий
Всем спасибо!
Решил проблему тупо в лоб: данные, которые необходимо динамически обновлять, свел в одной форме, а поля ввода разместил в другой форме. Сейчас обновление первой формы по "ОбработкаОжидания" не влияет на ввод данных во второй форме...
Форма ответа