Имя: Пароль:
1C
1С v8
УТ 10.3 Программно обновить табличное поле
,
0 kIR
 
03.07.13
16:08
Доброго дня!
В Форме элемента справочника Контрагента есть табличное поле - реквизит формы "Контактная Информация", имеющей тип РегистрСведенийНаборЗаписей.КонтактнаяИнформация.

При Заполнении Юридического адреса и нажатию кнопки я хочу копировать юридический адрес в адрес грузополучателя.
Копирование то происходит,но вот как обновить табличное поле?
Через Элементы формы.ИмяТАбПоля.Обновить - не работает, "ОбновитьКолонки" выдает ужас,а "ОбновитьСтроки" тоже не дает результата

Что еще можно сделать?спасибо
1 mikecool
 
03.07.13
16:12
наверное криво заполнены данные, иначе бы по отбору все бы обновлялось
2 kIR
 
03.07.13
16:29
(1)не,если мы вручную жмакнем F5,то все отображается.но это неудобно
3 kIR
 
03.07.13
16:31
(1)код то простейший:

Запрос = Новый Запрос;
запрос.УстановитьПараметр("Объект",Ссылка);
запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
ЗАпрос.Текст = "ВЫБРАТЬ
              |    КонтактнаяИнформация.Представление,
              |    КонтактнаяИнформация.Объект,
              |    КонтактнаяИнформация.Тип,
              |    КонтактнаяИнформация.Вид,
              |    КонтактнаяИнформация.Поле1,
              |    КонтактнаяИнформация.Поле2,
              |    КонтактнаяИнформация.Поле3,
              |    КонтактнаяИнформация.Поле4,
              |    КонтактнаяИнформация.Поле5,
              |    КонтактнаяИнформация.Поле6,
              |    КонтактнаяИнформация.Поле7,
              |    КонтактнаяИнформация.Поле8,
              |    КонтактнаяИнформация.Поле9,
              |    КонтактнаяИнформация.Поле10,
              |    КонтактнаяИнформация.Комментарий,
              |    КонтактнаяИнформация.ЗначениеПоУмолчанию,
              |    КонтактнаяИнформация.ТипДома,
              |    КонтактнаяИнформация.ТипКорпуса,
              |    КонтактнаяИнформация.ТипКвартиры
              |ИЗ
              |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
              |ГДЕ
              |    КонтактнаяИнформация.Объект = &Объект
              |    И КонтактнаяИнформация.Тип = &Тип
              |    И КонтактнаяИнформация.Вид = &Вид";
Итог = Запрос.Выполнить().Выбрать();
Пока Итог.Следующий() Цикл
НоваяЗапись = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
НоваяЗапись.Объект = Итог.Объект;
НоваяЗапись.Тип = Итог.Тип;
НоваяЗапись.Вид = Справочники.ВидыКонтактнойИнформации.АдресГрузополучателя;
НоваяЗапись.Представление = Итог.Представление;
НоваяЗапись.Поле1 = Итог.Поле1;
НоваяЗапись.Поле2 = Итог.Поле2;
НоваяЗапись.Поле3 = Итог.Поле3;
НоваяЗапись.Поле4 = Итог.Поле4;
НоваяЗапись.Поле5 = Итог.Поле5;
НоваяЗапись.Поле6 = Итог.Поле6;
НоваяЗапись.Поле7 = Итог.Поле7;
НоваяЗапись.Поле8 = Итог.Поле8;
НоваяЗапись.Поле9 = Итог.Поле9;
НоваяЗапись.Поле10 = Итог.Поле10;
НоваяЗапись.Комментарий = Итог.Комментарий;
НоваяЗапись.ЗначениеПоУмолчанию = Итог.ЗначениеПоУмолчанию;
НоваяЗапись.ТипДома = Итог.ТипДома;
НоваяЗапись.ТипКорпуса = Итог.ТипКорпуса;
НоваяЗапись.ТипКвартиры = Итог.ТипКвартиры;
НоваяЗапись.Записать();
КонецЦикла;
4 Janna26
 
03.07.13
16:50
(2) ЭтаФорма().Обновить();
5 kIR
 
03.07.13
16:53
(4) Ну тогда уж ЭтаФорма.Обновить(),А во вторых я ж пишу - не работает

Может как то можно имитировать нажатие F5?
6 Славен
 
03.07.13
16:53
ЭлементыФормы.ТвоеПоле.СоздатьКолонки()
7 kIR
 
03.07.13
16:55
(6) пробовал опять же. При обновлении создает колонки = измерениям регистра.И кошмар получается
8 Janna26
 
03.07.13
16:56
(5) ЭтаФорма.Обновить() вот это кажется иметирует нажатие клавищи F5.
И так можно попробовать

Wsh = Новый СОМОбъект("Wscript.shell");

Wsh.SendKeys("^+z");   //имитируем нажатие Ctrl+Z
Wsh.SendKeys("^+я");

Только не помню как пишется F5
9 Славен
 
03.07.13
16:57
(8)в 1с f5 нажимала? сильно помогает?
10 Janna26
 
03.07.13
16:58
(9) Ну если смотреть на пост (2) то да, помогает.
11 Славен
 
03.07.13
17:03
(0)А у тебя вэб-клиент?
12 kIR
 
03.07.13
17:05
(9) да,помогает.
(11) нет,файловый
(10) именно.Скрины выслать?
13 Janna26
 
03.07.13
17:08
(12) я в ответ на (9) пост писала.
14 Славен
 
03.07.13
17:08
фишка в том что после записи в регистр, это ты делаешь в (3) тебе надо все этоже записать в реквизит формы "Контактная Информация", имеющей тип РегистрСведенийНаборЗаписей.КонтактнаяИнформация
15 Славен
 
03.07.13
17:10
посмотри в УТ в общем модуле УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(.....) Задай в неё свои параметры и отображение обновится
16 kIR
 
03.07.13
17:11
(8) и все же спасибо за наводку,сделал так

Wsh = Новый ComОбъект("Wscript.shell");
Wsh.SendKeys("{f5}");
Wsh.SendKeys("{ENTER}");
17 Славен
 
03.07.13
17:12
(16)см (15) это из типовой надо всего лишь в код из 3 добавить строчку (15)
18 Janna26
 
03.07.13
17:18
(16) не за что ;)
19 VitShvets
 
03.07.13
17:22
Процедура Прочитать() не поможет?
20 kIR
 
04.07.13
10:45
(17) Да,Ваш способ даже попроще будет)