Имя: Пароль:
1C
 
Есть на управляемой форме поле с данными через точку от реквизита формы ссылки
,
0 TormozIT
 
гуру
29.01.16
20:49
Дано:
Поле1.Данные = "Номенклатура";
Поле2.Данные = "Номенклатура.ПометкаУдаления";
Выполнено:
Объект = Номенклатура.ПолучитьОбъект();
Объект.ПометкаУдаления = Не Объект.ПометкаУдаления;
Объект.Записать();
Требуется:
Обновить в Поле2 отображение данных на актуальное значение.

Пробовал:
ОповеститьОбИзменении(Номенклатура);
Не помогает.
1 Cyberhawk
 
29.01.16
20:56
2 TormozIT
 
гуру
29.01.16
21:01
(1) Костыль помог. Спасибо. Правда он перечитывает всю колонку в случае таблицы формы вместо одной ячейки. Но это лучше чем ничего.
3 Лефмихалыч
 
29.01.16
21:43
значениеВРеквизитФормы(Объект, "Объект")?
4 FIXXXL
 
29.01.16
23:27
(0) передать в выполнено реквизит формы и присвоить ему новое значение
5 Новиков
 
01.02.16
12:00
А мне что-то и костыль-то не помог.

&НаКлиенте
Процедура Тест(Команда)
    ТекущиеДанные =  Элементы.СписокНоменклатуры.ТекущиеДанные;
    ТестНаСервере(ТекущиеДанные.Номенклатура);
    
    Оповестить("ЗакрытьВсе");
КонецПроцедуры

&НаСервере
Процедура ТестНаСервере(Номенклатура)
    
    ОбНоменклатура = Номенклатура.ПолучитьОбъект();
    ПУ = НЕ ОбНоменклатура.ПометкаУдаления;
    ОбНоменклатура.УстановитьПометкуУдаления(ПУ,Истина);
    ОбНоменклатура.Записать();
    
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    
    Если ИмяСобытия="ЗакрытьВсе" Тогда
        
        Элементы.СписокНоменклатуры.Видимость = Ложь;
        Элементы.СписокНоменклатуры.Видимость = Истина;
        
    КонецЕсли;
    
КонецПроцедуры

TormozIT, если у тебя обработка - не мог бы выложить, я б взглянул, где сам косячу :)
6 Cyberhawk
 
01.02.16
12:29
(5) Если у тебя список - это дин. список, то тебе костыль не нужен - метод ОповеститьОбИзменении должен корректно отрабатывать
7 Новиков
 
01.02.16
13:05
(6) у меня не динамический список. Обычная таблица. Более того, подметил такое - она один раз заполнилась и все. Далее, когда пометку ставишь/снимаешь, даже если обработку вообще закрыть и открыть заново, все равно - поле пометка, содержит самое первое значение. Такое чувство, что оно как-то кэшируется. Только перезапуск сеанса спасает ситуацию.
8 TormozIT
 
гуру
02.02.16
17:31
(7) Конечно кешируется. Это и не скрывают. В (6) уже писали - используй метод ОповеститьОбИзменении(Ссылка).
9 Новиков
 
02.02.16
17:40
(8) Так ты ж сам в (0) писал, что ОповеститьОбИзменении(Ссылка) у тебя не покатил, и ты использовал костыль из (1). Ты то как в итоге сделал? Я подумал что доиграл с видимостью.
10 TormozIT
 
гуру
02.02.16
18:29
(9) У меня не динамический список.
11 Tateossian
 
02.02.16
18:33
Заблокировать поля для редактирования другим сеансом.
12 Новиков
 
02.02.16
20:36
(10) епт, так у меня тоже НЕ ДИНАМИЧЕСКИЙ список. Я просто решил повторить твой пример, с целью проверки твоих граблей. Грабли есть, а костыль из (1) как представлено в (5) мне не помог.
13 Остап Сулейманович
 
02.02.16
20:58
(7) "у меня не динамический список. Обычная таблица."
Это как? Таблица значений? Табличный документ? Или что?

ИМХО - у тебя как раз динамический список. Но источник данных - не произвольный запрос, а конкретная таблица "справочник.Номенклатура". И оповестить + обновить вполне себе сработает.
14 Новиков
 
03.02.16
09:54
(13) >>Это как?

1. Создай у формы реквизит с типом Таблица Значений
2. У этой таблице сделай одну колонку с типом СправочникСсылка.Номенклатура
3. Перетащи реквизит на форму, автоматом создастся элемент формы Таблица с одной колонкой Номеналатура
4. Плюсом разверни колонку реквизита, найди там ПометкаУдаления и перетащии ее в форму. Создастся еще одна колонка.

Далее (0), далее (5), далее (9) :)
15 TormozIT
 
гуру
03.02.16
18:04
(14) Покажи код
16 Новиков
 
04.02.16
09:59
(15) Долгоиграющаяя ветка! Код показан полностью в (5)
17 palpetrovich
 
04.02.16
11:08
(0) имхо, тз с этими "данными" вообще ничего не знает что-там с реальными данными происходит, даже если их прибьют физически для тз ничего не изменится до тех пора пока не будет попытки их перечитать

а оповещатьОбИзменении из всех возможных форм наверное будет накладно :)
Закон Брукера: Даже маленькая практика стоит большой теории.