|   |   | 
| 
 | Медленная перерисовка формы | ☑ | ||
|---|---|---|---|---|
| 0
    
        Прохожий 25.11.22✎ 07:11 | 
        Есть Справочник, элементы которого выводятся на форме другого объекта в СписокДинСписок просто запросом с отбором в колонку Ссылка.
 Есть на этой форме кнопка УдалитьЭлемент и соответствующая команда. Если строк в списке нет кнопка должна становиться недоступной. Если на строке Элементы.СписокДинСписокУдалитьФайл.Доступность = НЕ Объект.Ссылка.Пу..... поставить точку останова, то элемент успевает удалиться, а список успевает перерисоваться. Но в реальном времени условие доступности проверяется раньще чем СписокДинСписок успевает обновиться. То есть кнопка по прежнему доступна. Кроме как задержку поставить на ум ничего приличного не приходит. &НаКлиенте Процедура УдалитьЭлемент(Команда) УдалитьНаСервере(Элементы.СписокДинСписок.ТекущиеДанные.Ссылка); Элементы.СписокДинСписок.Обновить(); Элементы.СписокДинСписокУдалитьФайл.Доступность = НЕ Объект.Ссылка.Пустая() И НЕ Элементы.СписокДинСписок.ТекущаяСтрока = Неопределено; КонецПроцедуры &НаСервереБезКонтекста Процедура УдалитьНаСервере(Элемент) Спр = Элемент.ПолучитьОбъект(); Спр.удалить(); КонецПроцедуры Как дождаться обновления Элементы.СписокДинСписок.Обновить() лучше всего? | |||
| 1
    
        Прохожий 25.11.22✎ 07:21 | 
        Беда в том, что Обновить не возвращает по завершении ничего
 ТаблицаФормы (FormTable) Обновить (Refresh) Синтаксис: Обновить() Описание: Обновляет данные в таблице. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент). Использование в версии: Доступен, начиная с версии 8.2. Методическая информация | |||
| 2
    
        АНДР 25.11.22✎ 07:23 | 
        Замени проверку списка на форме на проверку результата аналогичного запроса в условии видимости.     | |||
| 3
    
        PuhUfa 25.11.22✎ 07:39 | 
        (0) повесь проверку не в процедуру удаления а в событие ПриИзменении() динамического списка     | |||
| 4
    
        Прохожий 25.11.22✎ 07:53 | 
        (3) Срабатывает только при интерактивном изменении.     | |||
| 5
    
        Прохожий 25.11.22✎ 07:54 | 
        (2) Такая мысль была. Но это лишний запрос. А события никакого нет у элемента ПриОкончанииОбновленияМеня() ? типа такого...     | |||
| 6
    
        Прохожий 25.11.22✎ 07:55 | 
        Или у всей формы типа ФорамПерерисовалась, как модифицированность, только почти наоборот.     | |||
| 7
    
        Прохожий 25.11.22✎ 07:56 | 
        Или есть такое колдовство - командная панель. Я могу от нее чего-то узнавать в промежутке между отправкой Обновить и событием ПриОкончанииОбновленияЭтойТаблицы()     | |||
| 8
    
        PuhUfa 25.11.22✎ 08:22 | 
        (4) Если этим списком не слишком активно пользуются, то как вариант можно повесить еще в ПриАктивизацииСтроки     | |||
| 9
    
        asady 25.11.22✎ 08:28 | 
        (0) проверяй наличие элемента перед удалением - доступность и видимость это уже рюшечки     | |||
| 10
    
        PuhUfa 25.11.22✎ 08:46 | 
        Вот так вот работает нормально, только что проверил:
 &НаСервере Процедура КомандаУдалитьНаСервере(УдЭлемент) УдЭлементОбъект = УдЭлемент.ПолучитьОбъект(); УдЭлементОбъект.Удалить(); КонецПроцедуры &НаКлиенте Процедура КомандаУдалить(Команда) КомандаУдалитьНаСервере(Элементы.ДинСписок.ТекущиеДанные.Ссылка); Элементы.ДинСписок.Обновить(); ОбновитьКнопки(); КонецПроцедуры &НаКлиенте Процедура ОбновитьКнопки() Элементы.КомандаУдалить.Доступность = Элементы.ДинСписок.ТекущиеДанные <> Неопределено; КонецПроцедуры | |||
| 11
    
        Прохожий 25.11.22✎ 08:53 | 
        (8) Да, этот ответ правильный. Все Спасибо.     | |||
| 12
    
        Прохожий 25.11.22✎ 08:56 | 
        (10) А так точно не работает. У меня есть кнопка добавить и удалить. Код идентичный. Но на Удалить не успевает. Курьез.
 (8) Это правильно и просто. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |