8.х как получить значение реквизита формы из другого места

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем wertklop, 30 июл 2008.

  1. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    подскажите, как получить значение реквизита формы(но не объекта) из другого места, что бы его можно было передать в ячейку отчёта, при этом не открывая саму форму искомого объекта?
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Форма - это объект. Его можно создать, но не открывать (метод Открыть()). Реквизиты формы можно условно разделить на два типа - связанные с данными в конфигурации, и реквизиты самой формы. Про данные конфигурации все понятно. Проблема в том, что при создании формы - ее реквизиты ничем не заполнены. Их заполняет пользователь ручками, или код (например запускающийся из процедуры ПриОткрытии() ) Т.е. создать то форму не открывая можно, а данные в нее кто внесет?
  3. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    суть проблемы не в записи данных при создании новой формы, а наоборот, в извлечении из формы уже созданного документа, необходимо извлеч из формы данные реквизитов формы.....
    но как?
  4. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Понятно, хотите получить данные из формы открытого в данный момент документа. Посмотрите на метод ПолучитьФорму() в частности на третий параметр "КлючУникальности". Вот выдержка из Синтаксис помошника:

    И вот, что пишут про сам КлючУникальности:
    Сам я с данной штукой не работал, но по всей видимости рыть нужно в данном направлении - пробовать присвоить форме Ключ, а затем по этому ключу получить форму. И соответственно ее реквизиты...
  5. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    нет, не то я имею ввиду
    необходимо получить данные реквизиты формы. эти данные запрашиваются из другого места, скажем из внешней обработки, никаких форм документа, из котой необходимо взять данные, открывать не надо
    существует ли простой способ к доступу реквизитов формы?
  6. soltik
    Offline

    soltik

    Регистрация:
    26 ноя 2007
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    насколько я понимаю, пока форма не открыта ее данных просто нет, они формируются во время открытия на основе данных объекта формы или других данных в соответствии с логикой процедуры ПриОткрытии()
  7. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    короче!
    есть база данных, в ней есть уже созданный документ, у него есть фома элемента, у которой имеется реквизит(он не является реквизитом объекта!). я обращаюсь к этому документу из внешней обработки и создаю отчёт на его основе. в одном месте в отчёте надо вставить значение этого реквизита.
    открывать форму документа не надо!
    надо просто обратиться к реквизиты формы и вставить его значение в таб док
  8. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Изначально при создании формы в ней ничего нету. Все реквизиты пусты, кром тех, которые связанны с данными документа. В прочих реквизитах формы данные реквизитов появляются не из воздуха, а расчитываются на основе данных базы - реквизитов документа, записей регистров, или введенных пользователем данных. При этом расчитываются каждый раз при открытии формы или задействовании кода изменяющего реквизит. Связанные с данными реквизиты формы заносятся сразу в документ. Не связанные либо исчезнут при закрытии формы, либо если есть соответствующий код - эти данные разложат по другим реквизитам.

    В Вашем случае - требуется разобраться, как реквизит на форме расчитывается из базы, если он не является реквизитом документа. И тогда никакие формы Вам не потребуются. Просто будет код, который расчитывает значение по аналогии с тем, как это делает форма документа.

    P.S. Почитайте на досуге про формы, реквизиты формы и чем они отличаются от реквизитов прочих объектов(справочников, документов), предопределенные процедуры формы...
  9. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    вообщем решид проблему сам.
    предлагаю простой вариант ответа на свой вопрос, вдруг кому понадобиться.

    технология 1с предполагает сохранение данных реквизитов формы в отдельные объекты(регистры и т.п.).при открытии формы уже существующего документа,эти данные автоматически извлекаются из соответствующих объектов.

    для того чтобы получить данные реквизитов формы(!), необходимо проделать следующее:
    выбрать элемент,обратиться к форме этого документа, открыть её и обратиться к реквизиту формы как к обычному реквизиту документа, затем следует закрыть форму.
  10. OksM
    Offline

    OksM Опытный в 1С

    Регистрация:
    15 окт 2007
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    А не будет ли проще всего для необходимых данных реквизита формы документа создать соответствующие данные документа, которые потом и использовать, обращаясь к нужному документу.
  11. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    OksM тссс, изобретение велосипедов - важный этап в становлении любого 1Сника :)
  12. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    :unsure:

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