Имя: Пароль:
1C
1С v8
Программное заполнение доп. реквизита на УФ .
🠗 (Kassern 18.10.2021 15:55)
0 gul_Sayan
 
18.10.21
14:45
Заполняю доп реквизит в управляемой форме:
На сервере
ткОбъект = РеквизитФормыВЗначение("Объект");
ткСтрока = ткОбъект.ДополнительныеРеквизиты.Добавить();
ткСтрока.Свойство = ткСвойство;
ткСтрока.Значение = ткЗначение;
ЗначениеВРеквизитОбъекта(ткОбъект, "Объект");

Смотрю в отладчике в ткОбъект все заполнено, в объекте тоже. На форме ни чего не заполнено, как следствие при сохранении тоже пусто. Не подскажите где и что я делаю не так?
1 gul_Sayan
 
18.10.21
14:46
Да код уппрощенный.
2 lodger
 
18.10.21
14:47
(0) выкинь их кода
РеквизитФормыВЗначение и ЗначениеВРеквизитОбъекта.
3 gul_Sayan
 
18.10.21
14:49
(2) пробовал и на прямую в объект, разницы ни какой.
4 sqr4
 
18.10.21
15:27
была недавно тема и даже ссылка на инфостарт, все не так просто как кажется на первый взгляд, в общем дерзай
https://infostart.ru/1c/articles/867282/
5 Ryzeman
 
18.10.21
15:43
Я по статье из (4) сделал так, вызывается на сервере с контекстом формы:
    
    
    ДопРеквизитыСоответствие = Новый Соответствие();

    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "МойДопРеквизит");
    ДопРеквизитыСоответствие.Вставить(Свойство, НовоеЗначениеМоегоДопРеквизита);
    
    ОписаниеОбъекта = ЭтаФорма.Объект;
    ОписаниеСвойств = УправлениеСвойствамиСлужебный.ЗначенияСвойств(
    ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(),
    ЭтаФорма.Свойства_НаборыДополнительныхРеквизитовОбъекта,
    Ложь);  
    
    Для Каждого ДопРеквизит Из ДопРеквизитыСоответствие Цикл     
        ОписаниеСвойства = ОписаниеСвойств.Найти(ДопРеквизит.Ключ, "Свойство");
        Если ЗначениеЗаполнено(ОписаниеСвойства) Тогда
            
            ИмяРеквизитаЗначение = "ДополнительныйРеквизитЗначение_"
            + СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Набор.УникальныйИдентификатор())), "-", "x")
            + "_"
            + СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Свойство.УникальныйИдентификатор())), "-", "x");
            
            ЭтаФорма[ИмяРеквизитаЗначение] = ДопРеквизит.Значение;        
        КонецЕсли;    
    КонецЦикла;
6 gul_Sayan
 
19.10.21
09:51
(5) Спасибо, помогло.
Независимо от того, куда вы едете — это в гору и против ветра!