Поиск по наименованию в динамическом списке

08.02.17

Задачи пользователя - Адаптация типовых решений

Пример позиционирования в динамическом списке по набранной строке

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ПодборТоваровВДокументЗакупки.epf
.epf 66,90Kb
10 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

Пример на работе формы подбора в документ закупки в конфигурации УТ 11.2 (11.2.3.163). По сравнению с типовой обработкой внесены следующие изменения:

модуль формы:

в конце модуля #Область ПоискПоНаименованию;

добавлены команды: ПоискПоНаименованиюВыполнить, ПоискПоНаименованиюФокус

добавлен реквизит ПоискПоНаименованию, Строка

добавлены кнопки в группу ФормаГорячиеКлавиши: ПоискПоНаименованию2 (команда ПоискПоНаименованиюФокус), ПоискПоНаименованиюВыполнить (команда ПоискПоНаименованиюВыполнить)

добавлены поля ввода: ПоискПоНаименованию1 (при ) в группе СтандартныйПоискНоменклатура, ПоискПоНаименованию в группе РасширенныйПоискНоменклатура. Данные для обоих полей ПоискПоНаименование, для обоих полей при изменении вызывается ПоискПоНаименованиюПриИзменении

Привожу код области #Область ПоискПоНаименованию

#Область ПоискПоНаименованию
процедура СпозиционироватьсяВСправочнике(Результат, ДополнительныеПараметры) экспорт
	
	Текст=сокрП(ПоискПоНаименованию);
	
	Если Не ПодборТоваровКлиентСервер.ЭтоФормаПодбораТоваровПоКатегориям(ЭтаФорма) Тогда
		ИдСписка=ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма);
	Иначе
		ИдСписка="СписокРасширенныйПоискНоменклатура";
	КонецЕсли;
	
 	_Список=Элементы[ИдСписка];
	Настройки=_Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
	
	
	Схема=_Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
	
	КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных();
	МакетКомпоновки=КомпоновщикМакета.Выполнить(Схема,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	МакетКомпоновки.НаборыДанных.НаборДанныхДинамическогоСписка.Запрос=
		МакетКомпоновки.НаборыДанных.НаборДанныхДинамическогоСписка.Запрос+
	"
	//|и СправочникНоменклатура.НаименованиеПолное подобно """+Текст+"%"" 	
	|и СправочникНоменклатура.Наименование подобно """+Текст+"%"" 	
	|";
	
	// добавляем ссылку в макет
	ЯчейкиМакета1=МакетКомпоновки.Макеты.Макет1.Макет.Ячейки;
	ЯчейкиМакета1.Очистить();
	ЯчейкаСсылки=ЯчейкиМакета1.добавить();
	ЯчейкаСсылки.Имя="Ссылка";
	ЯчейкаСсылки.Заголовок="Ссылка";
	ЯчейкаСсылки.ТипЗначения=новый описаниетипов("СправочникСсылка.Номенклатура");
	
	ЯчейкиМакета2=МакетКомпоновки.Макеты.Макет2.Макет.Ячейки;
	ЯчейкиМакета2.Очистить();
	ЯчейкаСсылки=ЯчейкиМакета2.добавить();
	ЯчейкаСсылки.Значение=новый ПараметрКомпоновкиДанных("ПараметрСсылка");
	ЯчейкаСсылки.Колонка="Ссылка";
	
	ПараметрыМакета2=МакетКомпоновки.Макеты.Макет2.Параметры;
	ПараметрыМакета2.Очистить();
	НовПараметр=ПараметрыМакета2.Добавить(тип("ПараметрОбластиВыражениеКомпоновкиДанных"));
	НовПараметр.Выражение="НаборДанныхДинамическогоСписка.Ссылка";
	НовПараметр.Имя="ПараметрСсылка";
	
	ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода=новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	мНоменклатура=ПроцессорВывода.Вывести(ПроцессорКомпоновки).ВыгрузитьКолонку("Ссылка");
	
	если мНоменклатура.Количество()>0 тогда
		текПозиция=_Список.ТекущаяСтрока;
		текинд=мНоменклатура.найти(текПозиция);
		индНужнойПозиции=0;
		если текинд=неопределено тогда
		иначеесли текинд<мНоменклатура.Количество()-1 тогда
			индНужнойПозиции=текинд+1;
		КонецЕсли;	
			
		_Список.ТекущаяСтрока=мНоменклатура[индНужнойПозиции].ссылка;
		ТекущийЭлемент = ЭтаФорма.Элементы[ИдСписка];
	иначе	
		ТекущийЭлемент=ЭтаФорма.Элементы["ПоискПоНаименованию"+?(ИдСписка="СписокРасширенныйПоискНоменклатура","","1")];
	КонецЕсли;
	
КонецПроцедуры


&НаКлиенте
Процедура ПоискПоНаименованиюПриИзменении(Элемент)
	
	если сокрл(ПоискПоНаименованию)="" тогда возврат КонецЕсли;
	
	Оповещение=Новый ОписаниеОповещения("СпозиционироватьсяВСправочнике", ЭтотОбъект);
	ВыполнитьОбработкуОповещения(Оповещение);
	//СпозиционироватьсяВСправочнике(ПоискПоНаименованию);
КонецПроцедуры

&НаКлиенте
Процедура ПоискПоНаименованиюФокус(Команда)
	Если Не ПодборТоваровКлиентСервер.ЭтоФормаПодбораТоваровПоКатегориям(ЭтаФорма) Тогда
		ИдСписка=ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма);
	Иначе
		ИдСписка="СписокРасширенныйПоискНоменклатура";
	КонецЕсли;

	ТекущийЭлемент=ЭтаФорма.Элементы["ПоискПоНаименованию"+?(ИдСписка="СписокРасширенныйПоискНоменклатура","","1")];
	
КонецПроцедуры

&НаКлиенте
Процедура ПоискПоНаименованиюВыполнить(Команда)
	ПоискПоНаименованиюПриИзменении("");
КонецПроцедуры


#КонецОбласти

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

28800 руб.

27.03.2025    60508    34    29    

47

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

31800 руб.

29.06.2023    10491    31    15    

39

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36000 руб.

28.08.2025    4261    1    2    

4

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9000 руб.

02.08.2023    7075    24    5    

40

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

9600 руб.

17.06.2025    2321    6    0    

6

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3500 руб.

07.02.2023    11125    106    20    

64

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

6000 руб.

14.01.2016    58694    20    25    

46

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами (виджетами) в 1С.

5160 руб.

29.06.2020    23251    33    6    

52
Для отправки сообщения требуется регистрация/авторизация