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