|
Переопределение события ОкончаниеВводаТекста() для справочника | ☑ | ||
---|---|---|---|---|
0
etlau
23.05.13
✎
09:22
|
Возникла потребность переопределить событие ОкончаниеВводаТекста(), убрав из списка удаленные элементы справочника Физлиц
Процедура ОтборФизЛицОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Экспорт //Отбирает физлица с учетом пометки удаления и изменяет список значения для поля ввода СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.УстановитьПараметр("Текст", Текст+"%"); Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Ссылка, | ФизическиеЛица.Наименование, | ФизическиеЛица.Код |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Наименование ПОДОБНО &Текст | И НЕ ФизическиеЛица.ПометкаУдаления |Упорядочить ПО | ФизическиеЛица.Наименование"; ТЗ = Запрос.Выполнить().Выгрузить(); Значение = Новый СписокЗначений; Для каждого СтрокаТЗ из ТЗ Цикл Значение.Добавить(СтрокаТЗ.Ссылка, СтрокаТЗ.Наименование+" ("+Строка(СтрокаТЗ.Код)+")") КонецЦикла КонецПроцедуры Для одного элемента формы все работает хорошо. Но мне бы хотелось, чтобы это событие обрабатывалось так для всех полей ввода, которые подвязаны к этому справочнику физлиц, без необходимости у каждого прописывать эту процедуру. Можно ли как то глобально, для справочника, переопределить это событие? |
|||
1
1Сергей
23.05.13
✎
09:25
|
если тонкий клиент, то можно сделать в модуле менеджера справочника
|
|||
2
Mitriy
23.05.13
✎
09:25
|
ПодключитьОбработчикИзмененияДанных()
|
|||
3
1Сергей
23.05.13
✎
09:26
|
(1) +
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Наименование + "" ("" + Контрагенты.Код +"")"" КАК Представление |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | НЕ Контрагенты.ПометкаУдаления | И Контрагенты.Наименование ПОДОБНО &Подстрока"; Если НЕ Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.ГруппыИЭлементы Тогда Запрос.Текст = Запрос.Текст + " | И Контрагенты.ЭтоГруппа = &ЭтоГруппа"; Запрос.УстановитьПараметр("ЭтоГруппа", Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы); КонецЕсли; Запрос.УстановитьПараметр("Подстрока", Параметры.СтрокаПоиска + "%"); ДанныеВыбора = Новый СписокЗначений; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтрокаЗапроса = Выборка; ДанныеВыбора.Добавить(СтрокаЗапроса.Ссылка, СтрокаЗапроса.Представление); КонецЦикла; СтандартнаяОбработка = Ложь; КонецПроцедуры |
|||
4
kosts
23.05.13
✎
09:30
|
(0) Правильнее всего навести порядок в справочнике физлиц и удалить помеченных.
В управляемых формах можно перехватить такой выбор для всех. |
|||
5
1Сергей
23.05.13
✎
09:35
|
(4) чушь. Если элемент помечен на удаление, это ещё не значит, что его можно удалять
|
|||
6
Borteg
23.05.13
✎
09:45
|
(0) Параметры выбора указать и все...
|
|||
7
Borteg
23.05.13
✎
09:46
|
(0) а если для всех то в менеджере справочника
|
|||
8
kosts
23.05.13
✎
09:53
|
(5) Не фиг тогда помечать. Пометка удаления она для удаления, а не для фантазий на какой либо счет.
|
|||
9
1Сергей
23.05.13
✎
09:56
|
(8) придумай тогда более красивый способ запретить юзерам указывать определённых физ.лиц в документах?
|
|||
10
kosts
23.05.13
✎
09:58
|
(9) Подписка перед записью
|
|||
11
1Сергей
23.05.13
✎
09:59
|
(10) перед записью чего?
|
|||
12
kosts
23.05.13
✎
09:59
|
(11) Документа
|
|||
13
1Сергей
23.05.13
✎
10:00
|
(12) всех документов? т.е. старые документы, где данное физлицо уже введено и должно быть там, уже не перезаписать?
|
|||
14
kosts
23.05.13
✎
10:01
|
(13) Вообще-то в 1С существуют разные конструкции типа "Если".
|
|||
15
1Сергей
23.05.13
✎
10:03
|
(14) это не "красивое" решение. Проще пометить на удаление и запретить выбирать помеченные. Вообще, меня удивляет, что в 1С не сделали данную опцию
|
|||
16
kosts
23.05.13
✎
10:08
|
(15) Я бы не сказал не красивое, это нормальное решение, с другой стороны не совсем полное. При записи по любому должен быть контроль. Но желательно дополнить интерфейсными приколюхами. Не верно надеяться, что пользователь не сможет каким-либо способом выбрать не правильный элемент. После обновления что-нить слетит и нашлепают не правильных документов. Подписка же намного надежнее и при обновлении не слетит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |