7.7 Как передать значение в открытую форму документа?

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

  1. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Подскажите, возможен ли такой финт:
    Есть открытый документ. В нем при нажатии на кнопку открывается внешняя обработка (через "ОткрытьФорму(Отчет....)"). В эту обработку передаю ссылку на открытый док-т. Произвожу в ней некоторые вычисления и хочу результат(число) отдать обратно в некоторый реквизит открытого дока, чтоб значение появилось на форме открытого документа.
    Второй день над этим бьюсь. :angry:
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В процедуре ОткрытьФорму, вторым параметром передаете Контекст, в открытой форме через Форма.Параметр делаете с формой документа все что Вам хочется.
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ...получить результат вычисления можно через Форма.Праметр. Или можно изменить реквизит прямо в самой обработке (контекст то есть). Не забываем что реквизиты т.части меняеются только если форма открыта модально
  4. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Спасибо! То что надо! Тут же возникает вопрос: т.к. я передал контекст формы, по идее, мне должны быть доступны процедуры/функции этой формы? Если да, то как их можно использовать?
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Нет, только реквизиты. Попробуй отладчиком посмотреть, что есть в контексте и поймешь что доступно. А процедуры и функции придется переносить
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Используя компонету FormEx дотянуться до процедур/функций МОЖНО
  7. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Уточните, пожалуйста, какая форма (документа или внешней обработки) должна быть открыта модально для возможности изменения реквизитов табличной части документа?
  8. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Открыл форму обработки модально, передаю в неё контекст формы документа, доступ к табличной части есть. Всем спасибо.
  9. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Развивая тему передачи контекста формы, появился вопрос.
    Ситуация: есть сканер штрих-кодов, в открытом документе сканю код, срабатывает предопределенная процедура ОбработкаВнешнегоСобытия(), которая сначала ищется в модуле формы документа (МФД), затем если не найдена, то в глобальном модуле (ГМ). Дак вот заметил такую особенность. После первого считывания сработала эта проц-ра в МДФ, в ней вызывается внешн.обр-ка, в которую передается контекст формы д-та, там что-нить вычисляется и выводится через Сообщить(). После команды сообщить активным становится окно вывода информации, соответственно при след. считывании штрих-кода будет выполнятся проц-ра Обр.Внешн.Событ. из ГМ. В которую к сожалению не могу передать контекст формы. По идее если открыто неск. таких док-тов, то логично что программа не сможет определить чей контекст передавать.
    У кого какие мысли как обойти такую лажу :(
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А форму после обработки события зактывать не пробовали?
  11. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Форму внешней обработки закрываю. После Сообщить() активным становится окно сообщений.
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А обработку вы вызываете модально?
  13. TopicStarter Overlay
    Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Да.
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Можно закрыть окно сообщений. Например так:
    Код:
    WSHSHELL= СОЗДАТЬОБЪЕКТ( "WScript.Shell"); 
    WSHSHELL. SENDKEYS( "%"); 
    WSHSHELL. SENDKEYS( "{LEFT}{DOWN 5}{ENTER}"); 
    
    
  15. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Обычно через скрипт передают комбинации клавиш
    Ctrl+Shift+Z
    Ctrl+Shift+Я

    А два раза, что бы исключить проблему с раскладкой клавиатуры

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