Поиск строки при открытии формы

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


Чего не хватает, что не так делаю?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 17.10.18 10:20 Сейчас в теме
сделал реквизит "Контрагент" Тип: Строка,

так настоящие/хорошие программисты не делают,
поэтому весь остальной ваш код просто огромная куча г..на

попробуйте сделать реквизит Контрагент, тип Ссылка на справочник Контрагенты,
в этом случае даже делать позиционирование на ранее выбранный элемент не надо, все происходит автоматически (ну если опять не на г...ть)
starjevschik; nyam-nyam; user705522_constantin_h; +3 Ответить
3. retr0 17.10.18 13:32 Сейчас в теме
(2)
сделать реквизит Контрагент, тип Ссылка на справочник Контрагенты


Увы, но не помогло данное решение. Проблема по прежнему остается актуальной
4. soft_wind 17.10.18 17:42 Сейчас в теме
этого просто не может быть! возьмите любую базу (от 1С) где есть контрагенты (да любые справочники),
там же все работает(выбор контрагента и любого другого элемента других справочников с позиционированием на этом элементе)
без всяких изворотов!

посмотрите как там сделано, скопируйте (даже не знаю что в этом случае копировать-то)
5. retr0 18.10.18 08:36 Сейчас в теме
Ну как видите оно есть, я же не из-за своей какой-то прихоти, сижу здесь и проблему на "ровном" месте создаю. Ваш совет не помог. Почему вы яро утверждаете на том, что это "Истинное" решение? Может, требуется в таком случае, что-то добавить.
6. VZyryanov 18.10.18 08:48 Сейчас в теме
&НаКлиенте
Процедура ВыбратьКонтрагента(Команда)
	П=Новый Структура("ТекущаяСтрока",Контрагент);
	ОткрытьФорму("Справочник.Контрагенты.Форма.ФормаВыбора",П,ЭтаФорма,,,,
		Новый ОписаниеОповещения("ОбработкаВыбораКонтрагента",ЭтотОбъект),РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбораКонтрагента(Результат,ДополнительныеРеквизиты) Экспорт
	Если Результат=Неопределено Тогда
		Возврат;
	КонецЕсли;
	Контрагент=Результат;
КонецПроцедуры
Показать
Оставьте свое сообщение

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