Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:38

Добавить кнопку фильтр на форму (Функция Найти по-умолчанию)

Автор АморальныйТипДанных, 29 июл 2014, 16:45

0 Пользователей и 1 гость просматривают эту тему.

АморальныйТипДанных

Есть документы Счета на оплату покупателем. Щелкаем мышкой по ячейке Контрагент с нужным контрагентом, далее нажимаем - Найти - Найти.
В результате получаем все счета на оплату покупателем с выбранным контрагентом, а мне нужно, чтобы выбирался контрагент и один раз нажималась кнопка найти.
Кнопка должна быть или на панели или в контекстном меню, которая будет выполнять Найти без дополнительных настроек (чтобы два раза не нажимать Найти).

P.S. Работаю только в GUI. Можно ли это реализовать там?

1с 8.3. Бухгалтерия 3.0

LexaK

сделать можно, но зачем?
это стандартный механизм поиска во всех (или почти) списках документов!

Бухгалтерия у вас находится на поддержке, что бы там что-то править (дорабатывать) надо снимать с поддержки, как тогда будете обновлять бухгалтерию?
Даже если сделаете доработку и сможете обновить конфигурацию базы, то ваши доработки после обновления могут пропасть.

И стоит ли ради всего этого заморачиваться из-за двух нажатий на кнопку Найти?
если помогло нажмите: Спасибо!

АморальныйТипДанных

Цитата: LexaK
сделать можно, но зачем?
Ну да я согласен, но в любом случае надо.
Цитата: LexaK
Бухгалтерия у вас находится на поддержке, что бы там что-то править (дорабатывать) надо снимать с поддержки, как тогда будете обновлять бухгалтерию?
Даже если сделаете доработку и сможете обновить конфигурацию базы, то ваши доработки после обновления могут пропасть.
А как тогда делать что-то подобное (отсебятину), чтобы она не пропадала после обновления?

LexaK

ЦитироватьНу да я согласен, но в любом случае надо.

ну если очень надо

1.снимате форму списка с поддержки
2.в конструкторе формы списка добавляете команду Фильтр
3.размещеаете эту команду в Комндной панели
4.вставляете в модуль формы, следующие процедуры.

процедуры

&НаКлиенте
Процедура Фильтр(Команда)
   лкСтрока = Элементы.Список.ТекущиеДанные;
   Если лкСтрока = Неопределено Тогда
      Возврат;
   КонецЕсли;
   лкЭлемент = Элементы.Список.ТекущийЭлемент;
   лкИмяПоля = лкЭлемент.Имя;
   лкЗначениеПоля = лкСтрока[лкИмяПоля];
   УстановитьОтбор(лкИмяПоля, лкЗначениеПоля);
КонецПроцедуры

&НаСервере
Процедура УстановитьОтбор(ИмяПоля, ЗначениеПоля)
//самый простой вариант, по идее здесь нужна проверка   
   лкОтбор = ЭтаФорма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   лкОтбор.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(ИмяПоля);
   лкОтбор.ВидСравнения     = ВидСравненияКомпоновкиДанных.Равно;
   лкОтбор.Использование    = Истина;
   //лкОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   лкОтбор.ПравоеЗначение   = ЗначениеПоля;
КонецПроцедуры

как вклиниться в стандартную настройку фильтра, не нашел. видимо какими-то внутренниими методами 1С может отфильтровать данные списка на самой форме не обращаясь к серверу.
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск