Имя: Пароль:
1C
1С v8
8.3.12.1685 и событие АвтоПодбор
0 PuhUfa
 
09.10.18
14:32
УФ. На форме лежит ДеревоЗначений. У него есть колонка с типом "строка". Назначено событие АвтоПодбор

&НаКлиенте
Процедура НазначенияНазначениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ТекГруппа = Элементы.Назначения.ТекущиеДанные;
    Пока ТекГруппа.ПолучитьРодителя() <> Неопределено Цикл
        ТекГруппа = ТекГруппа.ПолучитьРодителя();
    КонецЦикла;
    ДанныеВыбора = НазначенияНазначениеАвтоПодборНаСервере(Текст, СокрП(ТекГруппа.Назначение), ?(Объект.Диагнозы.Количество() = 0, Неопределено, Объект.Диагнозы[0].Диагноз));    
КонецПроцедуры

Наблюдаю проблему: при первом срабатывании "АвтоПодбор" выделяется весь введенный текст и при дальнейшем вводе он затирается. Последующие срабатывания события так уже не делают и курсор остается после последнего введенного символа. Проблема появилась после перехода на 8.3.12.1685. На 8.3.10.2650 все работает корректно. Это очередной из косяков 12го релиза или просто теперь АвтоПодбор нужно как то по другому готовить?
1 1Сергей
 
09.10.18
14:34
(0) у тебя после цикла ТекГруппа будет Неопределено. Ты в курсе?
2 1Сергей
 
09.10.18
14:36
хотя, нет.
(1) сторно
3 Cyberhawk
 
09.10.18
14:41
Почитай примечание в СП
4 PuhUfa
 
09.10.18
14:49
(3) Ты про:
Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
?
А в 10м можно было? И если это происходит из-за "передергивания" сервера то почему введенный текст выделяется только при первом срабатывании, а потом все нормально...
5 PuhUfa
 
09.10.18
15:01
(3) Перенес НазначенияНазначениеАвтоПодборНаСервере(...) из модуля формы в общий модуль, вроде все стало нормально. Спасибо.
6 Cyberhawk
 
09.10.18
15:08
"Ты про" // Да
"в 10м можно было?" // В СП это всегда было. Даже если на каком-то релизе / релизах негативного эффекта от этого не наблюдалось, то теперь ребятки из 1С привели поведение системы к задокументированному, и это хорошо.
"из модуля формы в общий модуль" // Не забывай про передачу параметров по значению
7 PuhUfa
 
09.10.18
15:13
(6) Понял. Еще раз спасибо!
8 PuhUfa
 
10.10.18
12:53
Возвращаясь к вчерашней проблеме... До переноса в общий модуль, функция НазначенияНазначениеАвтоПодборНаСервере(...) у меня имела &НаСервереБезКонтекста.
В чем отличие работы функции в модуле формы с директивой &НаСервереБезКонтекста от ее работы в общем модуле?
9 Cyberhawk
 
10.10.18
12:57
Отличий быть по идее не должно.
Ты при переносе точно не изменял параметры (их перечень и слово "Знач") этого перенесенного метода?
10 PuhUfa
 
10.10.18
12:59
Нет, вообще ничего не менял, просто сделал копипаст в общий модуль и исправил вызов
11 Cyberhawk
 
10.10.18
13:04
Вот если бы ты еще проверил на разных релизах плафтормы поведение, когда этот метод находится в самой форме (&НаСервереБезКонтекста), а то пока это очень похоже на баг
12 Cyberhawk
 
10.10.18
13:05
Или лучше подготовил бы простую внешнюю обработку с формой, в которой можно наблюдать такое поведение
13 PuhUfa
 
10.10.18
13:35
(12) Сделал.
1С:Предприятие 8.3 (8.3.12.1685) + Бухгалтерия предприятия, редакция 3.0 (3.0.65.80)
Если интерфейс "такси" - то все хорошо. Если переключаю на "формы в закладках" то появляется проблема из (0)
14 Cyberhawk
 
10.10.18
13:36
Отвязать обработку от конфигурации не получится?
15 PuhUfa
 
10.10.18
13:39
16 Cyberhawk
 
10.10.18
13:57
Проверил на 8.3.12.1412 и Бухгалтерия предприятия, редакция 3.0 (3.0.42.85), при наборе (что первом, что не первом) ничего не выделяется / не затирается
17 Cyberhawk
 
10.10.18
14:00
А, это в Такси проверял. Щас в УФ в закладках проверю
18 Cyberhawk
 
10.10.18
14:02
Все нормально вроде. Ты б на видео показал, как косяк выглядит и что означает "при первом" - один раз за весь сеанс или при каждом новом открытии этой обработки такое должно быть
19 DrWatson
 
10.10.18
14:03
Проверил на 8.3.12.1567, проблем не увидел.
20 Cyberhawk
 
10.10.18
14:04
Автор, ты проверь на озвученных в (16) и (19) релизах платформы и отпишись
21 PuhUfa
 
10.10.18
17:16
gif'ка https://drive.google.com/open?id=1saUCcf0e57CkZLoIUKX8qW2CldyQysr2

(20) на 1412 и 1567 смысла проверять нет... на 1685 переехал исключительно из-за того что последняя БП просит не ниже. Если проверять другие релизы, то только те которые выше. Пока думаю, что в выходные откачу сервер с управленческой обратно на 8.3.10.2650 а для БП и ЗУП поставлю отдельный. Там есть проблема с COM, но сегодня весь день тестировали, вроде есть неплохой вариант подсовывать коннектор нужной версии. По крайней мере из другой управленки на 8.2.19.80 нормально смогли подключиться к БП на 8.3.12.1685
22 1Снег
 
12.10.18
14:50
(21) неплохой вариант подсовывать коннектор нужной версии.
Неплохой вариант это использовать web-сервис, который быстрее и не зависит от версии 1С