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

Тема в разделе "1C и всё что с ней связано", создана пользователем Karambol, 2 авг 2012.

  1. Karambol

    Karambol Гость

    Задача такая: на управляемой форме документа есть реквизит типа спр Контрагенты.
    Как сделать, чтобы при выборе контрагента открывалась форма списка справочника, у которой уже открыта нужная группа?
    Например, я в документе выбираю покупателя, у меня открывается форма списка с открытой группой Покупатели.
     
  2. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    При создании на сервере формы выбора контрагента устанавливаешь свойство РодительВерхнегоУровня
    Код ( (Unknown Language)):
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Если ЭтаФорма.Параметры.Свойство("РодительЭлементов") Тогда
    Элементы.Список.РодительВерхнегоУровня = ЭтаФорма.Параметры.РодительЭлементов;
    КонецЕсли;
    КонецПроцедуры
     
  3. Karambol

    Karambol Гость

    Спасибо! Буду пробовать! :)
     
  4. Karambol

    Karambol Гость

    [/b]
    А можно из документа родителя установить?
     
  5. Allexei

    Allexei Well-Known Member

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

    Karambol Гость

    А обработчики выбора зачем прописвать? Стандартные не будут работать?
     
  7. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Что значит стандартно? Работат будет так как "накодировано". откуда список "узнает" что надо сползоват того или иного родителя?
     
  8. Karambol

    Karambol Гость


    А что именно нужно прописывать? Можно пример, пожалуйста
     
  9. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    пример не приведу так как лен. На обработчик выбора вешаеш открытие формы справочника.В параметрах открытия передеш своего родителя.На форме выбора справчника при создании на сервере анализируеш переданные параметры.Если надо то устанавливаеш родителя верхнего уровня.Далее смотриш описание процедур опопвеститовыборе и обработкавыбора/

    ps
    мягкий знак не работает (
     
  10. Karambol

    Karambol Гость

    Ниче сколько всего :D, на обычной форме попроще было :)
     
  11. Karambol

    Karambol Гость

    Сделал попроще:

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

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

    КонецПроцедуры
     
  12. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    А я разве не это же писал?

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

    Karambol Гость


    На Вашем коде выдает ошибку:
    Поле объекта не обнаружено (РодительВерхнегоУровня)
     
  14. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Ну так и я написал же
    "Можно попробывать. Для этого надо стандартную обработку выбора отключить и прописать прмерно следующее"
    Я примерно знаю как это должно выглядить. Увы и ах пропустил "Элементы" в "НужнаяФорма.Список. РодительВерхнегоУровня = НужнаяГруппаКонтрагента;" и поспешил - написал что надо открывать форму объекта, а не форму выбора. В общем как всегда торопился и написал немножко с ошибками :eek:oo: :)
     
  15. Karambol

    Karambol Гость

    В любом случае, спасибо за помощь! :)
     
  16. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    может уже и не в тему, но можно укоротить количество строк кода, форму открывать модально и проверять значение на "Неопределено":

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

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

    и так далее
     
Загрузка...

Поделиться этой страницей