8.х Один справочник - две формы элемента

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем andrenko, 18 май 2010.

  1. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Такой вот вопрос.
    Есть справочник и у него две формы элементов. По умолчанию "форма1". Как програмно вызвать элемент справочника с "форма2"?
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну что-то вроде:
    Код:
    Ссылка.ПолучитьФорму("Форма2").Открыть();
    
    
    где "Ссылка" переменная вида "СправочникСсылка.<тип справочника>"
  3. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    Код:
    Ссылка.ПолучитьФорму("Форма2").Открыть();
    
    
    так делать нельзя.

    Код:
    ФормаСправочника = Ссылка.ПолучитьФорму("Форма2");
    ФормаСправочника.Открыть();
    
    
    + не очень ясно, что значит
    ?
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Поясните пожалуйста.
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Такс, посмотрел в конфигурации - действительно везде в одной строке вызывается только тогда, когда получаем основную форму. Если ищем по имени, то вначале получаем промежуточный объект. Почему?
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    в какой конфигурации? объект можно не получать, можно получить ссылку, а уже из ссылки форму
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    ФормаСправочника = Ссылка.ПолучитьФорму("Форма2");
    ФормаСправочника.Открыть();
    
    
    Под словом "Объект" я имел ввиду переменную "ФормаСправочника" в данном примере.

    (Конфигурация КА).
  8. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    ответа дать не могу, стоить обратиться к сторожилам форума :)
  9. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    всетаки - есть ли возможность переназначить форму?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    В конфигураторе можно переназначить форму.
  11. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    как программно переназначить форму? или как у указанную форму внести знаения конкретного элемента справочника?
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Програмно переназначить нельзя, а значения элемента - запросто. Какая задача стоит?
  13. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    в общем с бубном, но задача решилась.
    Опишу как сделал - может поможет кому:

    Имеется справочник "история переговоров" который подчинияется двум справочникам: справочник1 и справочник2. В истории переговоров есть переменная которая используется только в отношении справочника1 и ею же туда она и передается, в спарвочнике2 такой переменной нет.
    В истории переговоров используется 2 формы элементов: форма1 (основная) и форма2.
    При открытии формы1 через попытку пробуем получить указанную выше переменную, если попытка удачная то говорим что справочникВладелец имеет имя справочник1, ну и далее код

    ЭтотОбъект.ПолучитьФорму("форма2").Открыть();
    ЭтаФорма.Закрыть();
  14. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Это понятно. Такой вопрос: а не проще было поле с этой "переменной" (я так понимаю вы имели ввиду "реквизит") просто скрывать при открытии справочника (если Владелец - Справочник2)? Да и попытка - наверно лишнее, оценивайте просто тип значения владельца и все, зачем пытаться получить значение?
  15. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Солгасен, проще, ток я не понял как имя справочника-владельца вызвать...

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