Имя: Пароль:
1C
 
1с 8.3 Срабатывание события - "НачалоВыбора" при активизации поля
0 CepeLLlka
 
17.12.15
15:34
В общем проблема в том, что отрабатывает процедура начало выбора, до нажатия кнопки выбора..

В описании этой процедуры написано следующее:

Описание:

Возникает в момент нажатия кнопки выбора или клавиши F4.
Также вызывается при активизации поля ввода, у которого включен режим быстрого выбора, мышью.
Также вызывается при нажатии на надписи "Выбрать из списка" или по клавише F4 в выпадающем списке поля ввода управляемой формы.

На закладке "Использование", поля ввода, значение параметра - "Быстрый вызов" я поставил в положение - "Нет".

Тем не менее процедура вызывается при активизации..

Как побороть это?
1 ale-sarin
 
17.12.15
15:38
Наверное РежимВыбораНезаполненного
2 CepeLLlka
 
17.12.15
15:39
(1)Нет.. тоже поставил в положение - "Нет"
3 ale-sarin
 
17.12.15
15:40
(2) Там ведь нет выбора "Нет".
4 CepeLLlka
 
17.12.15
15:40
(3)Ок.. Стоит - "Не использовать"
5 CepeLLlka
 
17.12.15
15:41
Цель такова:

Составной тип данных:
1. Строка
2. Справочник

Если нажимает на кнопку выбора - Открывается форма выбора справочника, и обрабатывается затем выбор.

Если просто вводит текст в поле, то так и оставлять строкой.
6 CepeLLlka
 
17.12.15
15:43
(5)<--------- Возможно такое реализовать в Такси?
7 CepeLLlka
 
17.12.15
15:43
Составной тип данных реквизита формы, а не реквизита объекта.
8 ale-sarin
 
17.12.15
15:44
(4) А какая у Вас версия платформы? У меня там и "Не использовать" нет.
9 Cyberhawk
 
17.12.15
15:45
Дарю тебе, уже второй повод за день: http://goo.gl/mLlgMZ
10 Cyberhawk
 
17.12.15
15:45
(0) "процедура вызывается при активизации" // Так у самого справочника быстрый выбор стоит видимо
11 CepeLLlka
 
17.12.15
15:46
(10)Нет не стоит..

А это для (3) и (8)
http://s016.radikal.ru/i336/1512/49/9e0294c5d35e.jpg
12 CepeLLlka
 
17.12.15
15:46
За (9)Спасибо.. изучаю..
13 Cyberhawk
 
17.12.15
15:47
(11) Убеди меня в этом
14 CepeLLlka
 
17.12.15
15:48
15 ale-sarin
 
17.12.15
15:51
(11) Я разве про АвтоВыборНезаполненного в (0) писал?
16 ale-sarin
 
17.12.15
15:52
+15 на картинке на 6 строчек выше.
17 CepeLLlka
 
17.12.15
15:52
(15)Приношу извинения, я ошибся..

Но как видишь то о чём ты писал стоит в положении - "При нажатии на Enter"
18 ale-sarin
 
17.12.15
15:53
(17) Дада, увидел. Также прошу прощения))
19 CepeLLlka
 
17.12.15
15:54
В общем я так понял что это действительно всегда будет так работать, если составной типа имеет тип справочник как минимум..
Надо ограничивать как в (9)
20 Fedor-1971
 
17.12.15
15:55
(19) попробуй снять галку "Выбирать тип" и проверь (это то же выбор)
21 CepeLLlka
 
17.12.15
15:59
(20)Пробовал..
22 CepeLLlka
 
17.12.15
16:01
Сделал в общем как в (9)

Всё работает чётко и шикарно..

Автору публикации и автору (9), выражаю огромную благодарность в помощи и в обучении.

Большое спасибо!
23 aleks_default
 
17.12.15
16:02
(0)А у реквизита (не у элемента формы) "Быстрый выбор" снимал?
24 CepeLLlka
 
17.12.15
16:04
(23)Думаю ответ на ваш вопрос есть в скриншотах (11) и (14)
25 CepeLLlka
 
17.12.15
17:02
(9)Кстати по ссылке есть пару косячков, и в комментариях пишут об этом..

Нужно дописать в обработке выбора, чтобы если ты выбрал организацию, тип поля сменилось, а то так и будет строка..

Ну и если тип поля ты уже сменил, то при следующем наборе идёт косяк с тем, что не можешь уже оставить строку которую хочешь.. Он просто пишет - Что элемент справочника не найден..
Просто поставил изменять тип поля, при окончании редактирования строки, вроде всё норм отрабатывает..


&НаКлиенте
Процедура ОрганизацияОчистка(Элемент, СтандартнаяОбработка)
    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("Строка"));
    Элементы.Организация.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов, Новый КвалификаторыСтроки(200));
    Организация = "";
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.Организации") Тогда
        МассивТипов = Новый Массив;
        МассивТипов.Добавить(Тип("СправочникСсылка.Организации"));
        Элементы.Организация.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("Строка"));
    Элементы.Организация.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов, Новый КвалификаторыСтроки(200));
    Организация = Текст;
КонецПроцедуры
26 aleks_default
 
17.12.15
17:05
(24) запрещены у меня скриншоты, и че теперь вопросов не задавать?
27 CepeLLlka
 
17.12.15
17:07
(26)Извините пожалуйста, я ведь не мог этого знать..

То, что вы спрашиваете в (23) я пробовал, Спасибо. Но это не помогло.
28 Cyberhawk
 
17.12.15
17:12
(22) Рад, что помогло. Плюсанул публикацию-то?
(25) А какой смысл изменять ограничение типа поля ввода между событиями "ОбработкаВыбора" и "ОкончаниеВводаТекста"? Чтобы через лупу открыть элемент справочника?
29 CepeLLlka
 
17.12.15
17:15
(28)Ну у меня к примеру это поле отбора на форме отчёта..

И мне нужна ссылка, а не строка.. Для подстановки её параметром в отчёт.

У меня смысл в том, что можно искать в отчёте по ссылке или же по строке
30 CepeLLlka
 
17.12.15
17:16
(28)Теперь плюсанул :)
31 Cyberhawk
 
17.12.15
17:22
(29) Ясно. На досуге проверю и дополню публикацию.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший