Открытие Списка Справочника В Предопределенной Группе

  • Автор темы Автор темы Karambol
  • Дата начала Дата начала
K

Karambol

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

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

ps
мягкий знак не работает (
 
Ниче сколько всего :D, на обычной форме попроще было :)
 
Сделал попроще:

&НаКлиенте
Процедура КонтрагентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

КонецПроцедуры
 
А я разве не это же писал?

Код:
Можно попробывать. Для этого надо стандартную обработку выбора отключить и прописать прмерно следующее
-----
НужнаяФорма = ПолучитьФорму("Справочнки.Контрагенты.ФормаОбъекта");
НужнаяФорма.Список. РодительВерхнегоУровня = НужнаяГруппаКонтрагента;
---
После этого открыть НужнуюФорму и прописать обработчики выбора элементов.
 
А я разве не это же писал?

Можно попробывать. Для этого надо стандартную обработку выбора отключить и прописать прмерно следующее
-----
НужнаяФорма = ПолучитьФорму("Справочнки.Контрагенты.ФормаОбъекта");
НужнаяФорма.Список. РодительВерхнегоУровня = НужнаяГруппаКонтрагента;
---
После этого открыть НужнуюФорму и прописать обработчики выбора элементов.


На Вашем коде выдает ошибку:
Поле объекта не обнаружено (РодительВерхнегоУровня)
 
Ну так и я написал же
"Можно попробывать. Для этого надо стандартную обработку выбора отключить и прописать прмерно следующее"
Я примерно знаю как это должно выглядить. Увы и ах пропустил "Элементы" в "НужнаяФорма.Список. РодительВерхнегоУровня = НужнаяГруппаКонтрагента;" и поспешил - написал что надо открывать форму объекта, а не форму выбора. В общем как всегда торопился и написал немножко с ошибками :ooo: :)
 
Я примерно знаю как это должно выглядить. Увы и ах пропустил "Элементы" в "НужнаяФорма.Список. РодительВерхнегоУровня = НужнаяГруппаКонтрагента;" и поспешил - написал что надо открывать форму объекта, а не форму выбора. В общем как всегда торопился и написал немножко с ошибками

В любом случае, спасибо за помощь! :)
 
может уже и не в тему, но можно укоротить количество строк кода, форму открывать модально и проверять значение на "Неопределено":

Контрагент = Форма.ОткрытьМодально();

Если Контрагент <> Неопределено Тогда
...

и так далее
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!