Имя: Пароль:
1C
 
Обновление текста в поле ввода формы документа
0 Zhora_Vlg
 
10.05.11
06:59
Есть документ, с реквизитом справочник контрагенты.
Есть форма этого документа, куда выведен этот реквизитом в поле ввода.
Эта форма в процедуре ПриЗаписи() меняет наименование этого контрагента и записывает в базу.
А в поле ввода остается старое наименование. Обновить(), Прочитать() не помогает.
Как обновить наименование контрагента в форме документа?
1 Wobland
 
10.05.11
07:01
>меняет наименование этого контрагента
не здесь ли ошибка?
2 Zhora_Vlg
 
10.05.11
07:02
Наименование меняется здесь ошибок нет.
3 Wobland
 
10.05.11
07:02
>Эта форма в процедуре ПриЗаписи() меняет
код покажи
4 Wobland
 
10.05.11
07:03
(2) не об этом речь. менять не наименование надо, а контрагента
5 Zhora_Vlg
 
10.05.11
07:05
Процедура ИзменитьДанныеКонтрагента()

   ФИО = ПолучитьФИО();
   Если Не ЗначениеЗаполнено(ФИО) Тогда
       Возврат;
   КонецЕсли;
   
   АдресПроживанияВладельца = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(ВладелецДисконтнойКарты,"Фактический");
   СтационарныйТелефонВладельца = УправлениеКонтактнойИнформацией.ПолучитьТелефонИзКонтактнойИнформации(ВладелецДисконтнойКарты);
   МобильныйТелефонВладельца = УправлениеКонтактнойИнформацией.ПолучитьТелефонИзКонтактнойИнформации(ВладелецДисконтнойКарты, "ТелефонМобильный");
   ЭлектронныйАдресВладельца = УправлениеКонтактнойИнформацией.ПолучитьАдресЭлектроннойПочтыИзКонтактнойИнформации(ВладелецДисконтнойКарты);
   
   
   Если Не ВладелецДисконтнойКарты.Наименование = ФИО
       Или Не ВладелецДисконтнойКарты.ДатаРождения = ДатаРождения
       Или Не ВладелецДисконтнойКарты.СогласиеНаПолучениеСМСРассылки = СогласиеНаПолучениеСМСРассылки
       Или Не АдресПроживанияВладельца = АдресПроживания
       Или Не СтационарныйТелефонВладельца = СтационарныйТелефон
       Или Не МобильныйТелефонВладельца = МобильныйТелефон
       Или Не ЭлектронныйАдресВладельца = ЭлектронныйАдрес Тогда
       
       Контрагент = ВладелецДисконтнойКарты.ПолучитьОбъект();
       Контрагент.Наименование = ФИО;
       Контрагент.НаименованиеПолное = ФИО;
       Контрагент.ДатаРождения = ДатаРождения;
       Контрагент.СогласиеНаПолучениеСМСРассылки = СогласиеНаПолучениеСМСРассылки;
       Контрагент.Записать();
       
       НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.Объект.Установить(ВладелецДисконтнойКарты);
       
       Запись = НаборЗаписей.Добавить();
       Запись.Объект = ВладелецДисконтнойКарты;
       Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
       Запись.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
       Запись.Представление = АдресПроживания;
       Запись.ЗначениеПоУмолчанию = Истина;
       
       Запись = НаборЗаписей.Добавить();
       Запись.Объект = ВладелецДисконтнойКарты;
       Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
       Запись.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
       Запись.Представление = СтационарныйТелефон;
       Запись.ЗначениеПоУмолчанию = Истина;
       
       Запись = НаборЗаписей.Добавить();
       Запись.Объект = ВладелецДисконтнойКарты;
       Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
       Запись.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйКонтрагента;
       Запись.Представление = МобильныйТелефон;
       Запись.ЗначениеПоУмолчанию = Истина;
       
       Запись = НаборЗаписей.Добавить();
       Запись.Объект = ВладелецДисконтнойКарты;
       Запись.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
       Запись.Вид = Справочники.ВидыКонтактнойИнформации.АдресЭлектроннойПочтыДляОбменаДокументами;
       Запись.Представление = ЭлектронныйАдрес;
       Запись.ЗначениеПоУмолчанию = Истина;
       
       НаборЗаписей.Записать();
       
   КонецЕсли;
   
КонецПроцедуры
6 Zhora_Vlg
 
10.05.11
07:06
(4) не пойму о чем речь
7 Zhora_Vlg
 
10.05.11
07:07
я же говорю наименование контрагента меняется, а отображение остается неизменным
8 Wobland
 
10.05.11
07:07
есть вопрос: Как обновить наименование контрагента в форме документа?

теперь мой вопрос: как обновляешь?
9 Zhora_Vlg
 
10.05.11
07:08
пробовал Обновить() не помогает
пробовал Прочитать() не помогает
нажимал кнопку "Перечитать данные объекта" не помогает
10 Zhora_Vlg
 
10.05.11
07:09
Помогает такой код
ЭлементыФормы.ВладелецДисконтнойКарты.Данные = ЭлементыФормы.ВладелецДисконтнойКарты.Данные;
Но при этом сбрасываются настройки элемента управления.
11 Wobland
 
10.05.11
07:11
это какие настройки?
12 Zhora_Vlg
 
10.05.11
07:12
Например кнопка открытия пропадает.
13 Wobland
 
10.05.11
07:17
(12) а у меня не пропадает...
14 Wobland
 
10.05.11
07:18
а вообще, должно работать: ЭтаФорма.Обновить();
15 Zhora_Vlg
 
10.05.11
07:21
Не работает.
16 RomaH
 
naïve
10.05.11
07:41
(10) странно конечно про сбрасывание настроек

ЗаполнитьЗначения(ЭлементыФормы.ВладелецДисконтнойКарты,ЭлементыФормы.ВладелецДисконтнойКарты)
?
17 Zhora_Vlg
 
10.05.11
07:52
Что за ЗаполнитьЗначения?
18 Zhora_Vlg
 
10.05.11
07:56
ЗаполнитьЗначенияСвойств(ЭлементыФормы.ВладелецДисконтнойКарты,ЭлементыФормы.ВладелецДисконтнойКарты)
Делает форму модифицированной.
Это можно и ЭлементФормы.ВладелецДисконтнойКарты.Значение = ВладелецДисконтнойКарта.
Результат тот же форма модифицирована.
19 Zhora_Vlg
 
10.05.11
08:02
(10),(16) Книга знаний: v8: Как перечитать данные элемента формы?
книга знаний написано что свойства заменяются на значения по умолчанию
20 RomaH
 
naïve
10.05.11
09:32
(18) поставь Значение в исключение
21 Zhora_Vlg
 
10.05.11
22:36
Что за исключения?
22 RomaH
 
naïve
11.05.11
07:02
СП почитай по ЗаполнитьЗначенияСвойств
23 Zhora_Vlg
 
12.05.11
20:52
(22) Помогло. Спасибо.
24 Zhora_Vlg
 
12.05.11
20:56
В исключения добавляю "Значение, Данные". Тогда и кнопка открытия остается и документ не становится модифицированным.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой