| 
    
            
         
         | 
    
  | 
v7: Как в открытой форме документа обновить значения реквизитов или конкретно реквизит Контраг | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        box    
     26.06.20 
            ✎
    17:07 
 | 
         
        1С 7.7 Как в открытой форме документа обновить значения реквизитов или конкретно реквизит Контрагент? Форма.Обновить() не подходит     
         | 
|||
| 
    1
    
        Builder    
     26.06.20 
            ✎
    17:10 
 | 
         
        В смысле?     
         | 
|||
| 
    2
    
        Сияющий Асинхраль    
     26.06.20 
            ✎
    17:11 
 | 
         
        А что же это за реквизит, что сам собой меняется?     
         | 
|||
| 
    3
    
        box    
     26.06.20 
            ✎
    17:12 
 | 
         
        В открытом документе, в котором уже заполнен реквизит Контрагент, запускается обработка, которая изменяет Наименование в справочнике Контрагенты. При этом в открытой форме документа представление реквизита Контагент не изменяется     
         | 
|||
| 
    4
    
        box    
     26.06.20 
            ✎
    17:15 
 | 
         
        Через кнопку выбора в поле Контрагент также не видны изменения, но когда в списке открыть объект Контрагент, то изменения видны     
         | 
|||
| 
    5
    
        box    
     26.06.20 
            ✎
    17:15 
 | 
         
        Одним словом, каким образом перечитать данные в открытой форме документа?     
         | 
|||
| 
    6
    
        Builder    
     26.06.20 
            ✎
    17:17 
 | 
         
        Видимо для начала надо перечитать контрагента.
 
        А потом что-то типа Контрагент = ВыбКонтрагент;  | 
|||
| 
    7
    
        Сияющий Асинхраль    
     26.06.20 
            ✎
    17:29 
 | 
         
        Вот ведь!!! Круто!!! Мне бы такое в голову не пришло. Если не напрягу, расскажи, пожалуйста, что у Вас там происходит с контрагентами, что они меняются в документах, да еще и программно! Жутко любопытно...
 
        Кстати, вариант (6) должен работать, НО, он меняет еще и документ, т.е. при закрытии дока без каких-либо изменений будет появляться вопрос на сохранение изменений, что не здорово, а если честно считается плохим стилем программирования, когда документ меняется без внесения пользователем реальных изменений...  | 
|||
| 
    8
    
        box    
     26.06.20 
            ✎
    17:46 
 | 
         
        (6) Так и делаю, но не работает 
 
        (7) Старая ТиС 9.2. Создается новый документ Реализация и заполняется по умолчанию реквизит Контрагент (основной покупатель). Затем через кнопку запускается обработка в которой вводится номер телефона покупателя и происходит поиск в справочнике контрагентов. Если клиент с таким номером есть, то в поле ФИО самой обработки заполняется данными из справочника. При этом оператор может изменить данные клиента и вот именно в момент изменения и записи в справочник, не происходит изменения в отображении на форме документа в реквизите Контрагент  | 
|||
| 
    9
    
        Сияющий Асинхраль    
     26.06.20 
            ✎
    17:51 
 | 
         
        (8) Ну, если это надо для такого, то просто обычно делается по-другому: СНАЧАЛА открывается окно с вводом контрагента, если находит, то программно открывается НОВЫЙ документ с найденным контрагентом, если не найден, то контрагент создается программно и опять таки открывается НОВЫЙ документ.     
         | 
|||
| 
    10
    
        box    
     26.06.20 
            ✎
    18:04 
 | 
         
        (9) Как вариант, согласен! Но просто интересно, как в открытом документе перечитать с базы данные?     
         | 
|||
| 
    11
    
        Djelf    
     26.06.20 
            ✎
    18:10 
 | 
         
        (10) Пробовал Контрагент="";Контрагент=ВыбКонтрагент; ?     
         | 
|||
| 
    12
    
        Ёпрст    
     гуру 
    26.06.20 
            ✎
    22:32 
 | 
         
        (0) есть там финт для этого, если вспомню, напишу     
         | 
|||
| 
    13
    
        Мимохожий Однако    
     26.06.20 
            ✎
    22:44 
 | 
         
        "...стоя и в гамаке.. Наше фсё!"     
         | 
|||
| 
    14
    
        Злопчинский    
     26.06.20 
            ✎
    22:45 
 | 
         
        .ТекущийЭлемент()     
         | 
|||
| 
    15
    
        Ёпрст    
     гуру 
    26.06.20 
            ✎
    22:50 
 | 
         
        (0)Сообщить(Контрагент.ТекущийЭлемент());     
         | 
|||
| 
    16
    
        Ёпрст    
     гуру 
    26.06.20 
            ✎
    22:50 
 | 
         
        о ёпт.. Чебур опередил     
         | 
|||
| 
    17
    
        Злопчинский    
     26.06.20 
            ✎
    23:13 
 | 
         
        (16) ну, блин, хоть раз...     
         | 
|||
| 
    18
    
        IgorA100    
     26.06.20 
            ✎
    23:54 
 | 
         
        Вот так точно работает:
 
        
Но, последствия как описано в (7)  | 
|||
| 
    19
    
        Злопчинский    
     27.06.20 
            ✎
    00:00 
 | 
         
        (18) ну, это лечится     
         | 
|||
| 
    20
    
        Сияющий Асинхраль    
     27.06.20 
            ✎
    00:08 
 | 
         
        (19) Согласен, лечится. Но реализуемое решение изначальной задачи кривое. А так да, победить можно, вопрос - нужно ли. Просто я понимаю, когда кривые решения делаются для ускорения процесса, но нормальное решение ничуть не более трудоемкое, чем это мягко говоря странное...     
         | 
|||
| 
    21
    
        Cthulhu    
     27.06.20 
            ✎
    00:22 
 | 
         
        БылоИзмененоДоТого = Форма.Модифицированность(); Контагент=Контагент.ТекушийЭлемент();
 
        Если БылоИзмененоДоТого*Выбран()<>0 Тогда НачатьТранзакцию(); Записать(); ОтменитьТранзакцю(); КонецЕсли;  | 
|||
| 
    22
    
        Cthulhu    
     27.06.20 
            ✎
    00:23 
 | 
         
        Если (БылоИзмененоДоТого<>1)B(Выбран()<>0) Тогда НачатьТранзакцию(); Записать(); ОтменитьТранзакцю(); КонецЕсли;     
         | 
|||
| 
    23
    
        Cthulhu    
     27.06.20 
            ✎
    00:23 
 | 
         
        *И     
         | 
|||
| 
    24
    
        IgorA100    
     27.06.20 
            ✎
    00:53 
 | 
         
        (21) 
 
        А так точно должно работать??? Контрагент=Контрагент.ТекущийЭлемент();     | 
|||
| 
    25
    
        Ёпрст    
     гуру 
    27.06.20 
            ✎
    09:55 
 | 
         
        (24) да     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |