Имя: Пароль:
1C
1С v8
Не сохраняется надпись на форме
0 moonq4
 
09.02.16
15:19
Суть такова: создаю программно документ, получаю его форму и пытаюсь заполнить там надпись, но она появляется если только этот документ открыть, если просто записать - провал.
    

Параметры = Новый Структура("Ключ", СтруктураЗНЧ.ТекДок);
    мФорма = ПолучитьФорму("Документ.ЗаказКлиента.ФормаОбъекта",Параметры);
    
    
    мФорма.НадписьЭтапыОплаты =  ЭтапыОплатыКлиентСервер.НадписьЭтапыОплаты(мФорма);
    
    
    //мФорма.открыть();
1 vicof
 
09.02.16
15:21
"пытаюсь заполнить там надпись, но она появляется если только этот документ открыть, если просто записать - провал."
Логично, черт побери. Не откроешь форму, не увидишь надпись.
2 Fish
 
гуру
09.02.16
15:21
Вполне логично, как я считаю, если это реквизит формы, а не объекта.
3 moonq4
 
09.02.16
15:22
И какой тогда вариант? Ибо надо ее заполнить не открывая форму пользователю
4 СергейКу
 
09.02.16
15:22
При открытии/создании формы нужно надпись изменять. Если данные элемента не являются реквизитом объекта, то они не запишутся.
5 moonq4
 
09.02.16
15:24
(4) Т.е. надпись заполнить программно не возможно не открывая формы?
6 vicof
 
09.02.16
15:25
(5) Ну заполнишь ты ее программно, Карл, и что? Кому нужна твоя надпись в неоткрытой форме?
7 Fish
 
гуру
09.02.16
15:26
(5) Заполнить - возможно, чтобы потом показать эту форму. А сохранить в реквизитах формы (не связанных с реквизитом объекта) - нет.
8 FIXXXL
 
09.02.16
15:26
(5) в ИБ данные формы не хранятся, только объекты и их данные

ты можешь ЭтапыОплаты рассчитывать ПриСозданииНаСервере формы?
9 Fish
 
гуру
09.02.16
15:27
+(7) Хотя можно и извратиться, но зачем? :)
10 moonq4
 
09.02.16
15:28
(8) Нет, это типовая функция
11 Fish
 
гуру
09.02.16
15:29
(10) Если форма документа типовая, то просто посмотри, как формируется эта надпись. И уже в эти данные пиши. И сама форма тебе для этого не нужна.
12 moonq4
 
09.02.16
15:31
(11) Надпись формируется данной штукой

&НаСервере
Процедура ПриИзмененииСоглашенияСервер()
    

    НадписьЭтапыОплаты = ЭтапыОплатыКлиентСервер.НадписьЭтапыОплаты(ЭтаФорма);
    

    
КонецПроцедуры

Внутри формы документа при изменении реквизита, я просто скопировал себе в обработку, но все оказалось не так просто
13 FIXXXL
 
09.02.16
15:35
(12) нахрена оно тебе в обработке?
смотри в ЭтапыОплатыКлиентСервер.НадписьЭтапыОплаты( откуда данные тянутся
небось надо в РС какой-нить параллельно с доком писать что-либо
14 Fish
 
гуру
09.02.16
15:35
(12) Ну так посмотри  ЭтапыОплатыКлиентСервер.НадписьЭтапыОплаты(ЭтаФорма). Откуда берутся данные для надписи. Туда и пиши.
15 moonq4
 
09.02.16
15:47
Понял, спасибо посоны
Ошибка? Это не ошибка, это системная функция.