|   |   | 
| 
 | УТ 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) Да,Ваш способ даже попроще будет)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |