7.7 Использование функции ОткрытьФорму()

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

  1. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!

    Подскажите,пожалуйста, как программно вызвать из одного документа другой документ мне понятно

    ОткрытьФорму("Документ.УведомлениеОбОтпуске");

    а вот как захватить значения реквизитов первого документа Например:
    Документ.НачислениеОтпуска реквизит КоличествоДнейОтпуска

    и чтобы при заполнении Документа НачисленияОтпуска реквизит КоличествоДнейОтпуска
    автоматически переносился в другой Документ Уведомление в реквизит Продолжительность.
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    При открытии формы можно задать параметр КонтекстФормы. В него обычно помещают список значений с нужными данными. В открытой форме он будет доступен как Форма.Параметр. Из него извлекаются данные и обрабатываются как нужно.
  3. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Если не трудно, не можете привести пример кода
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Как-нибудь так:

    Код:
    Процедура ПроцедураКотораяОткроетВКонечномСчетеФорму()
    сз = СоздатьОбъект("СписокЗначений");
    сз.ДобавитьЗначение(КоличествоДнейОтпуска, "Параметр1");
    ОткрытьФорму("Документ.УведомлениеОбОтпуске", сз);
    КонецПроцедуры
    
    
    
    А в форме документа УведомлениеОбОтпуске:

    Код:
    Процедура ПриОткрытии()
    Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
    Продолжительность = Форма.Параметр.Получить("Параметр1");
    КонецЕсли;
    КонецПроцедуры
    
    
    
    Чуть подправил
  5. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    На Документе Начисление Отпуска создаю кнопку, в формуле прописываю ОткрытьФорму()

    вот именно отсюда необходимо открыть Документ Уведомление и записать значение реквизита КоличествоДнейОтпуска Документа Начисления ОтПуска в реквизит Документа Уведомление Продолжительность
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Я уж, вроде, все понятно написал...
    В формуле кнопки нужно прописать вызов первой процедуры из моего предыдущего поста. А саму процедуру нужно вставить в модуль формы документа Начисление отпуска. В этой процедуре создается список значений и в него заносится значение реквизита "КоличествоДнейОтпуска".
    Затем вызывается открытие формы документа УведомлениеОбОтпуске. Второй параметр при открытии формы - это контекст, туда мы и прописываем наш список значений.

    А в модуль формы УведомлениеОбОтпуске вставьте (или измените) предопределенную процедуру ПриОткрытии() (2-ю из поста). Она будет анализировать переданный параметр, и если в нем список значений, то вставит в реквизит "Продолжительность" значение из переданного списка значений с представлением "Параметр1"
  7. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Отлично, Большое Спасибо, все понял
  8. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Извините, совсем забыл а если необходимо передать несколько значений
  9. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Так для того и передают списком значений, чтоб несколько значений передать. Сначала добавляете все, что нужно, потом извлекаете из переданного списка.
  10. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Если не трудно, пожалуйста, покажите также на примере
  11. TopicStarter Overlay
    ree12
    Offline

    ree12

    Регистрация:
    6 фев 2009
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Все разобрался, Большое Спасибо за помощь!!!

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