|
v7: Обновление данных из подчиненого документа | ☑ | ||
---|---|---|---|---|
0
iprad
24.05.16
✎
13:37
|
Добрый день Всем.
Собственно вопрос - в ТЧ документа имеется поле с ссылкой на документ, и текствое поле, в котором формула получает значения из ТЧ этого документа. Если открыть по ссылке из ТЧ документ, изменить его, провести и закрыть, то формула возвращает данные до изменения. Насколько я понимаю, при открытии формы, создается контекст документов по ссылкам, и при их изменении этот контекст никак не изменяется, если только не закрыть и открыть форму снова. Как обойти это? |
|||
1
Mikeware
24.05.16
✎
14:10
|
чиво?
|
|||
2
Ёпрст
24.05.16
✎
14:11
|
(0) Обнови форму
|
|||
3
Ёпрст
24.05.16
✎
14:12
|
или тупо по строкам взад-вперёд курсором
:) |
|||
4
Ёпрст
24.05.16
✎
14:13
|
Ну и.. смотря что у тебя в формуле текста на форме написано, конечно
|
|||
5
iprad
24.05.16
✎
15:21
|
Обновление формы ничего не дает. И строки курсором - то-же самое
|
|||
6
Масянька
24.05.16
✎
15:30
|
(5) Значит, формула у тебя кривая.
|
|||
7
iprad
24.05.16
✎
15:49
|
если-бы она была кривая, то вообще ничего не возвращала
Ещё раз: имеется документ (главный так-сказать) в ТЧ реквизит документ. В каждой строке он разный (тип один,но содержание разное) Текстовое поле, в котором формула берет указанный документ, обходит в цикле строки ТЧ указаного документа, и возвращает текстовую результатирующую строку. При открытии всё работает как надо. Открываем документ по ссылке из ТЧ главного документа. Меняем содержимое. Закрываем. Обновляем главную форму. Ничего не изменилось. Закрываем главную форму и снова открываем. Все изменения отображены. |
|||
8
Mikeware
24.05.16
✎
16:06
|
(7) формула кривая.
|
|||
9
iprad
24.05.16
✎
17:55
|
Насколько я понимаю, при открытии формы, создается контекст документов по ссылкам, и при их изменении (Документов) этот контекст, загруженный в форму(Документов по ссылкам) никак не изменяется
|
|||
10
iprad
24.05.16
✎
17:56
|
Вывод - при изменении документа обновлять ссылку на него
|
|||
11
vcv
25.05.16
✎
06:36
|
Кеширование. В типовой ТиС при открытии какого-либо реквизита из формы документа используется такая функция. Обрати внимание на Конт.УстановитьАтрибут и Конт.ПолучитьАтрибут в случае, если значение признано модифицированным.
Функция глОткрытьКарточкуРеквизита(Конт, ИдРеквизита) Экспорт СтарыйРеквизит = Конт.ПолучитьАтрибут(ИдРеквизита); Если СтарыйРеквизит.Выбран() = 1 Тогда ОткрытьФормуМодально(СтарыйРеквизит, , 0); Иначе Возврат 0; КонецЕсли; НовыйРеквизит = СтарыйРеквизит.ТекущийЭлемент(); // если элемент изменился (его отредактировали), Контекст об этом не знает МодифицировалиЭлемент = глСравнитьЭлементыСправочника(НовыйРеквизит, СтарыйРеквизит); Если МодифицировалиЭлемент=1 Тогда // обновляем реквизит в форме Конт.УстановитьАтрибут(ИдРеквизита, ""); Конт.ПолучитьАтрибут(ИдРеквизита); Конт.УстановитьАтрибут(ИдРеквизита, НовыйРеквизит); КонецЕсли; Возврат МодифицировалиЭлемент; КонецФункции // глОткрытьКарточкуРеквизита() |
|||
12
iprad
25.05.16
✎
06:41
|
Спасибо. Вопрос исчерпан.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |