|
Событие перед записью не срабатывает, когда меняем цвет на форме... | ☑ | ||
---|---|---|---|---|
0
EvgeniuXP
10.07.14
✎
08:57
|
Код следующий, модуль формы:
&НаКлиенте Перем Цвет; &НаКлиенте Процедура ПолеВводаНаФормеПриИзменении() Если Цвет = Неопределено Тогда Цвет = Истина; КонецЕсли; Цвет = НЕ Цвет; // Поменять цвет ПоменятьЦвет(Цвет); КонецПроцедуры &НаКлиенте Процедура ПоменятьЦвет(Цвет) Перем ЦветФона; Если Цвет Тогда ЦветФона = Новый Цвет(255, 0, 0); Иначе ЦветФона = Новый Цвет(0, 255, 0); КонецЕсли; ЭлементыФормы.ГруппаФормыГдеНаходитсяПолеВвода.ЦветФона = ЦветФона; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью() КонецПроцедуры Всё, в отладчике ставим точку останова в событии ПередЗаписью() открываем форму, вводим что-нибудь в поле ввода, ОСТАВИВ ТАМ КУРСОР сразу же нажимаем кнопку ЗАПИСАТЬ - событие перед записью не срабатывает. Да и вабще срабатывать не будет :)))), т.к. цвет постоянно меняется. Это фича такая у 1С теперь? |
|||
1
EvgeniuXP
10.07.14
✎
08:58
|
забыл написать, платформа 8.3.5.1068.
|
|||
2
EvgeniuXP
10.07.14
✎
08:59
|
проверял на форме документа.
|
|||
3
ДенисЧ
10.07.14
✎
09:02
|
Не совсем понял, а что, изменение цвета фона теперь является изменением содержимого реквизита?
|
|||
4
EvgeniuXP
10.07.14
✎
09:02
|
Если поменять &НаСервер у процедуры ПоменятьЦвет(Цвет) - будет тоже самое.
|
|||
5
BuHu
10.07.14
✎
09:02
|
а в процедуре ПередЗапсиью есть хоть одна строчка кода?
|
|||
6
EvgeniuXP
10.07.14
✎
09:03
|
(3) я менял цвет у группы, а в этой группе лежит реквизит строкового типа - но возможно без разницы, где цвет меняем.
|
|||
7
EvgeniuXP
10.07.14
✎
09:04
|
(5) она не нужна, ставим точку останова на КонецПроцедуры :)
ПриЗаписи - много строчек - там тоже естественно не останавливается :) |
|||
8
Escander
10.07.14
✎
09:05
|
(7) Это не серверная база с выключенной отладкой?
|
|||
9
EvgeniuXP
10.07.14
✎
09:07
|
(8) серверная, debug включен, если курсор перевести на другое поле после ввода - то останавливается.
|
|||
10
EvgeniuXP
10.07.14
✎
09:10
|
(+6) еще хуже, если любое свойство меняем у формы - и перед записью не будет срабатывать, если клавиши TAB не нажимаем или не кликаем в другое поле - не проверял еще...
|
|||
11
EvgeniuXP
10.07.14
✎
09:11
|
(11) т.е. у элементов формы.
|
|||
12
Escander
10.07.14
✎
09:17
|
(9) проверил на локальной копии - всё норм! И в старом интерфейсе и в такси и для
Совместимость по коду = Не использовать и для = 8.3.4 У тебя не отвязалась процедура при записи от события формы? |
|||
13
EvgeniuXP
10.07.14
✎
09:17
|
... вместо фона подставил высоту - устанавливал каждый раз разную высоту элемента формы при изменении реквизита - тоже не работает...
надо сваливать с 8.3.5 :) (10) подтвердилось... |
|||
14
EvgeniuXP
10.07.14
✎
09:19
|
(12) нет, она работает, при втором нажатии на кнопку Записать - стандартная на форме.
используется клиент-сервер, SQL2008 R2. Проверяю локально на своей машине - трехзвенка - всё на одной. |
|||
15
EvgeniuXP
10.07.14
✎
09:20
|
могу выложить конфу с одной формой и одним документом
|
|||
16
Escander
10.07.14
✎
09:23
|
(15) я что не на подобной конфе проверяю?
|
|||
17
Escander
10.07.14
✎
09:24
|
(13) >надо сваливать с 8.3.5 :)
да она для работы и не раздаётся... |
|||
18
Escander
10.07.14
✎
09:25
|
+ (17) рабочую базу запускать на 8.3.5... смело
|
|||
19
RomaH
naïve
10.07.14
✎
09:25
|
ОСТАВИВ ТАМ КУРСОР сразу же нажимаем кнопку ЗАПИСАТЬ
может тут собака порылась? что-то ввел, не подтвердив воод (ентер/таб/выход из поля в общем) выход делаешь кликом мышкой - этот клик вроде всегда обрабатывается как выход - т.е. нажатия кнопки не будет а так как у тебя идет обновление формы при изменении - то ... |
|||
20
RomaH
naïve
10.07.14
✎
09:27
|
я не удивлюсь если данная конструкция не работает (аналогично работает) и на других релизах платформы?
|
|||
21
EvgeniuXP
10.07.14
✎
09:33
|
(19) если цвет не ставим программно, запись срабатывает нормально при изменении строки на форме не выходя из поля.
Интерфейс, кстати, Такси. |
|||
22
RomaH
naïve
10.07.14
✎
09:34
|
воспроизводится и на 8.2
где-то было написано, что перед записьи или при записи нельзя обновлять форму |
|||
23
EvgeniuXP
10.07.14
✎
09:36
|
(22) т.е. всё что сделает пользователь на форме - получается ее нельзя обновлять? т.к. в любой момент пользователь может нажать кнопку "Записать" и при этом оставить форму открытой... плохо.
|
|||
24
RomaH
naïve
10.07.14
✎
09:36
|
(21) тут суть в обновлении формы - клик не доходит до кнопки
вспоминая VB - события клика - нажатие кнопки и отпускание кнопки (а кнопка "Записать" НАЖИМАЕТСЯ при отпускании кнопки мыши) |
|||
25
RomaH
naïve
10.07.14
✎
09:38
|
&НаКлиенте
Процедура Реквизит1ПриИзменении(Элемент) Если Элементы.Реквизит1.Высота = 1 Тогда Элементы.Реквизит1.Высота = 2; Иначе Элементы.Реквизит1.Высота = 1; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ОбщегоНазначенияКлиентСервер.СообщитьПользователю("2"); КонецПроцедуры это на 8.2 |
|||
26
EvgeniuXP
10.07.14
✎
09:40
|
(25) понятно, тогда кнопку Записать лучше убирать с форм, которые обновляются... спс, делать записать и закрыть.
|
|||
27
EvgeniuXP
10.07.14
✎
09:41
|
(26) если и это не пройдет, тогда придется два раза жать... ой как не удобно...
|
|||
28
RomaH
naïve
10.07.14
✎
09:48
|
(27) взять за правило - все изменения вызывающие обновления формы выносить в ПодключитьОбработчикОжидания
|
|||
29
RomaH
naïve
10.07.14
✎
09:50
|
+(28) или вообще не менять форму - там глюки еще те всплывают
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |