Имя: Пароль:
1C
1С v8
Заполнение реквизитов формы программно
0 Aldnepr
 
05.09.19
17:50
Есть обработка, которая открывает форму документа модально и проводит его. Надо во время открытия заполнить реквизит формы. пытаюсь в лоб, но не заполняется. База файловая УТ

                           Пока Перечень.Следующий() Цикл
              Если Перечень.Проведен=Истина тогда
                  Продолжить;
              КонецЕсли;
             Документ= Перечень.ПолучитьОбъект();
             Форма=Документ.ПолучитьФорму("ФормаДокумента");
             Форма.ОткрытьМодально(15);
             Форма.ЭлементыФормы.СуммаОплаты.Значение=Документ.СуммаДокумента;
1 VladZ
 
05.09.19
17:53
(0)
1. Создаешь объект.
2. Заполняешь реквизиты.
3. Открываешь форму.
2 RomanYS
 
05.09.19
17:54
"в лоб" это присвоить значение реквизиту формы. С присваивать значение через элементы формы - это "через ж.пу".

Ну и почему не работает: ваша строка не выполнится пока вы не закроете модальную форму))))
3 Aldnepr
 
05.09.19
18:06
(2) Я пробовал так перед открытием формы прописать, все равно не прописывается, В конце мне надо провести с заполненным этим реквизитом СуммаОплаты

Документ= Перечень.ПолучитьОбъект();
             Форма=Документ.ПолучитьФорму("ФормаДокумента");
            
          Форма.ЭлементыФормы.СуммаОплаты.Значение=Документ.СуммаДокумента;
Форма.ОткрытьМодально(15);
Документ.Провести();
4 RomanYS
 
05.09.19
18:17
какой путь к данным у Форма.ЭлементыФормы.СуммаОплаты?
5 Aldnepr
 
05.09.19
18:38
(4) это реквизит висит на форме, которую я открываю
6 RomanYS
 
05.09.19
18:39
(5) логично. И он привязан к данным. К каким?
7 Aldnepr
 
05.09.19
18:49
(6) посмотрел. Он не в иерархии ДокументОбъект и не в ЭлементыФормы. Отдельно
8 RomanYS
 
05.09.19
18:53
(7) значит это реквизит формы. Он скорее всего заполняется при открытии формы. Зачем ты его хочешь заполнить, что должен сделать пользователь в форме? В чем тайный смысл такого бизнес-процесса?
9 RomanYS
 
05.09.19
18:55
(7) заполнить его "в лоб":
Форма.СуммаОплаты = Документ.СуммаДокумента;

но это тебе не поможет в виду (8)
10 Aldnepr
 
05.09.19
19:00
(9) и нет вариантов программно записать этот чертов реквизит формы?
11 RomanYS
 
05.09.19
19:03
(10) он не записывается, а только отображается на форме. Может использоваться только в форме (вряд ли учитывается при проведении)
12 Aldnepr
 
05.09.19
19:42
(11) в том то и дело что влияет. Обработка проведения сравнивает Этот реквизит с суммой дока и если не соответствует, то не проводит. ( сам документ править нельзя- такое условие если что)
13 RomanYS
 
05.09.19
20:20
(12) Обработка проведения ничего не знает про реквизит формы (да и про форму вообще).