8.х Выполнение процедуры формы из другого документа

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Kuskov, 31 июл 2008.

  1. TopicStarter Overlay
    Kuskov
    Offline

    Kuskov

    Регистрация:
    31 июл 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Есть некий цикл который перебирает "Объект" на основании значений в этом объекте создаются новые документы, в котором заполняются реквизиты формы (не путать с реквизитами документа)

    Код:
    Цикл 
    
    НовыйДок = Документы.ВводЛицевогоСчета.СоздатьДокумент();
    НовыйДок.Дата = "20080601";
    НовыйДок.УстановитьНовыйНомер();
    НовыйДок.ПолучитьФорму().Открыть();
    НовыйДок.ПолучитьФорму().ЛицевойСчет = Справочники.ЛицевыеСчета.НайтиПоКоду(Объект.Код);
    НовыйДок.ПолучитьФорму().ПлощадьЖилая =34.5;
    НовыйДок.ПолучитьФорму().Записать();
    
    КонецЦикла
    
    
    
    или так

    Код:
    Цикл
    
    НовыйДок = Документы.ВводЛицевогоСчета.СоздатьДокумент();
    НовыйДок.Дата = "20080601";
    НовыйДок.УстановитьНовыйНомер();
    НовыйДокФорма=НовыйДок.ПолучитьФорму("ФормаДокумента");
    НовыйДокФорма.Открыть();
    НовыйДокФорма.ЛицевойСчет = Справочники.ЛицевыеСчета.НайтиПоКоду(Объект.Код);
    НовыйДокФорма.ПлощадьЖилая =34.5;
    НовыйДокФорма.Записать();
    
    КонецЦикла
    
    
    
    при заполнении поля ЛицевойСчет в форме назначено событие "ПриИзменении" с процедурой "ЛицевойСчетПриИзменении". И вот это событие я и не знаю как выполнить.
    Причем в этой процедуре все переменные и объекты, естественно, заданы в контексте формы.
    Подскажите плиз, как выполнить следующее
    Открыть документ, заполнить реквизиты документа, формы, выполнить необходимые процедуры формы, закрыть и записать
  2. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    попробуй так: НовыйДокФорма.ЛицевойСчет = установить действие(<название действия>);
  3. TopicStarter Overlay
    Kuskov
    Offline

    Kuskov

    Регистрация:
    31 июл 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    как выполнить действие я нашел правильно будет так

    НовыйДокФорма.ЭлементыФормы.ЛицевойСчет.ПолучитьДействие("ПриИзменении")

    однако действие не выполняется или если и выполняется то нечего не делает :(
  4. e.kogan
    Offline

    e.kogan

    Регистрация:
    2 окт 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    Установите нужной процедуре Экспорт и вызывайте, получив форму, как её метод. Не забудьте передать её корректные параметры.
  5. Fire Boy
    Offline

    Fire Boy

    Регистрация:
    24 окт 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Лучше всего все что находится в процедуре "При изменении" закинуть в отдельную процедуру в модуль доступную. А в процедуру "При изменении" Сделать ссылку на ту процедуру.
    Далее:
    Код:
    Цикл
    
    НовыйДок = Документы.ВводЛицевогоСчета.СоздатьДокумент();
    НовыйДок.Дата = "20080601";
    НовыйДок.УстановитьНовыйНомер();
    НовыйДокФорма=НовыйДок.ПолучитьФорму("ФормаДокумента");
    НовыйДокФорма.Открыть();
    НовыйДокФорма.ЛицевойСчет = Справочники.ЛицевыеСчета.НайтиПоКоду(Объект.Код);
    НовыйДокФорма.ПлощадьЖилая =34.5;
    //Здесь добавить ссылку на ту же процедуру
    НовыйДокФорма.Записать();
    
    КонецЦикла
    
    
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Учите матчасть! При программном заполнении процедуры не выполняются.

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