|
Как обновить форму динамического списка | ☑ | ||
---|---|---|---|---|
0
spblrt
13.07.16
✎
09:26
|
Добрый день! Подскажите пожалуйста как обновить форму. Имеется форма элемента справочника. На форме я создал динамический список и добавил команду для добавления в него номенклатуры.
&НаКлиенте Процедура Добавить(Команда) ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора"); ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально(); ЗЧ = Объект.ЗапасныеЧасти.Добавить(); ЗЧ.Номенклатура = ВыбранноеЗначение; КонецПроцедуры При добавлении, номенклатура в форму не выводится. Необходимо обновить форму. Элементы.СписокЗапЧасти.Обновить(); - не получается. Подскажите как быть? |
|||
1
aleks_default
13.07.16
✎
09:32
|
Ты сделал динамический список для отображения табличной части справочника? WTF?
|
|||
2
lodger
13.07.16
✎
09:33
|
(1) не мешай, вдруг получится ))
|
|||
3
spblrt
13.07.16
✎
09:33
|
(1) Нельзя было по другому
|
|||
4
Fedor-1971
13.07.16
✎
09:40
|
(0) Элементы.СписокЗапЧасти.Обновить(); вызываешь НаКлиенте?
ДС читает данные из БД, т.е. что-бы что-то появилось его сначала нужно записать. |
|||
5
aleks_default
13.07.16
✎
09:41
|
Интересно, что же это за объект, у которого настолько много запчастей, что для их отображения не подходит обычная таблица формы, а нужен именно список с динамической выборкой?
|
|||
6
spblrt
13.07.16
✎
09:43
|
(5) На форме нужно показать остатки на складе просто
|
|||
7
spblrt
13.07.16
✎
09:45
|
(4) Пробовал и на сервере. Т.е. при каждом добавлении номенклатуры, мне нужно записывать форму?
|
|||
8
bodri
13.07.16
✎
09:48
|
На клиенте можно попробовать:
ЭтаФорма.Элементы.СписокЗапЧасти.Обновить() |
|||
9
YurAnt
13.07.16
✎
09:49
|
вешал когда то Обновить()
на "Оповещение" про оповестить например вот v8: Как сделать, чтобы управляемая форма обновлялась при изменении регистра? |
|||
10
spblrt
13.07.16
✎
09:49
|
(8) Пробовал(
|
|||
11
Fedor-1971
13.07.16
✎
09:49
|
(3) Словами задачку опиши на листке и поймёшь что нужно сделать.
(6) прямо динамически отсвечивающиеся при изменении данных о наличия? (7) НаСервере обновление не сработает (8.2). Для использования ДС да, нужно записать. Посмотри в сторону реквизита формы "Остаток" в твоей ТЧ, заполни при открытии и обновляй по кнопке (8) Сначала нужно записать. |
|||
12
Numerus Mikhail
13.07.16
✎
09:50
|
Неправильный подход к решению задачи. Ты добавляешь в табличную часть справочника объекты, но они еще не записаны в базу, поэтому очевидно, что динамический список не сможет их получить.
Имхо он тут и не нужен. А если очень нужен - да, нужно записывать объект каждый раз и только потом обновлять дин. список |
|||
13
Nuobu
13.07.16
✎
09:51
|
Записывай объект, а потом делай: ОповеститьОбИзменении.
|
|||
14
aleks_default
13.07.16
✎
09:52
|
(6) Кончай херней заниматься.
|
|||
15
bodri
13.07.16
✎
09:53
|
(0) а почему бы не сделать нажатие кнопки "показать остаток"?
|
|||
16
aleks_default
13.07.16
✎
09:54
|
(14) Динамическое отображение остатков не нужно никогда, от слова никогда. Делай кнопку с командой обновить остатки.
|
|||
17
Fedor-1971
13.07.16
✎
09:58
|
(16) есть редкие случаи, но это ближе к "никогда", тем более в форме справочника её не будут держать открытой значительное время, а если и будут - достаточно кнопки "Обновить остатки"
|
|||
18
spblrt
13.07.16
✎
10:00
|
Остатки не нужно обновлять. Я добавляю номенклатуру в список, и после добавления номенклатура не отображается. Она отображается после записи и открытия формы заново
|
|||
19
Fedor-1971
13.07.16
✎
10:02
|
(18) тем более, ДС тебе и задаром не нать.
|
|||
20
Numerus Mikhail
13.07.16
✎
10:02
|
(18) И это правильно, ведь до того как ты запишешь у тебя в базе не будет информации о том, что ты добавил номенклатуру.
Именно поэтому тебе и советуют использовать табличную часть. |
|||
21
spblrt
13.07.16
✎
10:07
|
Решил вопрос записью формы. Всем огромное спасибо за советы.
&НаКлиенте Процедура Добавить(Команда) ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора"); ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально(); ЗЧ = Объект.ЗапасныеЧасти.Добавить(); ЗЧ.Номенклатура = ВыбранноеЗначение; ЭтаФорма.Записать(); Элементы.СписокЗапЧасти.Обновить(); КонецПроцедуры |
|||
22
aleks_default
13.07.16
✎
10:30
|
(21)Маразма мало не бывает. Т. е. у пользователя отказаться от сохранения внесенных изменений возможности нет.
|
|||
23
spblrt
13.07.16
✎
11:10
|
Новая проблема теперь.. не догоню, как строку удалить теперь
|
|||
24
Fedor-1971
13.07.16
✎
12:05
|
(23) Обалдеть, ровно так-же, удаляем её из ТЧ (только сначала нужно найти оную), записываем элемент и обновляем ДС.
Уже переделай на ТЧ и будет тебе щасце, не ищи приключений на пятую точку. Хотя, на данном примере пройдёшь по всем граблям использования ДС и, в конце концов, сделаешь на ТЧ, сравнишь трудозатраты и больше ДС для работы с ТЧ использовать не станешь Успехов. |
|||
25
bodri
13.07.16
✎
12:31
|
(0) У меня вопросы: Зачем это надо? Может проще это сделать в обработке?
|
|||
26
Fragster
гуру
13.07.16
✎
12:34
|
(0) у таб части объекта в форме можно добавить реквизит. он будет существовать только в форме, не будет записываться в БД. Его при чтении, при создании на сервере и при окончании редактирования строки/какого-либо элемента можно обновлять.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |