|
ОкончаниеВводаТекста ПолеВвода | ☑ | ||
---|---|---|---|---|
0
Powerfool
01.08.13
✎
11:14
|
Добрый день! У меня такая задача, надо при вводе слова в поле ввода выдавать список из которого пользователь выбирает нужный элемент и этот элемент далее заносится в реквизит документа. Проблема только, в процедуре поля ввода ОкончаниеВводаТекста пишу код
Выбор = ВыбратьИзСписка(Список, Элемент); Если Выбор = Неопределено Тогда Контрагент = Текст; Иначе Контрагент = Выбор.Значение; КонецЕсли; Этот код отрабатывает на ура, и Контрагент дейтсвительно становиться тем кого выбрал пользователь, но вот потом че то происходит и по итогув реквизите уже лежит не тот кого выбрали, а послений элемент из того самого выпадающего списка. Как мне эту ерунду поправить, кто сталкивался? |
|||
1
butterbean
01.08.13
✎
11:16
|
в отладчик
|
|||
2
Powerfool
01.08.13
✎
11:16
|
Забыл сказать с полем ввода связан реквизит документа, который имеет составной тип: строка и справочникссылка. Может это как то поможет
|
|||
3
Powerfool
01.08.13
✎
11:19
|
(1) Ещё раз: в отладчике смотрю, что после выполнения кода в (0) Контрагент - это тот кого выбрал пользователь, далее смотрю в другой процедуре при отладке что контрагент уже поменялся. Я грешу на какую нибудь стандартную процедуру, которую как всегда хрен поймаешь, вот и решил написать, мож кто уже побеждал такое?
|
|||
4
Powerfool
01.08.13
✎
11:21
|
Кстати в событии АвтоПодборТекста все работает так как надо, только меня раздражает что ввод текста постоянно обрывается этой процедурой и появлением списка, когда не надо
|
|||
5
Широкий
01.08.13
✎
11:22
|
СтандартнаяОбработка=ЛОЖЬ?
|
|||
6
Powerfool
01.08.13
✎
11:25
|
(5) Да. В первую очередь проверил. Я даже пробовал во всех собятиях этого поля проставлял СтандартнаяОбработка=ЛОЖЬ. Результат = 0
|
|||
7
Infsams654
01.08.13
✎
11:27
|
(4) так надо еще у элемента формы установить значение,
типа Элемент.Значение = ЭлементСписка.Значение; |
|||
8
Powerfool
01.08.13
✎
11:30
|
(7) Так элемент с этими данные связан, ну тоесть у этого ПолеВвода.Данные = Контрагент.
|
|||
9
Powerfool
01.08.13
✎
11:38
|
ап
|
|||
10
Infsams654
01.08.13
✎
11:44
|
(8) так у него ж есть список выбора, вот с ним и надо подработать, чтоб на форме элемент правильно отображался.
Тут, имхо, в 1С платформе что-то не так |
|||
11
Euguln
01.08.13
✎
11:49
|
(3) Внимательно пройди отладчиком F11.
Может где-то есть еще присвоение "Контрагент =" |
|||
12
Powerfool
01.08.13
✎
11:58
|
(11) Да тут вообще финт ушами, у меня присвается не абы какое значение, а именно последнее из выпадающего списка. Ну тоесть например выпадает список с тремя значениями "1", "2" и "3". Пользователь выбирает "1", в отладчике я вижу это сразу после кода из (0). Смотрю дальше, а там уже не "1", а "3". Вот такие вот у нас платформа задачи ставит
|
|||
13
Euguln
01.08.13
✎
12:00
|
В (0) Элемент.Значение меняется?
|
|||
14
Powerfool
01.08.13
✎
12:03
|
(13) угу
|
|||
15
Powerfool
02.08.13
✎
04:31
|
Наверное поставлю точку. Ничего умней придумать не смог и сделал так: завел переменную лобальную лКонтрагента. Код из (0) поменял так:
Если Выбор = Неопределено Тогда лКонтрагент = Текст; Иначе лКонтрагент = Выбор.Значение; КонецЕсли; А потом сделал так: Если Не лКонтрагент = Неопределено Тогда Если Не Контрагент = лКонтрагент Тогда Контрагент = лКонтрагент; КонецЕсли; КонецЕсли; Вроде взлетело но как то уж больно по индийски. Надеюсь кому то поможет. Кстати вопрос по прежнему открыт, если у кого что есть добавить ... |
|||
16
Powerfool
02.08.13
✎
04:32
|
(15) не совсем так, а вот так:
Процедура ПолеВвода1ПриИзменении(Элемент) Если Не лКонтрагент = Неопределено Тогда Если Не Контрагент = лКонтрагент Тогда Контрагент = лКонтрагент; КонецЕсли; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |