8.х Передача данных в другую форму

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

  1. TopicStarter Overlay
    Irina_87
    Offline

    Irina_87

    Регистрация:
    31 мар 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, подскажите пожалуйста, как программно осуществить следующее: Форма Договор открывает форму Счет на оплату для того, чтобы заполнить счет и распечатать. Как перенести из счета на оплату полученную итоговую сумму обратно в Договор?
  2. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    открывайте форму модально из формы договора, после закрытия берите нужный реквизит из счета на оплату.
    Пример:
    Код:
    ФормаСчета = Счет.ПолучитьФорму();
    ФормаСчета.ОткрытьМодально();
    Сумма = ФормаСчета.СуммаДокумента;
    
  3. TopicStarter Overlay
    Irina_87
    Offline

    Irina_87

    Регистрация:
    31 мар 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    А если мой документ называется СчетНаОпл, а реквизит нужно взять из поля Итого, то как тогда прописать взятие нужного реквизита?
  4. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Для начала Вам нужно выбрать нужный элемент. Допустим, у вас в форме есть реквизит СчетНаОпл, который имеет тип ДокументСсылка.СчетНаОпл. Тогда делайте так:
    Код:
    ФормаСчета = СчетНаОпл.ПолучитьФорму();
    ФормаСчета.ОткрытьМодально();
    ВашРеквизит = ФормаСчета.Итого;
    
    
    Если же Вам надо создать документ СчетНаОпл, тогда нужно сделать по другому, например:
    Код:
    СчетНаОпл = Документы.СчетНаОпл.СоздатьДокумент();
    //тут заполняете те реквизиты что вам известны изначально
    СчетНаОпл.Дата = ТекущаяДата();
    //...
    Форма = СчетНаОпл.ПолучитьФорму();
    Форма.ОткрытьМодально();
    Если ЗначениеЗаполнено(Форма.Ссылка) Тогда
    Итого = Форма.Итого;
    КонецЕсли;
    
    
  5. TopicStarter Overlay
    Irina_87
    Offline

    Irina_87

    Регистрация:
    31 мар 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое! Все получилось)
  6. TopicStarter Overlay
    Irina_87
    Offline

    Irina_87

    Регистрация:
    31 мар 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Вот ещё вопрос) А как сделать обратное действие, чтобы значения реквизитов формы Договор переносились в вновь открывающуюся форму СчетНаОплату?
  7. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    В новой форме делаете реквизиты, и передаете им нужные значения.
  8. TopicStarter Overlay
    Irina_87
    Offline

    Irina_87

    Регистрация:
    31 мар 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    А можно это показать на примере? А то я пытаюсь так делать, но реквизиты новой формы не заполняются
  9. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Я же Вам все уже показал, смотрите внимательней:
    Код:
    //тут заполняете те реквизиты что вам известны изначально
    СчетНаОпл = Документы.СчетНаОпл.СоздатьДокумент();
    СчетНаОпл.Организация = Организация;//Организация - это реквизит Вашего договора!
    СчетНаОпл.Контрагент = Владелец;
    Если Не ЭтоНовый() Тогда
    СчетНаОпл.ДоговорКонтрагента = Ссылка; //ссылка на Ваш договор, используйте если он записан
    КонецЕсли;
    СчетНаОпл.ТипЦен = ТипЦен;
    //и так далее...
    Форма = СчетНаОпл.ПолучитьФорму();
    Форма.ОткрытьМодально();
    Если ЗначениеЗаполнено(Форма.Ссылка) Тогда
    Итого = Форма.Итого;
    КонецЕсли;
    
    

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