Привет. Такой вопрос. Обычные формы, сделал реквизит "Контрагент" Тип: Строка, повесил на форму. Далее сделал кнопку выбора. По событию ПриНачалеВыбора. Срабатывает код оформленный в условие. Суть такая я выбираю в этот реквизит данные из справочника Контрагенты. (Все нормально). Но я видел такое, что при повторном открытии по кнопке Выбор. Выбранный элемент находится (то есть срабатывает поиск) в табличной части справочника и выделяется та строка в которой располагается выбранный контрагент. Но у меня же получается если я уже его выбрал, и открываю повторно Форму выбора, то получаю "чистый" список выбора. Иначе говоря не подсвечивается уже выбранный контрагент.
Чего не хватает, что не так делаю?
Процедура НачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Контрагент)Тогда
ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора(, Элемент);
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
Парам = Новый Структура;
Парам.Вставить("Наименование", Контрагент);
ФормаВыбора.ЭлементыФормы.СправочникДерево.ТекущаяСтрока = Дерево.НайтиПоИдентификатору(Парам);
ФормаВыбора.ЗначениеОтбораСпискаКонтрагентов = Контрагент;
ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", Парам);
Иначе
СпрКтр = Справочники.Контрагенты.ПустаяСсылка();
СпрКтр = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора").ОткрытьМодально();
Контрагент = СпрКтр.Наименование;
КонецЕсли;
КонецПроцедуры
ПоказатьЧего не хватает, что не так делаю?
По теме из базы знаний
- Информационно-поисковая система "Записная книжка 8.3 (2.2)" - инструмент сохранения информации по разделам и подразделам с быстрым поиском и открытием файлов на основном и сменном устройствах для работы с информацией в двух и более рабочих местах
- Устранение ошибки "При открытии формы регламентированного отчета произошла ошибка." при открытии регламентированной отчётности в Бухгалтерии 3
- Отображение и редактирование в дереве большого количества настроек/параметров/опций программы, конфигурации, документа, справочника - без программного создания элементов формы
- Расширение глобального поиска 1С, или Глобальный поиск "на максималках"
- Одной строчкой ускоряем открытие формы Диадок
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
сделал реквизит "Контрагент" Тип: Строка,
так настоящие/хорошие программисты не делают,
поэтому весь остальной ваш код просто огромная куча г..на
попробуйте сделать реквизит Контрагент, тип Ссылка на справочник Контрагенты,
в этом случае даже делать позиционирование на ранее выбранный элемент не надо, все происходит автоматически (ну если опять не на г...ть)
этого просто не может быть! возьмите любую базу (от 1С) где есть контрагенты (да любые справочники),
там же все работает(выбор контрагента и любого другого элемента других справочников с позиционированием на этом элементе)
без всяких изворотов!
посмотрите как там сделано, скопируйте (даже не знаю что в этом случае копировать-то)
там же все работает(выбор контрагента и любого другого элемента других справочников с позиционированием на этом элементе)
без всяких изворотов!
посмотрите как там сделано, скопируйте (даже не знаю что в этом случае копировать-то)
Ну как видите оно есть, я же не из-за своей какой-то прихоти, сижу здесь и проблему на "ровном" месте создаю. Ваш совет не помог. Почему вы яро утверждаете на том, что это "Истинное" решение? Может, требуется в таком случае, что-то добавить.
&НаКлиенте
Процедура ВыбратьКонтрагента(Команда)
П=Новый Структура("ТекущаяСтрока",Контрагент);
ОткрытьФорму("Справочник.Контрагенты.Форма.ФормаВыбора",П,ЭтаФорма,,,,
Новый ОписаниеОповещения("ОбработкаВыбораКонтрагента",ЭтотОбъект),РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораКонтрагента(Результат,ДополнительныеРеквизиты) Экспорт
Если Результат=Неопределено Тогда
Возврат;
КонецЕсли;
Контрагент=Результат;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот