Обработка выбора допреквизита
Когда необходимо какое-то действие при выборе значения реквизита, то можно создать обработку выбора. С допреквизитом такое тоже возможно, но несколько сложнее.
Например, поле допреквизита «Увольняющийся сотрудник» должно заполняться как ФИО + должность или выполняться какая-либо другая задача
Открываем ВнутренниеДокументы — Форма элемента
Можно привязаться к процедуре при смене страницы и добавить в неё ссылку на процедуру обработки событий УстановитьДействиеДляДопРеквизита()
1 2 3 4 5 6 7 8 9 10 11 12 |
&НаКлиенте Процедура Расш1_ГруппаСтраницыПриСменеСтраницыВместо(Элемент, ТекущаяСтраница) Если ТекущаяСтраница = Элементы.Обзор И Модифицированность Тогда ПолучитьОбзорДокумента(); КонецЕсли; // изменение № ... ( УстановитьДействиеДляДопРеквизита() // изменение № ... ) КонецПроцедуры |
Добавляем процедуру
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
&НаСервере Процедура УстановитьДействиеДляДопРеквизита() Список = ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов; Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя","Увольняющийся_сотрудник"); Если ЗначениеЗаполнено(Свойство) Тогда НайденныеСтроки = Список.НайтиСтроки(Новый Структура("Свойство",Свойство)); Если НайденныеСтроки.Количество() > 0 Тогда ИмяРеквизитаНаФорме = НайденныеСтроки[0].ИмяРеквизитаЗначение; ЭлементФормы = Элементы.Найти(ИмяРеквизитаНаФорме); ЭлементФормы.УстановитьДействие("АвтоПодбор","ВЫПОЛНЕНИЕ-КОДА"); ЭлементФормы.УстановитьДействие("ОбработкаВыбора","ЗаполнениеДопРеквизита"); КонецЕсли; КонецЕсли; КонецПроцедуры |
Вместо «ВЫПОЛНЕНИЕ-КОДА» нужно подставить имя процедуры, которая должна выполниться при изменении допреквизита.
1 2 3 4 5 6 7 |
&НаКлиенте Процедура ВЫПОЛНЕНИЕ-КОДА(Элемент, ДанныеВыбора, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) МодификацияКонфигурацииКлиент.Подключаемый_ЭлементУправленияНачалоВыбора(ЭтаФорма, Элемент, ДанныеВыбора, СтандартнаяОбработка, ДополнительныеПараметры); КонецПроцедуры |
И заполняем реквизит полученными значениями
1 2 3 4 5 6 7 |
&НаКлиенте Процедура ЗаполнениеДопРеквизита(Элемент, ДанныеВыбора, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) ДанныеВыбора = ДанныеВыбора.Сотрудник + ", " + ДанныеВыбора.Должность; КонецПроцедуры |
Комментарии закрыты