![]() |
![]() |
![]() |
|
Обновить ТЧ после заполнения программно в Управляемой Форме 1С 8.2 | ☑ | ||
---|---|---|---|---|
0
ice777
21.01.09
✎
14:38
|
сделал на Форме кнопочку, по которой добавляется некоторое количество строк в ТЧ документа ( в таблицу управляемой формы).
Но как таблицу сразу обновить - не видны добавленные, пока не выйдеш и не зайдешь в форму (документ проведен в обработчике кнопки). - метод Обновить не катит.. - ЭтаФорма.ОповеститьОЗаписиНового(Документ)- ничего не делает |
|||
1
TitanLuchs
21.01.09
✎
14:41
|
F5 помогает
|
|||
2
TitanLuchs
21.01.09
✎
14:42
|
+(1) Как обновить программно - пока не искал
|
|||
3
Рэйв
21.01.09
✎
14:43
|
ЭлементыФормы.ТабЧасть.СоздатьКолонки()
|
|||
4
ice777
21.01.09
✎
14:49
|
СоздатьКолонки по описанию подходят..
ЭтаФорма.ЭлементыФормы - не работает в 8.2 |
|||
5
ice777
21.01.09
✎
14:52
|
а Объект.<имяТабЧасти>.СоздатьКолонки();
- а тут СоздатьКолонки() - не работают Ваще меня уже прикалывать начинает, что можно пользоваться и ЭтаФорма и Объект.. |
|||
6
johnbay
21.01.09
✎
14:56
|
ЭтаФорма.Элементы.Список.Обновить();
попробуй. для динамических списков работает. |
|||
7
ice777
21.01.09
✎
15:38
|
Поле объекта не обнаружено (Список)ЭтаФорма.Элементы.Список.Обновить();
Не прокатило |
|||
8
ice777
21.01.09
✎
16:02
|
нашел вот:
Синтаксис: ОбновитьОтображениеДанных() Описание: В принудительном порядке обновляет содержание элементов управления. Полезен при изменении значени реквизитов формы вне формы, в тот момент, когда форма отображается на экране. Доступность: клиент, сервер, тонкий клиент, веб-клиент. - и тоже нифига не делает. и не ругается :( |
|||
9
TitanLuchs
21.01.09
✎
17:08
|
(7) Драсте, так ты вместо "Список" подставь название элемента "Динамический список", как он у тебя в дереве элементов называется
|
|||
10
ice777
22.01.09
✎
16:30
|
неа.
Нужен аналог команды "Перечитать" на форме. |
|||
11
TitanLuchs
22.01.09
✎
16:43
|
(10) Тебе что нужно-то: при нажатии на кнопочку добавить строки и сразу же обновить форму, чтобы сделать ее видимой? Так?
|
|||
12
ice777
22.01.09
✎
16:47
|
ТАК! ТАК!
|
|||
13
ice777
22.01.09
✎
16:48
|
Точнее она видима, но в ТЧ не видно добавленное по кнопке.
Выйти и зайти - тогда вижу. |
|||
14
johnbay
22.01.09
✎
16:49
|
(13) Ясна, такая же проблема есть, пока не нашел решения.
|
|||
15
TitanLuchs
22.01.09
✎
16:50
|
(13)(14) Сча найдем...
|
|||
16
johnbay
22.01.09
✎
16:51
|
смысл проблемы допустим тупа нада перечитать табличную часть элемента справочника. вот :)
|
|||
17
ice777
22.01.09
✎
16:51
|
я уже в общей сложности час ищу.. не хвастаюсь :(
|
|||
18
ice777
22.01.09
✎
16:55
|
(16) точнее просто перерисовать/перечитать ТЧ из уже измененных данных.
|
|||
19
TitanLuchs
22.01.09
✎
16:58
|
(18) Незаписанного элемента, то есть обновить не с сервера, а просто из оперативки, верно?
|
|||
20
ice777
22.01.09
✎
17:01
|
Я добавляю строки в ТЧ, делаю документу Записать(РежимЗаписиДокумента.Запись);
Да, на клиенте. |
|||
21
TitanLuchs
22.01.09
✎
17:03
|
(20) Брррррр. Если делаешь "записать", то ты уже не на клиенте делаешь это, ты уже пошел на сервер. Теперь объект можно перечитать с сервака.
|
|||
22
ice777
22.01.09
✎
17:04
|
Как?
|
|||
23
johnbay
22.01.09
✎
17:05
|
(21) щяс нарисую пример
|
|||
24
TitanLuchs
22.01.09
✎
17:05
|
(22) Погодь, просто незачем читать с сервера, на фига трафик туда-сюда гонять. Сча поищем что-нить пооптимальней.
|
|||
25
ice777
22.01.09
✎
17:06
|
Вона кнопочка "Перечитать" на форме отлично это делает, что наводит на мысли, что можно и программно осуществить.
Искал также, как эту "Перечитать" программно нажать.. не нашел. |
|||
26
ice777
22.01.09
✎
17:06
|
(24) Я на все согласен.. :) Абы работало
|
|||
27
johnbay
22.01.09
✎
17:08
|
Есть процедура на сервере, которая делает след. код:
процедура ы(ссылка) Объект = Ссылка.ПолучитьОбъект(); НоваяСтрока = Объект.Документы.Добавить(); Объект.Записать(); Конецпроцедуры; эта процедура вызывается кнопкой на форме. кнопку нажал, в ТЧ "Документы" добавилась строка. нада обновить форму на клиенте. усе |
|||
28
TitanLuchs
22.01.09
✎
17:09
|
(27) Ясно, это тебе надо перечитать объект из базы.
|
|||
29
johnbay
22.01.09
✎
17:10
|
как кнопку "перечитать" позвать программно?
|
|||
30
ice777
22.01.09
✎
17:14
|
если уж на то пошло.. то мне проще сделать программное закрытие и открытие формы с позиционированием в то же место ТЧ. Если уж так далеко запрятали в 82 простейшие функции :(
|
|||
31
TitanLuchs
22.01.09
✎
17:18
|
(30) Не гони, за такой код тебя заплюют и юзеры, и коллеги ))
(27) Воспроизвести пример получилось, сча погоняю немного... |
|||
32
ice777
22.01.09
✎
17:19
|
(31) конешно заплюют! да я и сам в зеркало смотреться перестану ;)
|
|||
33
johnbay
22.01.09
✎
17:27
|
сделал! щяс выложу
|
|||
34
ice777
22.01.09
✎
17:27
|
метод прочитать() тоже..
|
|||
35
johnbay
22.01.09
✎
17:30
|
(34) ?
|
|||
36
ice777
22.01.09
✎
17:31
|
ЭтаФорма.Прочитать();
И ВСЕ! е-мае, убив бы эту 82 |
|||
37
TitanLuchs
22.01.09
✎
17:32
|
&НаСервереБезКонтекста
Процедура ДатьСкидкуВыполнитьНаСервере(Ссылка) Объект = Ссылка.ПолучитьОбъект(); НоваяСтрока = Объект.ТМЦ.Добавить(); НоваяСтрока.Цена = 100; Объект.Записать(); КонецПроцедуры &НаКлиенте Процедура ДатьСкидкуВыполнить() ДатьСкидкуВыполнитьНаСервере(Объект.Ссылка); ЭтаФорма.Прочитать(); КонецПроцедуры |
|||
38
ice777
22.01.09
✎
17:32
|
И еще раз убив бы 1С за встроенную справку.
|
|||
39
TitanLuchs
22.01.09
✎
17:32
|
(36) Хех, успел раньше на минуту )))
|
|||
40
ice777
22.01.09
✎
17:32
|
а то ;)
|
|||
41
ice777
22.01.09
✎
17:32
|
все равно спасибо
|
|||
42
johnbay
22.01.09
✎
17:33
|
&НаСервере
Функция Перерисовать(СсылкаО) ЗначениеВРеквизитФормы(СсылкаО.ПолучитьОбъект(), "Объект"); КонецФункции вот еще вариант :) |
|||
43
TitanLuchs
22.01.09
✎
17:33
|
(38) Зря ты ругаисси на 8.2 очень полезная и добная штука! И чем справка не угодила?
|
|||
44
johnbay
22.01.09
✎
17:34
|
(42) вызывается с клиента так:
Перерисовать(Объект.Ссылка); |
|||
45
TitanLuchs
22.01.09
✎
17:34
|
(44) Не катит - добавляется лишняя операция: передача данных на сервак
|
|||
46
ice777
22.01.09
✎
17:35
|
ну, это как бы не в топик, но:
- почти никогда нет сылочек на "похожее". что искал - то и погладел и, - без примеров частенько - иерархию посмотреть.. ага, мотрите в отладчике - и многое другое |
|||
47
ice777
22.01.09
✎
17:35
|
справка есть болезнь не 82, а 1С ваще
|
|||
48
johnbay
22.01.09
✎
17:37
|
(45) 44 на правах альтернативы. вижу что не оптимально :(
|
|||
49
TitanLuchs
22.01.09
✎
17:40
|
(47) Ну нинаю, я 8.2 по СП учил - все понятно. Хотя это субъективно, конечно
(48) Вообще такую операцию из формы вызывать не рекомендуется. И кстати, у тебя при таком коде должно было произойти исключение - платформа не позволяет переводить реквизит формы, который может измениться, в объект. |
|||
50
TitanLuchs
22.01.09
✎
17:41
|
+(49) Хотя нет, у тебя обратное преобразование - из объекта в реквизит
|
|||
51
johnbay
22.01.09
✎
17:43
|
(50) код проверил, работает.
|
|||
52
TitanLuchs
22.01.09
✎
17:45
|
(51) А он и будет работать в том виде, в котором у тебя приведено, я же написал, что у тебя преобразование объекта в форму, по сути то же что и "Прочитать()"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |