Ввод по строке 1с что это

Обновлено: 05.07.2024

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

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

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

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

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

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


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



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

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



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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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


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


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


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

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

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)

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

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

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

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

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

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


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


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


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

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


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


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


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

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

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)

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

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

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

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

Читайте также: