Форум Чистова. Подготовка к экзаменам 1С
О форуме => Конфигурирование => Тема начата: Regina_20158 от Ноябрь 04, 2015, 10:55:48 am
-
Добрый день! Подскажи пожалуйста, платформа 8.3 , управляемое приложение, обработка -> форма обработки -> код :
&НаКлиенте
Процедура ОбновитьКарту(Команда)
ОбновитьКартуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбновитьКартуНаСервере()
Карта = БП.ПолучитьОбъект().ПолучитьКартуМаршрута();
КонецПроцедуры // ОбновитьКартуНаСервере()
При повторном нажатие , на кнопку обновить , карта маршрута не обновляется, необходимо перезакрыть форму, только потом обновляется, как обновить форму ?
-
извини, даже наверно не форму, а данные на форме, точнее карту маршрута ?
-
У меня близкая по теме задача. Нужно обновить данные формы после проведения документа. Важно, чтобы обновление данных было автоматически, а не так, что пользователь вынужден закрыть форму и открыть ее снова.
Какие изменения происходят:
- программно заполняется поле "МетодСписания" (исходя из сегодняшнего метода списания). Можно, конечно, ПриОткрытии заполнить его, но появятся другие задачи, когда программно будут заполняться поля после проведения (когда будет вычисляться себестоимость, остатки и т.д.)
Подробнее:
Так как в контекст модуля формы не входит модуль объекта и наоборот, образовалась проблема с обновлением данных.
Мои варианты решения проблемы:
1. Создаем кнопку на форме, добавляем ей процедуру:
&НаСервере
Процедура ОбновитьДанныеНаСервере()
ЭтаФорма.Прочитать();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДанные(Команда)
ОбновитьДанныеНаСервере();
КонецПроцедуры
2. Получить форму из модуля объекта (но не обновляет):
Объект1 = Ссылка.ПолучитьОбъект();
Объект1.Записать(РежимЗаписиДокумента.Запись);
Форма1 = Объект1.ПолучитьФорму("ФормаДокумента");
Форма1.ЭтаФорма.Прочитать();
3. Не понял как использовать метод ОбновитьИнтерфейс(), но форма не обновляется, хотя в F1 сказано:
Обновляет командный интерфейс, рабочий стол и открытые формы с учетом текущих значений функциональных опций и их параметров
-
ОбновитьОтображениеДанных();
Метод выполняется на клиенте