Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не обновляется реквизит формы (платформа 8.2.19.106)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
andrew76
Добрый день !

Имеется следующая проблема: на форме элемента справочника имеется элемент управления –объект Надпись.
В заголовок этого объекта пишется строковое значение места рождения сотрудника- страна ,область , район, город:



Редактирование реквизитов места рождения сотрудника происходит через дополнительную форму, вызываемую по нажатию
кнопки на форме элемента справочника:




Проблема в следующем :при изменении реквизитов места рождения (через доп.форму) не происходит обновление формы
элемента справочника, присутствуемый на ней реквизит Надпись показывает старое значение места рождения.
Нужно заново открывать форму ,чтобы текстовый реквизит показывал верное значение.
podcast
andrew76 @ Сегодня, 10:36 необходимо зарегистрироваться для просмотра ссылки ,
После заполнение реквизита нужно перечитать и обновить форму.
ЭтотОбъект.Прочитать();
ЭтаФорма.Обновить();
andrew76
Цитата(podcast @ 01.08.17, 12:53) необходимо зарегистрироваться для просмотра ссылки
andrew76 @ Сегодня, 10:36 необходимо зарегистрироваться для просмотра ссылки ,
После заполнение реквизита нужно перечитать и обновить форму.
ЭтотОбъект.Прочитать();
ЭтаФорма.Обновить();


Не получается что-то...
Вот процедура которая записывает обновленные реквизиты:
(за код не пинайте)

form =Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаСпискаДляОк");
form1=Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаЭлементаДляОК");

obj=form.ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка;
obj_reg=obj.ПолучитьОбъект();

Если ЭлементыФормы.Страна_рож1.Значение <> obj.СтранаРождения.Ссылка тогда
     obj_reg.СтранаРождения=ЭлементыФормы.Страна_рож1.Значение;
     obj_reg.Записать();
     form1.Обновить();
КонецЕсли;

Закрыть();

podcast
andrew76 @ Сегодня, 11:12 необходимо зарегистрироваться для просмотра ссылки ,
Не очень понятно что происходит в коде, но примерно так.
form =Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаСпискаДляОк");
form1=Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаЭлементаДляОК");

obj=form.ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка;
obj_reg=obj.ПолучитьОбъект();

Если ЭлементыФормы.Страна_рож1.Значение <> obj.СтранаРождения.Ссылка тогда
     obj_reg.СтранаРождения=ЭлементыФормы.Страна_рож1.Значение;
     obj_reg.Записать();
     obj_reg.Прочитать();
     ЭтаФорма.Обновить();
КонецЕсли;

Закрыть();
andrew76
Нет,надпись не обновляется,объект надпись расположен на форме form1=Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаЭлементаДляОК")
может надо писать так :
 form1.Обновить()
вместо
 ЭтаФорма.Обновить()
?


Цитата(andrew76 @ 01.08.17, 14:25) необходимо зарегистрироваться для просмотра ссылки
Нет,надпись не обновляется,объект надпись расположен на форме form1=Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаЭлементаДляОК")
может надо писать так :
 form1.Обновить()
вместо
 ЭтаФорма.Обновить()
?


Так даже тупо записать значение в заголовок текстового реквизита не получается:

form1.ЭлементыФормы.Наз_местаРождения.Заголовок="1111";
andrew76
Проверил в отладчике - на самом деле всё присваивается как мне нужно.Просто форма не желает обновляться.
И ещё -текстовый реквизит , в заголовок которого я пишу , расположен на панели,которая расположена на форме эл-та
справочника.Может здесь какой-то подвох ? Никто с таким не сталкивался ?
sava1
Почитайте про Оповестить()
andrew76
Спасибо ! Только через оповещение формы и сработало её обновление.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.