1с ввод по строке что такое

Использование режима «ввод по строке» может быть запрограммировано произвольным образом не только для реквизитов ссылочных типов (Справочник, Документ, План видов характеристик, План счетов, План видов расчета, Перечисление), но и для реквизитов типа «Строка». Написание программного кода осуществляется в обработчиках поля ввода АвтоПодборТекста() и ОкончаниеВводаТекста() . Например, по набору первых символов в поле ввода колонки табличного поля системой может быть автоматически предложено дополнение вводимого текста до уже существующего в этой колонке значения. При окончании ввода текста (нажатию Enter или сходе с элемента управления), системой может быть предложен список с найденными, по первым введенным символам, значениям колонки.

Пример программного управления режимом «ввод по строке» для поля ввода типа строка, продемонстрирован во внешней обработке.
После запуска обработки добавьте строку в таблицу значений. В колонке «Цвет» введите первые символы названия цвета, после чего будет предложено дополнение вводимого текста.

Обработка TextBox.epf находится в каталоге 1CITSEXEEXAMPLES81

ВЫ МОЖЕТЕ ПРЯМО СЕЙЧАС СКОПИРОВАТЬ ОБРАБОТКУ
НА ЖЕСТКИЙ ДИСК ВАШЕГО КОМПЬЮТЕРА

При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования!

В 1С 8.3 по умолчанию настройки справочника номенклатуры такие:

При такой настройке, механизм поиска в справочнике номенклатуры работает так:

— в документе вводим первые символы Пета и видим такой результат подсказки:

Но, такой поиск не удобен и менеджеры захотели подбирать номенклатуру по артикулу, например 1320

Для этого изменим настройки указав поиск по Любой части и включив полнотекстовый поиск:

Сохраняем конфигурацию и в режиме предприятие обновляем Полнотекстовый поиск: Меню — Все функции — Стандартные — Управление полнотекстовый поиском

После этого пробуем в документе выполнить поиск по 1320 и видим:

Все Менеджеры пищат как дети на новогодней елке!

Пока писал эту статью нашел в интернете другое решение для платформы 8.2:

ОбработкаПолученияДанныхВыбора( , , )

В модуле менеджера справочника «Номенклатура» пишем:

В обработчике — ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбраблтка) для нас важны все три параметра. В первый «ДанныеВыбора» мы загружаем наш список номенклатуры, полученный по нашему алгоритму. Из параметра «Параметры» мы получим значение введенное пользователем, а третьему параметру «СтандартнаяОбработка» мы должны поставить значение «Ложь»(отключаем стандартный алгоритм системы).

В результате одной небольшой процедурой мы полностью решили поставленную задачу.

Справочные статьи по моментам разработки на платформе 1с

Чтобы использовать ввод по строке в документах нужно на уровне справочника указать поля по которым будет использоваться ввод по строке. По умолчанию это предопределенные реквизиты «Наименование» и «Код».

Для переопределения события ввода по строке в модуле менеджера документа (в котором собственно и будем творить бардак) создаем событие
ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

В этом модуле можно определить новый массив для данных выбора

«Параметры» — Содержит параметры выбора.
Их можно дополнительно настроить в обработчике события.
Структура, в которой обязательно должны содержаться следующие ключи:

  • СтрокаПоиска (SearchString) — строка, используемая при поиске данных, Неопределено — осуществляется быстрый выбор;
  • Отбор (Filter) — отбор, используемый при поиске данных;
  • ВыборГруппИЭлементов (ChoiceFoldersAndItems) — указывается использование групп и элементов (только для иерархических данных); тип ИспользованиеГруппИЭлементов;
  • СпособПоискаСтроки (StringSearchMode) — указывается способ поиска при вводе по строке; тип СпособПоискаСтрокиПриВводеПоСтроке; параметр может отсутствовать;
  • ПолнотекстовыйПоиск (FullTextSearch) — указывается необходимость использования полнотекстового поиска при вводе по строке; тип — ПолнотекстовыйПоискПриВводеПоСтроке; параметр может отсутствовать;
  • РежимПолученияДанныхВыбора (ChoiceDataGettingMode) — указывает режим запуска поиска. Тип РежимПолученияДанныхВыбораПриВводеПоСтроке; параметр может отсутствовать.

Пример дублирования типового поведения:

Листинг процедуры ОбработкаПолученияДанныхВыбора:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Запрос = Новый Запрос(«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО &Наименование»);
Запрос.УстановитьПараметр(«Наименование», «%» + Параметры.СтрокаПоиска + «%»);
// Конструкция «%» + Параметры.СтрокаПоиска + «%» показывает что в начале и в конце строки
//может быть неопределенное количество символов

//Выгружаем таблицу в массив чтобы потом загрузить ее в данные выбора
Массив = Таблица.ВыгрузитьКолонку(«Ссылка»);

ДанныеВыбора = Новый СписокЗначений; // Переопределяем данные выбора т.к. по
//умолчанию они имею тип — «неопределено»

СтандартнаяОбработка = Ложь; //ключевое вырожение отлючает стандартное выполнение
//и позволяет рабртать новому алгоритму

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: