Как работает
-
Вы начинаете вводить текст в поле.
-
Обработка проверяет, есть ли похожие значения в истории.
-
Если есть — они появляются в выпадающем списке.
-
Выбираете нужное — поле заполняется.
-
Если значения нет — пишете вручную. В следующий раз оно уже появится в списке.
Интерфейс
-
Поле ввода — сюда пишется значение.
-
Кнопка «Обновить» — принудительно перезагружает список (если данные изменились).
При клике на поле ввода раскрывается список сохранённых ранее значений.
Для кого это
-
Для сотрудников, которые часто заполняют повторяющиеся реквизиты.
-
Для разработчиков, которые хотят посмотреть, как реализована история ввода на практике.
Внедрение
В текущей версии используются тестовые данные, чтобы показать принцип работы. При необходимости список легко заменить на реальные данные из регистра сведений или справочника.
Пример кода (реализация механизма)
Ниже приведён код модуля формы, который реализует описанный выше функционал.
Он разбит на логические блоки для удобства чтения.
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТестовыеДанные();
ПриЧтенииСозданииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ЗаполнитьСпискиВыбора();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьВСтрокуАдрес(Команда)
Адрес1 = АдресВвода;
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
ЗаполнитьСпискиВыбора();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ТестовыеДанные()
Адрес1 = "Страна: Неизвестная, город: Потерянный, ул. Птичкина, 2/3";
Адрес2 = "Страна: Популярная, город: Интересный, ул. Лайкова, 10/9";
Адрес3 = "Страна: Грустная, город: Странный, пер.Обидный , 9";
Адрес4 = "Страна: Мерзкая, город: Душный, пос. Невнятный, 1";
Адрес5 = "Страна: Другая, город: Молодой, ул. Старая, 7/3";
КонецПроцедуры
&НаСервере
Функция ПолучитьМассивДанных()
МассивДанных = Новый Массив;
МассивДанных.Добавить(Адрес1);
МассивДанных.Добавить(Адрес2);
МассивДанных.Добавить(Адрес3);
МассивДанных.Добавить(Адрес4);
МассивДанных.Добавить(Адрес5);
Возврат МассивДанных;
КонецФункции // ()
Процедура ЗаполнитьСпискиВыбора()
Итог = ПолучитьМассивДанных();
Элементы.ВводАдреса.СписокВыбора.ЗагрузитьЗначения(Итог);
КонецПроцедуры
#КонецОбласти
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.27.52
Вступайте в нашу телеграмм-группу Инфостарт