|
Заполнение дополнительного реквизита при создании формы | ☑ | ||
---|---|---|---|---|
0
Малый Тихон
18.09.15
✎
07:03
|
Здравствуйте всем! Хочу при создании формы на сервере заполнять дополнительный реквизит на ней.
Пробовал написать вот так: Если Форма.ИмяФормы= "Документ.ЗаказПоставщику.Форма.ФормаДокумента" Тогда СвойствоПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Грузополучатель"); Если СвойствоПВХ <> ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПустаяСсылка() Тогда МассивСтрок = форма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("Свойство", СвойствоПВХ)); Если МассивСтрок.Количество() > 0 Тогда ИмяДопРеквизита = МассивСтрок[0].ИмяРеквизитаЗначение; ДопРеквизит = Форма[ИмяДопРеквизита]; Форма.Элементы[ИмяДопРеквизита]=Форма.Объект.Контрагент; КонецЕсли; КонецЕсли; КонецЕсли; Скрыть Конечно можно использовать УстановитьЗначенияСвойств но эта функция требует ссылки на документ, а если этот документ создается на основании, для так называемого "а посмотреть" и не требуется его запись? Ведь в той же форме не записанного документа можно проставить значение дополнительного реквизита руками. Как быть? |
|||
1
Апош
18.09.15
✎
07:04
|
прекрати работать с формой и начни манипулировать данными
|
|||
2
Малый Тихон
18.09.15
✎
07:05
|
т.е.?
|
|||
3
Малый Тихон
18.09.15
✎
07:22
|
ну я не верю что так сделать нельзя
|
|||
4
shuhard_серый
18.09.15
✎
07:26
|
(3) и чё ?
|
|||
5
Mankubus
18.09.15
✎
07:31
|
>> Форма.Элементы[ИмяДопРеквизита]=Форма.Объект.Контрагент;
меняй не элемент формы, а данные которые он отображает |
|||
6
Малый Тихон
18.09.15
✎
07:42
|
(5) так данных то нет-объект не записан, следовательно в его ТЧ ДополнительныеРеквизитыИСведения ничего нет, ссылки на объент тоже нет
|
|||
7
Апош
18.09.15
✎
07:44
|
(6) ссылка пустая. а данные очень даже есть
|
|||
8
Малый Тихон
18.09.15
✎
07:46
|
(7) например?
|
|||
9
Малый Тихон
18.09.15
✎
07:46
|
НашОбъект=Форма.Объект;
НС=НашОбъект.ДополнительныеРеквизиты.Добавить(); НС.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Грузополучатель"); НС.Значение=Форма.Объект.Контрагент; не работает |
|||
10
Апош
18.09.15
✎
07:47
|
(8) док.Номер, например
|
|||
11
Малый Тихон
18.09.15
✎
07:56
|
Причем в (9) в отлпадчике вижу что строока в ТЧ добавляется, все нормально, но не отображается она в форме.
|
|||
12
Апош
18.09.15
✎
07:59
|
(11) она не в ТЧ добавляется
|
|||
13
Малый Тихон
18.09.15
✎
08:11
|
(12) ну да блин он в коллекцию писать пытается....надо как то на объект тогда выйти
|
|||
14
Малый Тихон
18.09.15
✎
08:17
|
(13)+совсем забыл сказать делаю через ОМ МодификацияКонфигурацииПредопределяемый, там на объект не выйдешь
|
|||
15
LordCMEPTb
18.09.15
✎
08:23
|
(9) Почему был сделан вывод, что это не работает?
|
|||
16
Малый Тихон
18.09.15
✎
08:24
|
(15) на форме не отображается
|
|||
17
LordCMEPTb
18.09.15
✎
08:26
|
Судя по контексту, форма управляемая, а там для применения изменений неплохо бы оповещать клиента об изменениях. В данном случае не помешал бы метод формы "ОбновитьОтображениеДанных".
|
|||
18
Малый Тихон
18.09.15
✎
08:29
|
(17) Думал уже- этот метод на сервере не работает
|
|||
19
LordCMEPTb
18.09.15
✎
08:38
|
(18) Так и форму на сервере не получить...
Этот метод надо вызывать после возврата из серверной процедуры. |
|||
20
Малый Тихон
18.09.15
✎
08:41
|
(19) что то совсем запутался- я делаю через ОМ, там процедура ПриСозданииНаСервере-она вызывается на сервере, форму я там получаю например Форма.Элементы[ИмяДопРеквизита].ТолькоПросмотр=Истина из (0) у меня работает на ура.
|
|||
21
LordCMEPTb
18.09.15
✎
08:44
|
(20) Могу предложить реализовать все же способ из (9), создать документ, в котором это отработает и не отобразится, записать документ и проверить наличие этих строк. Если строки будут, то ломать еще процедуру формы "ПриОткрытии". Если нет, тогда копать дальше.
|
|||
22
Малый Тихон
18.09.15
✎
08:48
|
(21) можешь поподробнее про документ в котором отработает и не отобразится? А т тупо изменю обработку заполнения и фиг с ней
|
|||
23
LordCMEPTb
18.09.15
✎
08:54
|
(22) Ну как-то же было уставновлено в (9), что такой подход не работает. То есть нужно изменить обработку заполнения так, чтобы смоделировать эту ситуацию.
Т.е. получится документ, в котором на форме ничего нет. Далее записать этот документ, открыть заново и проверить наличие нужной строки. Если строка будет, значит метод из (9) работает, но для интерактивного отображения нужен вызов клиентского метода. А вот если строки в документе не будет, тогда уже копать в другую сторону. |
|||
24
Малый Тихон
18.09.15
✎
09:00
|
анфиг, изменю обработку заполнения. Спасибо всем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |