ОткрытьФорму подчиненного справочника

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 13 ноя 2010.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Вот измаялся в экспериментах:
    На списке справочника-владельца сделал кнопку открытия подчиненного спр-ка. Хочу поведение сделать в точности как у стандартной "Перейти". А именно: устанавливать владельца по текущей строке, при повторном открытии открывать в том же окне. Проблема в том, что открываемая форма не получает владельца.

    В подчиненной:
    Код ( (Unknown Language)):
    Процедура ПриОткрытии()
    Если ЗначениеПустое(ПараметрОтборПоВладельцу) Тогда
    Возврат;
    КонецЕсли;
    Заголовок = ПараметрОтборПоВладельцу.Наименование;
    КонецПроцедуры
    В отладчике вижу "ПараметрОтборПоВладельцу" и "СправочникСписок.Отбор.Владелец.Значение" не определены


    В головной перепробовал все:
    Код ( (Unknown Language)):
    ОткрытьФорму("Справочник.Улицы.ФормаСписка",, ЭлементыФормы.СправочникСписок.ТекущаяСтрока,,);
    ПолучитьФорму("Справочник.Улицы.ФормаСписка",,   ЭлементыФормы.СправочникСписок.ТекущаяСтрока,,).Открыть();
    Справочники.Улицы.ПолучитьФормуСписка(, ЭлементыФормы.СправочникСписок.ТекущаяСтрока).Открыть();
    Справочники.Улицы.ПолучитьФормуСписка(, ЭтаФорма).Открыть();
    Только не пишите: "А чем кнопка Перейти плоха?"
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Код ( (Unknown Language)):
        Форма = Справочники.ЕдиницыИзмерения.ПолучитьФорму("ФормаСписка",);
    Форма.СправочникСписок.Отбор.Владелец.Установить(ЭлементыФОрмы.Список.ТекущиеДанные.Ссылка);
    Форма.Открыть();
     
  3. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо. Значит надо устанавливать Владельца. А чего я решил, что "сама сделает"? А! в семерке так.

    Ну, а если не лень, подскажите еще из семерочного опыта. Там было так:
    Если на экране список Владельца и Подчиненного, то когда я курсором перемещаюсь на другую строку Владельца, Подчиненный меняет содержимое, подсвечивает строки нового Владельца.

    Как в 8-ке это красиво сделать. Я объясню трудность. Понимаю, что при изменении Владельца просто повторно открываю Подчиненного, только надо позаботится, что бы не открывалась в новом окне.

    А как понять, что пользователь форму Подчиненного не открывал и ее нет на экране? Следовательно ничего делать не надо.
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Там вроде ИспользоватьВладельца надо было.
    Например...
    Найти событие, отвечающее, за смену текущей строки, и в нем прописать установку отбора.
    Переменную форма сделать глобальной, если она определена, то форма открыта... Точнее, при закрытии она не очистится... использовать метод Открыта()
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо, завтра проверю. А сейчас - пора баиньки.

    Проверил первый вопрос. Да, работает (только надо включать "Использование" = Истина).
    Но смута в голове бродит:
    * Зачем в параметрах методов вроде ОткрытьФорму есть Владелец, но он не работает ?
    * Подчиненна форма работает по-разному:
    - при открытии кнопкой Перейти в подчиненной форме "ПараметрОтборПоВладельцу" = Владельцу
    - при открытии программно этот параметр пустой. Ну это и понятно, мы ж только отбор ей навязали.

    Результата добился, но не совсем правильно....
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Это владелец формы, а не элементов спр-ка. То есть это тоже форма. Например, если мы закроем справочник "Контрагенты", "Договоры" сами собой закроются... или что-то вроде того.

    Вот за оптимальность своего решения не отвечаю.
     
Загрузка...

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