Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Выбор записи справочника на форме

Выбор записи справочника на форме
Я
   trialex3
 
28.06.21 - 13:15
Добрый день. Есть на форме поле справочника. В этом поле соответственно указывают запись справочника. Есть заипсь за наименованием "1" и запись за наименованием "10". Как сделать так, что бы если человек набрал "1" то поле сразу заполнилось нужной записью а не предложило на выбор 2 записи - "1" и "10".
   acht
 
1 - 28.06.21 - 14:03
Гм. А как человек тогда вообще введет "10"?
А так - см. обработчик АвтоПодбор и формируй список значений из одного элемента
   acanta
 
2 - 28.06.21 - 14:10
можно поставить условие на минимальное количество символов, тогда в справочнике придется делать наименование фиксированной длины (01,10,11 или " 1"). Если наименование это точно число(например, артикул), форматировать туда и обратно грустно..
   trialex3
 
3 - 29.06.21 - 08:59
(1) Число водится сканированием штрихкода. После сканирования сканер сам вставляет энтер.
   МимохожийОднако
 
4 - 29.06.21 - 09:03
(3) Так человек набрал или сканер?
   butterbean
 
5 - 29.06.21 - 09:04
(0) в модуле менеджера справочника ОбработкаПолученияДанныхВыбора
   МимохожийОднако
 
6 - 29.06.21 - 09:04
Странный штрихкод
   acht
 
7 - 29.06.21 - 09:29
(0) > Как сделать так, что бы если человек набрал
(3) > Число водится сканированием штрихкода

Яркая такая демонстрация, почему новичков не любят и не хотят отвечать на их вопросы.
   ДенисЧ
 
8 - 29.06.21 - 09:33
(7) А что, ШК не человек сканирует?
   acht
 
9 - 29.06.21 - 09:35
(8) после слова "человек" идет слово "набрал"
   ДенисЧ
 
10 - 29.06.21 - 09:36
(9) А на заборе "дрова" написано...
   acht
 
11 - 29.06.21 - 09:37
(10) Заглядывал?
   ДенисЧ
 
12 - 29.06.21 - 09:43
(11) Ага. Там борщевик и ржавая копейка...
   trialex3
 
13 - 29.06.21 - 09:47
(5) Благодарю. Буду пробовать.
   trialex3
 
14 - 29.06.21 - 13:40
(5) Странно как то работает у меня. написал вот так -


Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    // Если это рекурсивный вызов – ничего не делать.


Если НЕ Параметры.Свойство("Рекурсия") Тогда

СтандартнаяОбработка = Ложь;

 

// Получить стандартный список выбора.


Параметры.Вставить("Рекурсия");
    СтандартнаяОбработка = Ложь;
    СтандартныйСписок = ПолучитьДанныеВыбора(Параметры);
    СтандартныйСписок.Очистить();
    ДополнительныйЭлемент = Справочники.АГ_НомераИсполнителей.НайтиПоНаименованию(Параметры.СтрокаПоиска);
    СтандартныйСписок.Добавить(ДополнительныйЭлемент);    
    ДанныеВыбора = СтандартныйСписок;
    КонецЕсли;
КонецПроцедуры

Но если сканером ввожу "9" то получаю в поле уже "999" хотя в Данных выбора передается одна ссылка "9"
   trialex3
 
15 - 29.06.21 - 14:01
При этом "1" и "10" вводятся корректно, а "9" и "999" нет
   trialex3
 
16 - 29.06.21 - 14:36
Все номера вводятся нормально, кроме 9 и 999
Мистика
   RomaH
 
17 - 29.06.21 - 15:30
(14) странный способ объявить список значений
чем простой Новый СписокЗначений не устроил?
   RomaH
 
18 - 29.06.21 - 15:30
СтандартныйСписок = ПолучитьДанныеВыбора(Параметры);
    СтандартныйСписок.Очистить();

вот это что?
   RomaH
 
19 - 29.06.21 - 15:34
НайтиПоНаименованию - там дальше второй и третий параметры есть?
   trialex3
 
20 - 29.06.21 - 15:43
(17) Переделал - не помогает
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    // Если это рекурсивный вызов – ничего не делать.


Если НЕ Параметры.Свойство("Рекурсия") Тогда

СтандартнаяОбработка = Ложь;

 

// Получить стандартный список выбора.


Параметры.Вставить("Рекурсия");
    СтандартнаяОбработка = Ложь;
    СтандартныйСписок = Новый СписокЗначений;
    //СтандартныйСписок.Очистить();

    ДополнительныйЭлемент = Справочники.АГ_НомераИсполнителей.НайтиПоНаименованию(Параметры.СтрокаПоиска);
    СтандартныйСписок.Добавить(ДополнительныйЭлемент);    
    ДанныеВыбора = СтандартныйСписок;
    КонецЕсли;
КонецПроцедуры
   trialex3
 
21 - 29.06.21 - 15:44
(19) Так найти по наименованию все нормально находит - запись "9"
   ДедМорроз
 
22 - 29.06.21 - 21:52
Так событие окончание ввода текста же.
И таи ищем по тому,что ввели,причем,сработает,если нажали enter.
   trialex3
 
23 - 30.06.21 - 09:52
(22) Пробовал уже так - не работает. Всеравно предлагает список:

&НаКлиенте
Процедура СборщикОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
Сборщик = Справочники.АГ_НомераИсполнителей.НайтиПоНаименованию(Текст);    
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.ОК;
КонецПроцедуры
   trialex3
 
24 - 30.06.21 - 09:57
А вот так тоже не работает с "9"-

&НаКлиенте
Процедура СборщикОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
НайденныйСборщик = Справочники.АГ_НомераИсполнителей.НайтиПоНаименованию(Текст);
СЗ = Новый СписокЗначений;
СЗ.Добавить(НайденныйСборщик);
ДанныеВыбора = СЗ;
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.ОК;
КонецПроцедуры


Список тем форума
 
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.