Быстрый отбор в справочнике по первой букве
Задачи пользователя - Адаптация типовых решений
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
//////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ &НаКлиенте Процедура УстановитьПометку(Команда) Для Каждого Кнопка Из Элементы.ПанельСБуквами.ПодчиненныеЭлементы Цикл Кнопка.Пометка = (Команда.Имя = Кнопка.Имя); КонецЦикла; КонецПроцедуры // УстановитьПометку() &НаСервере Процедура ПодготовитьДинамическийСписок() Список.ПроизвольныйЗапрос = Истина; ТекстЗапроса = "ВЫБРАТЬ * |ИЗ | %ИмяТаблицы% КАК Т |{ГДЕ | (ПОДСТРОКА(Т.Наименование, 1, 1) В (&СписокБукв))}"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ИмяТаблицы%", Список.ОсновнаяТаблица); Список.ТекстЗапроса = ТекстЗапроса; КонецПроцедуры // ПодготовитьДинамическийСписок() &НаСервере Процедура СоздатьПанельСБуквами() ПанельСБуквами = Элементы.Вставить("ПанельСБуквами", Тип("ГруппаФормы"), ЭтаФорма, Элементы.Список); ПанельСБуквами.Вид = ВидГруппыФормы.КоманднаяПанель; // кнопка "Все" КомандаФормы = Команды.Добавить("Все"); КомандаФормы.Действие = "УдалитьФильтрПоПервойБукве"; КнопкаФормы = Элементы.Добавить("Все", Тип("КнопкаФормы"), ПанельСБуквами); КнопкаФормы.ИмяКоманды = "Все"; КнопкаФормы.Пометка = Истина; // кнопки А...Я Для Сч = КодСимвола("А") По КодСимвола("Я") Цикл ИмяКоманды = Символ(Сч); Если Найти("Ё,Й,Ъ,Ь", ИмяКоманды) > 0 Тогда Продолжить; КонецЕсли; КомандаФормы = Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = "УстановитьФильтрПоПервойБукве"; КнопкаФормы = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), ПанельСБуквами); КнопкаФормы.ИмяКоманды = ИмяКоманды; КонецЦикла; КонецПроцедуры // СоздатьПанельСКнопками() //////////////////////////////////////////////////////////////////////////////// // КОМАНДЫ МОДУЛЯ &НаКлиенте Процедура УстановитьФильтрПоПервойБукве(Команда) Буква = Команда.Имя; СписокБукв = Новый Массив; СписокБукв.Добавить(Буква); СписокБукв.Добавить(НРег(Буква)); Если Буква = "Е" Тогда СписокБукв.Добавить("Ё"); СписокБукв.Добавить("ё"); КонецЕсли; Если Буква = "И" Тогда СписокБукв.Добавить("Й"); СписокБукв.Добавить("й"); КонецЕсли; Список.Параметры.УстановитьЗначениеПараметра("СписокБукв", СписокБукв); УстановитьПометку(Команда); КонецПроцедуры &НаКлиенте Процедура УдалитьФильтрПоПервойБукве(Команда) ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных("СписокБукв"); ЗначениеПараметраКомпоновкиДанных = Список.Параметры.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных); Если ЗначениеПараметраКомпоновкиДанных = Неопределено Тогда Возврат; КонецЕсли; ЗначениеПараметраКомпоновкиДанных.Использование = Ложь; УстановитьПометку(Команда); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ПодготовитьДинамическийСписок(); СоздатьПанельСБуквами(); КонецПроцедуры // ПриСозданииНаСервере()
Данный текст необходимо вставить в модуль формы списка справочника.
Процедуру "ПриСозданииНаСервере" вручную назначить обработчиком одноименного события формы.
Если данному событию уже назначен обработчик, то необходимо дополнить его строками процедуры "ПриСозданииНаСервере" из листинга.
Реквизита формы "Список" не должен содержать произвольного запроса. Если список формируется произвольным запросом, то в запрос необходимо дописать условие компоновки:
{ГДЕ (ПОДСТРОКА(ИмяТаблицы.Наименование, 1, 1) В (&СписокБукв))}
и удалить процедуру "ПодготовитьДинамическийСписок" и все ее вызовы.
Вступайте в нашу телеграмм-группу Инфостарт