Программно открыть форму редактирования отбора СКД (управляемые формы)

1. ipoloskov 162 25.01.19 10:29 Сейчас в теме
У формы есть реквизит "ОтборСотрудников" типа КомпоновщикНастроекКомпоновкиДанных
На форму выведен элемент ОтборСотрудников.Настройки.Отбор с видом "Поле ввода". Визуально на форме это строка с кнопкой выбора. При нажатии на кнопку выбора открывается форма редактирования отбора.

Мне не нравится, как отображается отбор - там написано много лишней информации, которую лучше ужать. Вместо "Подразделение В группе "Участок формования" И График работы Равно "2 смена" я бы хотел отобразить "Участок формования / 2 смена". Поэтому я сделал строковый реквизит, который сам заполняю по значению отбора, и разместил его на форме с кнопкой выбора. Вопрос: как открыть форму редактирования отбора при нажатии на кнопку выбора этого строкового поля?
ПоказатьЗначение(,ОтборСотрудников.Настройки.Отбор) не работает - открывается диалоговое окно со строковым представлением.

Или может быть, можно как-то подменить отображение элемента ОтборСотрудников.Настройки.Отбор?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 25.01.19 10:35 Сейчас в теме
У каждого элемента отбора есть поле "Представление". Можно программно его заполнять, тогда именно оно будет использоваться при генерации конечного представления отбора.
3. dhurricane 25.01.19 10:45 Сейчас в теме
Не так давно также пытался решить проблему открытия стандартной формы редактирования отбора компоновщика настроек. Но у меня ничего не вышло. Пришлось таки создавать собственную форму настроек (к слову совсем не сложную) и открывать ее. Если Вам необходимо, я могу описать свою реализацию.
4. ipoloskov 162 25.01.19 10:56 Сейчас в теме
(3) это для моей задачи слишком сложно. Сделал, как написано в 2)
Только если заполнить поле "Представление", то оно так же и будет отображаться в форме редактирования. Поэтому при начале выбора поле "Представление" нужно очищать:
&НаКлиенте
Процедура НастроитьПредставлениеОтбораДляОтображенияВФорме()
	Для Каждого ЭлементОтбора Из ОтборСотрудников.Настройки.Отбор.Элементы Цикл
		ЭлементОтбора.Представление = """" + Строка(ЭлементОтбора.ПравоеЗначение) + """";
	КонецЦикла; 
КонецПроцедуры

&НаКлиенте
Процедура ОчиститьПредставлениеОтбораДляКорректногоРедактирования()
	Для Каждого ЭлементОтбора Из ОтборСотрудников.Настройки.Отбор.Элементы Цикл
		ЭлементОтбора.Представление = "";
	КонецЦикла; 
КонецПроцедуры

&НаКлиенте
Процедура ОтборСотрудниковНастройкиОтборПриИзменении(Элемент)
	НастроитьПредставлениеОтбораДляОтображенияВФорме();
КонецПроцедуры

&НаКлиенте
Процедура ОтборСотрудниковНастройкиОтборНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ОчиститьПредставлениеОтбораДляКорректногоРедактирования();
КонецПроцедуры
Показать
5. acces969 344 31.03.23 11:45 Сейчас в теме
Оставьте свое сообщение

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