Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Программное заполнение доп. реквизита на УФ .

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

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

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.