Имя: Пароль:
1C
1С v8
К вопросу о быстром исчезновении текста после ввода в поле
0 Гена
 
гуру
07.06.25
13:18
Ветка навеяна сообщением на партнёрском форуме:
"Тут с новым релизом БП 3.0 (3.0.176.38) прилетела фича - наименование банковского счета формируется автоматически и его нельзя изменить вручную.
Что самое интересное, у этого поля на форме есть обработчик ПриИзменении. Но он даже не успевает отработать, наименование изменяется на автонаименование в процессе набора. Т.е. начинаю вводить буквы и буквально через секунду-другую все заменяется автонаименованием.
Отладчик не перехватывает ничего, где-бы это менялось.
"

И вспомнилась наша архивная ветка о подобной же проблеме в справочнике Контрагентов:
Исчезает текст после ввода.

Там же в конце упоминается, что такой же баг был в прошлом для платёжных поручений.

Из анализа предложенного свежего патча EF_60023407
https://bugboard.v8.1c.ru/error/000176580

вырисовывается интересная картина: фирма 1С давно втихаря пользуется одной и той же конструкцией для обхода данной несомненно платформенной ошибки:
Процедура ПредотвратитьСбросРедактируемогоЗначения(Форма) Экспорт
    
    // Обход особенности платформы, когда затирается редактируемое значение
    // в текущем элементе при изменении формы.
    //@skip-warning
    Если НЕ ОбщегоНазначенияКлиентСервер.ЭтоВебКлиент() Тогда
        Если ТипЗнч(Форма.ТекущийЭлемент) = Тип("ПолеФормы") И Форма.ТекущийЭлемент.Вид = ВидПоляФормы.ПолеВвода Тогда
            Форма.ТекущийЭлемент.ОбновлениеТекстаРедактирования = ОбновлениеТекстаРедактирования.ПриИзмененииЗначения;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Она как раз прописана и доке ПлатежноеПоручение, и в справочнике Контрагенты и теперь вот предлагается для справочника БанковскиеСчета.

Я к чему? Если у кого-нибудь после обновления платформы будет исчезать текст после ввода текста в какое-нибудь поле, то достаточно только будет в модуле формы задействовать данную процедуру.
1 Злопчинский
 
07.06.25
14:16
Гена - Всехний Побеждатель!
2 Злопчинский
 
08.06.25
14:35
Это не оно?
3 Гена
 
гуру
08.06.25
15:26
(2) Да
4 SleepyHead
 
гуру
09.06.25
11:03
(3) Благодарю.
5 Гена
 
гуру
09.06.25
11:18
(4) Не стоит. Для общего загашника на будущее или конкретно помогло? Если в контрагентах, то у меня будет вопрос )
Разработчики записали в коде формы элемента справочника Контрагенты эту процедуру, но нигде она не используется. Такое впечатление, что они сами не знают в каком поле ввода принудительно задавать свойство Автообновления на "При изменении значения" )
6 Волшебник
 
09.06.25
11:42
(0) Программисты с лёгкостью решают проблемы, которые сами себе и создают.
7 Eiffil123
 
09.06.25
12:10
хз связано или нет - если в БП открыть оборотку по счету и быстро вводить счет, то он через несколько секунд очищается.

Правда там я связал это с появлением плашки "Подключите 1С:Финансовую отчетность 2.0"  (которая нам не нужна, но тем не менее появляется назойливо)
8 Гена
 
гуру
09.06.25
12:13
(7) Оно. Только теперь неплохо бы озвучивать платформу )
9 Доминошник
 
09.06.25
12:38
(7) Довольно давний глюк... Бесит страшно!
(8) Точно есть на 8.3.25.1394, кажется, что было и 8.3.24
10 Гена
 
гуру
09.06.25
12:54
(9) дык... давайте проверим.
ОборотноСальдоваяВедомостьПоСчету - Формы - ФормаОтчета - Модуль

Занесите нашу процедуру. Осталось только найти где её впендюрить первой же строкой как
ПредотвратитьСбросРедактируемогоЗначения();

Начните с Процедура СчетПриИзменении(Элемент)
а там видно будет...

Ещё один кандидат:
Процедура УстановитьБаннер(ПоказатьПредыдущий = Ложь)

Там как раз длительные операции задействованы.
11 maxab72
 
09.06.25
12:49
(9) на 8.3.24 не наблюдаю, того, что указал (7). При наборе номера счета в БП все сохраняется, даже если номер счета не до конца набран.
12 SleepyHead
 
гуру
09.06.25
14:24
(5) Для общего загашника. Все равно очень полезно.
13 Джордж1
 
09.06.25
15:31
А проверьте еще один глючок...

Открываем, например БП, например Платежные поручения.

В строке отбора контрагента наберите что-нибудь - главное чтобы в выпадающем списке было не меньше 10 позиций.

И начинайте клавишей ВНИЗ выбирать нужный элемент

У меня на 11 позиции пропадает фокус выбора строки и выбор не происходит
14 maxab72
 
09.06.25
15:30
(13) у меня выводится 10 позиций, курсор доходит до 10-ой и останавливается. Дальше вниз не идет.
15 Джордж1
 
09.06.25
15:32
(14)А еще раз ВНИЗ нажмите?
16 maxab72
 
09.06.25
15:35
(15) нажал ВНИЗ 20 раз подряд (специально считал с закрытыми глазами для чистоты эксперимента, чтоб наблюдение не повлияло на результат по неопределенности Гейзенберга). Курсор стоит на последнем, 10-ом контрагенте и никуда не идет.
17 Джордж1
 
09.06.25
16:29
(16) ну вроде раньше так и было. а сейчас проверил - на 11 элементе курсор и фокус пропадает, но при дальнейшем нажатии ВНИЗ курсор снова появляется
Ошибка? Это не ошибка, это системная функция.