|
Форма: не обновляется надпись на кнопке | ☑ | ||
---|---|---|---|---|
0
slafor
11.08.23
✎
10:32
|
Есть такая кнопка, которая может запускать или останавливать какое-то действие. В данном случае при старте она создает запись в РС с заполненным ресурсом НачалоСобытия, а при остановке - добавляет в эту же запись ресурс ОкончаниеСобытия. И надпись на кнопке должна меняться в соответствии с тем, заполнено ОкончаниеСобытия или нет.
Но это так, в общих чертах, на практике там больше условий и больше текста. Но дело не в этом. Просто когда мы стартуем событие, надпись на кнопке меняется с "Старт" на "Стоп". Это работает нормально. Но когда мы перед тем, как остановить событие, выясняем, что с момент начала прошло не более часа, мы должны задать пользователю вопрос - мол, ты ничего не путаешь, может, продолжим уже работающее события, или вообще удалим старое из РС и создадим новое, с текущим временем? Если он выбирает первое, то ничего не делается, а если старое удаляется и создается новое, то заголовок кнопки "Стоп" должен меняться на "Старт". Так и происходит. Но вот когда я снова стартую событие, "Старт" на "Стоп" уже не меняется. Хотя там стоит строка "Элементы.ФормаСтартСтоп.Заголовок = "Стоп"", где элемент формы ФормаСтартСтоп - это кнопка. Причём в отладчике значение заголовка изменилось! А на форме - нет... Только если я закрою и снова открою форму - оно покажется с заголовком "Стоп". А вот если перед остановкой пользователю не задавать никакого вопроса (если прошло больше часа после старта), то все работает нормально. То есть: сначала "Стоп" меняется на "Старт", а потом, если пользователь нажимает "Старт", оно меняется на "Стоп". Не подскажете, где я мог ошибиться? Или чего я не учёл? |
|||
1
AlvlSpb
11.08.23
✎
11:21
|
Изменяются не данные, а элементы формы. В открытой форме надо перечитать данные, обновить
|
|||
2
Keep calm and use 1C
11.08.23
✎
15:12
|
Вообще похоже на ошибку в платформе, хорошо бы попробовать другие версии.
Возможноый вариант обхода - это попробовать менять надпись на кнопке через обработчик ожидания. Что-то типа: ПодключитьОбработчикОжидания("ВЭтойПроцедуреЯУстановлюПравильноеЗначение", 0.1, Истина) |
|||
3
slafor
12.08.23
✎
17:46
|
(1) И ЭтаФорма.Перечитать() выполнял. На моей копии работает, на рабочей - нет.
(2) Вы правы. Работает - но на другой платформе. Программирую я на 8.3.20.1710, файловая, а клиенты работают на 8.3.18.1363, серверная, SQL, и на новую переходить не хотят. Боятся наверное. С помощью ПодключитьОбработчикОжидания срабатывает процедура, вызываемая этим обработчиком - появляется сообщение (сделал через каждые 5 секунд - с таким шагом оно и появляется), но заголовок кнопки всё равно не меняется. А вот если просто нажать "Записать" - записывает и перепроводит (если был проведён ранее) документ, и тогда на кнопке появляется "свежая" надпись. Только так. Причём "беда" эта вылезает только при той последовательности событий, которое я описал в своём первом сообщении. Во всех остальных случаях заголовок кнопки меняется при любом наборе манипуляций. |
|||
4
Мимохожий Однако
13.08.23
✎
14:24
|
(3) А ты не бойся. Установи у себя ту же платформу и отлаживай. Подозреваю, что дело не в платформе.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |