Обычные формы. Поле ввода сотрудника. Передать отбор для справочника.

1. LavinVladik 215 13.09.17 11:01 Сейчас в теме
при входе в поле набираем таб. номер и получаем сотрудника.
а как перехватить нажатие кнопки выбрать (F4) и передать отбор к примеру по подразделению
Вознаграждение за ответ
Показать полностью
Найденные решения
6. BackinSoda 13.09.17 14:31 Сейчас в теме
(5) тогда и обработчик надо программно добавить
ЭлементыФормы.Табличка.Колонки["Сотрудник"].ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ВыборСотрудника"));

ну и к нему вторую процедуру где будет происходить открытие формы и отбор и т.д.
Процедура ВыборСотрудника(Элемент, СтандартнаяОбработка)
	// тут свой код выбора
КонецПроцедуры
LavinVladik; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 13.09.17 11:54 Сейчас в теме
(1) пример, надо менять обработчик при начале выбора:
СтандартнаяОбработка = Ложь;

	ФормаВыбора = Справочники.ДоговорыКонтрагентов.ПолучитьФормуВыбора(,ЭлементФормы,);

	// Владельца менять по умолчанию не даем.
	ФормаВыбора.ПараметрОтборПоВладельцу = Контрагент;
	ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Владелец.Доступность = Ложь;

	// Еще надо фильтровать по организации, если она заполнена
	Если МетаданныеДокумента.Реквизиты.Найти("Организация") <> Неопределено
	   И ЗначениеЗаполнено(ДокументОбъект.Организация) Тогда
		ФормаВыбора.СправочникСписок.Отбор.Организация.Значение                            = ДокументОбъект.Организация;
		ФормаВыбора.СправочникСписок.Отбор.Организация.Использование                       = Истина;
		ФормаВыбора.СправочникСписок.Отбор.Организация.ВидСравнения                        = ВидСравнения.Равно;
		ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Организация.Доступность = Ложь;
	КонецЕсли;

	ФормаВыбора.НачальноеЗначениеВыбора = ДоговорКонтрагента;

	ФормаВыбора.Открыть();
Показать
LavinVladik; +1 Ответить
3. LavinVladik 215 13.09.17 12:16 Сейчас в теме
это табличное поле на форме, нет на нем НачалоВыбора
4. BackinSoda 13.09.17 13:27 Сейчас в теме
(3) тип поля какой, Табличная часть ? У колонки "Сотрудник" посмотрите такой обработчик
LavinVladik; +1 Ответить
5. LavinVladik 215 13.09.17 14:19 Сейчас в теме
нет. табличное поле, данные таблица значения, колонки формирую программно. раздаю им тип.
6. BackinSoda 13.09.17 14:31 Сейчас в теме
(5) тогда и обработчик надо программно добавить
ЭлементыФормы.Табличка.Колонки["Сотрудник"].ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ВыборСотрудника"));

ну и к нему вторую процедуру где будет происходить открытие формы и отбор и т.д.
Процедура ВыборСотрудника(Элемент, СтандартнаяОбработка)
	// тут свой код выбора
КонецПроцедуры
LavinVladik; +1 Ответить
7. lefthander 13.09.17 14:35 Сейчас в теме
(6)Ничего что в заголовке "Обычные формы"? :)
LavinVladik; +1 Ответить
8. BackinSoda 13.09.17 14:39 Сейчас в теме
(7) А это как раз на обычные формы
LavinVladik; +1 Ответить
9. LavinVladik 215 13.09.17 14:46 Сейчас в теме
(6)
ЭлементыФормы.Табличка.Колонки["Сотрудник"].ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ВыборСотрудника"));


что такое и хотелось бы.
буду пробывать.
10. lefthander 13.09.17 17:28 Сейчас в теме
(9) В каком месте Вы создаете табличное поле программно? Там же и для этих полей назначаете обработчик
ЗЫ полагаю в процедуре ПередОткрытием()
LavinVladik; +1 Ответить
11. LavinVladik 215 14.09.17 05:27 Сейчас в теме
работает. спасибо. с вами было приятно общаться ))



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

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

КонецПроцедуры


Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот